FINOS · Capability

Agent API — Messages

Agent API — Messages. 8 operations. Lead operation: Search messages. Self-contained Naftiko capability covering one Finos business surface.

Run with Naftiko FinosMessages

What You Can Do

GET
Get — Search messages
/v1/v1/message/search
POST
Post — Search messages
/v1/v1/message/search
GET
Get — Get a message by ID
/v1/v1/message/{id}
POST
Post — Post a message to multiple existing streams.
/v1/v4/message/blast
POST
Post — Import messages from other systems into Symphony.
/v1/v4/message/import
GET
Get — Get messages from an existing stream.
/v1/v4/stream/{sid}/message
POST
Post — Post a message to one existing stream.
/v1/v4/stream/{sid}/message/create
POST
Post — Update an existing message.
/v1/v4/stream/{sid}/message/{mid}/update

MCP Tools

search-messages

Search messages

read-only idempotent
search-messages-2

Search messages

read-only
get-message-id

Get a message by ID

read-only idempotent
post-message-multiple-existing-streams

Post a message to multiple existing streams.

import-messages-other-systems-symphony

Import messages from other systems into Symphony.

get-messages-existing-stream

Get messages from an existing stream.

read-only idempotent
post-message-one-existing-stream

Post a message to one existing stream.

update-existing-message

Update an existing message.

Capability Spec

symphony-agent-messages.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Agent API — Messages
  description: 'Agent API — Messages. 8 operations. Lead operation: Search messages. Self-contained Naftiko capability covering
    one Finos business surface.'
  tags:
  - Finos
  - Messages
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    FINOS_API_KEY: FINOS_API_KEY
capability:
  consumes:
  - type: http
    namespace: symphony-agent-messages
    baseUri: ''
    description: Agent API — Messages business capability. Self-contained, no shared references.
    resources:
    - name: v1-message-search
      path: /v1/message/search
      operations:
      - name: get
        method: GET
        description: Search messages
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
          description: The search query. See above for the query syntax.
          required: true
        - name: skip
          in: query
          type: integer
          description: No. of results to skip.
        - name: limit
          in: query
          type: integer
          description: Max no. of results to return. If no value is provided, 50 is the default.
        - name: scope
          in: query
          type: string
          description: Describes where content should be searched for that query.
        - name: sortDir
          in: query
          type: string
          description: 'Messages sort direction : ASC or DESC (default to DESC)'
        - name: tier
          in: query
          type: string
          description: 'Target search tier : hot, warm or all (default to hot)'
        - name: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
      - name: post
        method: POST
        description: Search messages
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: skip
          in: query
          type: integer
          description: No. of results to skip.
        - name: limit
          in: query
          type: integer
          description: Max no. of results to return. If no value is provided, 50 is the default.
        - name: scope
          in: query
          type: string
          description: Describes where content should be searched for that query.
        - name: sortDir
          in: query
          type: string
          description: 'Messages sort direction : ASC or DESC (default to DESC)'
        - name: tier
          in: query
          type: string
          description: 'Target search tier : hot, warm or all (default to hot)'
        - name: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-message-id
      path: /v1/message/{id}
      operations:
      - name: get
        method: GET
        description: Get a message by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
        - name: id
          in: path
          type: string
          description: Message ID as a URL-safe string
          required: true
    - name: v4-message-blast
      path: /v4/message/blast
      operations:
      - name: post
        method: POST
        description: Post a message to multiple existing streams.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sessionToken
          in: header
          type: string
          description: Authorization token used to make delegated calls.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v4-message-import
      path: /v4/message/import
      operations:
      - name: post
        method: POST
        description: Import messages from other systems into Symphony.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v4-stream-sid-message
      path: /v4/stream/{sid}/message
      operations:
      - name: get
        method: GET
        description: Get messages from an existing stream.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sid
          in: path
          type: string
          description: Stream ID
          required: true
        - name: since
          in: query
          type: integer
          description: Timestamp of first required message.
          required: true
        - name: until
          in: query
          type: integer
          description: Timestamp of last required message.
        - name: skip
          in: query
          type: integer
          description: No. of messages to skip.
        - name: limit
          in: query
          type: integer
          description: Max No. of messages to return. If no value is provided, 50 is the default. The maximum supported value
            is 500.
        - name: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
    - name: v4-stream-sid-message-create
      path: /v4/stream/{sid}/message/create
      operations:
      - name: post
        method: POST
        description: Post a message to one existing stream.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sid
          in: path
          type: string
          description: Stream ID
          required: true
        - name: sessionToken
          in: header
          type: string
          description: Authorization token used to make delegated calls.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v4-stream-sid-message-mid-update
      path: /v4/stream/{sid}/message/{mid}/update
      operations:
      - name: post
        method: POST
        description: Update an existing message.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sid
          in: path
          type: string
          description: Stream ID
          required: true
        - name: mid
          in: path
          type: string
          description: ID of the message to be updated
          required: true
        - name: sessionToken
          in: header
          type: string
          description: Authorization token used to make delegated calls.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
  exposes:
  - type: rest
    namespace: symphony-agent-messages-rest
    port: 8080
    description: REST adapter for Agent API — Messages. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/v1/message/search
      name: v1-message-search
      description: REST surface for v1-message-search.
      operations:
      - method: GET
        name: get
        description: Search messages
        call: symphony-agent-messages.get
        with:
          query: rest.query
          skip: rest.skip
          limit: rest.limit
          scope: rest.scope
          sortDir: rest.sortDir
          tier: rest.tier
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: post
        description: Search messages
        call: symphony-agent-messages.post
        with:
          skip: rest.skip
          limit: rest.limit
          scope: rest.scope
          sortDir: rest.sortDir
          tier: rest.tier
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/message/{id}
      name: v1-message-id
      description: REST surface for v1-message-id.
      operations:
      - method: GET
        name: get
        description: Get a message by ID
        call: symphony-agent-messages.get
        with:
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/message/blast
      name: v4-message-blast
      description: REST surface for v4-message-blast.
      operations:
      - method: POST
        name: post
        description: Post a message to multiple existing streams.
        call: symphony-agent-messages.post
        with:
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/message/import
      name: v4-message-import
      description: REST surface for v4-message-import.
      operations:
      - method: POST
        name: post
        description: Import messages from other systems into Symphony.
        call: symphony-agent-messages.post
        with:
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/stream/{sid}/message
      name: v4-stream-sid-message
      description: REST surface for v4-stream-sid-message.
      operations:
      - method: GET
        name: get
        description: Get messages from an existing stream.
        call: symphony-agent-messages.get
        with:
          sid: rest.sid
          since: rest.since
          until: rest.until
          skip: rest.skip
          limit: rest.limit
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/stream/{sid}/message/create
      name: v4-stream-sid-message-create
      description: REST surface for v4-stream-sid-message-create.
      operations:
      - method: POST
        name: post
        description: Post a message to one existing stream.
        call: symphony-agent-messages.post
        with:
          sid: rest.sid
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/stream/{sid}/message/{mid}/update
      name: v4-stream-sid-message-mid-update
      description: REST surface for v4-stream-sid-message-mid-update.
      operations:
      - method: POST
        name: post
        description: Update an existing message.
        call: symphony-agent-messages.post
        with:
          sid: rest.sid
          mid: rest.mid
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: symphony-agent-messages-mcp
    port: 9090
    transport: http
    description: MCP adapter for Agent API — Messages. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: search-messages
      description: Search messages
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: symphony-agent-messages.get
      with:
        query: tools.query
        skip: tools.skip
        limit: tools.limit
        scope: tools.scope
        sortDir: tools.sortDir
        tier: tools.tier
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
      outputParameters:
      - type: object
        mapping: $.
    - name: search-messages-2
      description: Search messages
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: symphony-agent-messages.post
      with:
        skip: tools.skip
        limit: tools.limit
        scope: tools.scope
        sortDir: tools.sortDir
        tier: tools.tier
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-message-id
      description: Get a message by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: symphony-agent-messages.get
      with:
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: post-message-multiple-existing-streams
      description: Post a message to multiple existing streams.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: symphony-agent-messages.post
      with:
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: import-messages-other-systems-symphony
      description: Import messages from other systems into Symphony.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: symphony-agent-messages.post
      with:
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-messages-existing-stream
      description: Get messages from an existing stream.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: symphony-agent-messages.get
      with:
        sid: tools.sid
        since: tools.since
        until: tools.until
        skip: tools.skip
        limit: tools.limit
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
      outputParameters:
      - type: object
        mapping: $.
    - name: post-message-one-existing-stream
      description: Post a message to one existing stream.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: symphony-agent-messages.post
      with:
        sid: tools.sid
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-existing-message
      description: Update an existing message.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: symphony-agent-messages.post
      with:
        sid: tools.sid
        mid: tools.mid
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.