Symphony · Capability

Symphony Agent API — Message

Symphony Agent API — Message. 5 operations. Lead operation: Symphony Search Messages. Self-contained Naftiko capability covering one Symphony business surface.

Run with Naftiko SymphonyMessage

What You Can Do

GET
Get — Symphony Search Messages
/v1/v1/message/search
POST
Post — Symphony Search Messages
/v1/v1/message/search
GET
Get — Symphony Get a Message by ID
/v1/v1/message/{id}
POST
Post — Symphony Post a Message to Multiple Existing Streams
/v1/v4/message/blast
POST
Post — Import Messages From Other Systems Into Symphony
/v1/v4/message/import

MCP Tools

symphony-search-messages

Symphony Search Messages

read-only idempotent
symphony-search-messages-2

Symphony Search Messages

read-only
symphony-get-message-id

Symphony Get a Message by ID

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

Symphony Post a Message to Multiple Existing Streams

import-messages-other-systems-symphony

Import Messages From Other Systems Into Symphony

Capability Spec

agent-message.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Symphony Agent API — Message
  description: 'Symphony Agent API — Message. 5 operations. Lead operation: Symphony Search Messages. Self-contained Naftiko
    capability covering one Symphony business surface.'
  tags:
  - Symphony
  - Message
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SYMPHONY_API_KEY: SYMPHONY_API_KEY
capability:
  consumes:
  - type: http
    namespace: agent-message
    baseUri: ''
    description: Symphony Agent API — Message business capability. Self-contained, no shared references.
    resources:
    - name: v1-message-search
      path: /v1/message/search
      operations:
      - name: get
        method: GET
        description: Symphony 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: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
          required: true
      - name: post
        method: POST
        description: Symphony 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: sessionToken
          in: header
          type: string
          description: Session authentication token.
          required: true
        - name: keyManagerToken
          in: header
          type: string
          description: Key Manager authentication token.
          required: true
        - 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: Symphony 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.
          required: true
        - 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: Symphony 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.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
  exposes:
  - type: rest
    namespace: agent-message-rest
    port: 8080
    description: REST adapter for Symphony Agent API — Message. 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: Symphony Search Messages
        call: agent-message.get
        with:
          query: rest.query
          skip: rest.skip
          limit: rest.limit
          scope: rest.scope
          sortDir: rest.sortDir
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: post
        description: Symphony Search Messages
        call: agent-message.post
        with:
          skip: rest.skip
          limit: rest.limit
          scope: rest.scope
          sortDir: rest.sortDir
          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: Symphony Get a Message by ID
        call: agent-message.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: Symphony Post a Message to Multiple Existing Streams
        call: agent-message.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: agent-message.post
        with:
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: agent-message-mcp
    port: 9090
    transport: http
    description: MCP adapter for Symphony Agent API — Message. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: symphony-search-messages
      description: Symphony Search Messages
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: agent-message.get
      with:
        query: tools.query
        skip: tools.skip
        limit: tools.limit
        scope: tools.scope
        sortDir: tools.sortDir
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
      outputParameters:
      - type: object
        mapping: $.
    - name: symphony-search-messages-2
      description: Symphony Search Messages
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: agent-message.post
      with:
        skip: tools.skip
        limit: tools.limit
        scope: tools.scope
        sortDir: tools.sortDir
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: symphony-get-message-id
      description: Symphony Get a Message by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: agent-message.get
      with:
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: symphony-post-message-multiple-existing
      description: Symphony Post a Message to Multiple Existing Streams
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: agent-message.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: agent-message.post
      with:
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.