Symphony · Capability

Symphony Agent API — Stream

Symphony Agent API — Stream. 5 operations. Lead operation: Symphony Download an Attachment. Self-contained Naftiko capability covering one Symphony business surface.

Run with Naftiko SymphonyStream

What You Can Do

GET
Get — Symphony Download an Attachment
/v1/v1/stream/{sid}/attachment
POST
Post — PROVISIONAL - Share a Piece of Content Into Symphony
/v1/v3/stream/{sid}/share
GET
Get — Symphony Get Messages From an Existing Stream
/v1/v4/stream/{sid}/message
POST
Post — Symphony Post a Message to One Existing Stream
/v1/v4/stream/{sid}/message/create
POST
Post — Symphony Update an Existing Message
/v1/v4/stream/{sid}/message/{mid}/update

MCP Tools

symphony-download-attachment

Symphony Download an Attachment

read-only idempotent
provisional-share-piece-content-symphony

PROVISIONAL - Share a Piece of Content Into Symphony

symphony-get-messages-existing-stream

Symphony Get Messages From an Existing Stream

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

Symphony Post a Message to One Existing Stream

symphony-update-existing-message

Symphony Update an Existing Message

Capability Spec

agent-stream.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Symphony Agent API — Stream
  description: 'Symphony Agent API — Stream. 5 operations. Lead operation: Symphony Download an Attachment. Self-contained
    Naftiko capability covering one Symphony business surface.'
  tags:
  - Symphony
  - Stream
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SYMPHONY_API_KEY: SYMPHONY_API_KEY
capability:
  consumes:
  - type: http
    namespace: agent-stream
    baseUri: ''
    description: Symphony Agent API — Stream business capability. Self-contained, no shared references.
    resources:
    - name: v1-stream-sid-attachment
      path: /v1/stream/{sid}/attachment
      operations:
      - name: get
        method: GET
        description: Symphony Download an Attachment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sid
          in: path
          type: string
          description: Stream ID
          required: true
        - name: fileId
          in: query
          type: string
          description: The attachment ID (Base64-encoded)
          required: true
        - name: messageId
          in: query
          type: string
          description: The ID of the message containing the attachment
          required: true
        - 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: v3-stream-sid-share
      path: /v3/stream/{sid}/share
      operations:
      - name: post
        method: POST
        description: PROVISIONAL - Share a Piece of Content Into Symphony
        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: 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: Symphony 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: 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.
          required: true
    - name: v4-stream-sid-message-create
      path: /v4/stream/{sid}/message/create
      operations:
      - name: post
        method: POST
        description: Symphony 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: Symphony 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: agent-stream-rest
    port: 8080
    description: REST adapter for Symphony Agent API — Stream. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/stream/{sid}/attachment
      name: v1-stream-sid-attachment
      description: REST surface for v1-stream-sid-attachment.
      operations:
      - method: GET
        name: get
        description: Symphony Download an Attachment
        call: agent-stream.get
        with:
          sid: rest.sid
          fileId: rest.fileId
          messageId: rest.messageId
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/stream/{sid}/share
      name: v3-stream-sid-share
      description: REST surface for v3-stream-sid-share.
      operations:
      - method: POST
        name: post
        description: PROVISIONAL - Share a Piece of Content Into Symphony
        call: agent-stream.post
        with:
          sid: rest.sid
          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: Symphony Get Messages From an Existing Stream
        call: agent-stream.get
        with:
          sid: rest.sid
          since: rest.since
          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: Symphony Post a Message to One Existing Stream
        call: agent-stream.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: Symphony Update an Existing Message
        call: agent-stream.post
        with:
          sid: rest.sid
          mid: rest.mid
          sessionToken: rest.sessionToken
          keyManagerToken: rest.keyManagerToken
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: agent-stream-mcp
    port: 9090
    transport: http
    description: MCP adapter for Symphony Agent API — Stream. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: symphony-download-attachment
      description: Symphony Download an Attachment
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: agent-stream.get
      with:
        sid: tools.sid
        fileId: tools.fileId
        messageId: tools.messageId
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
      outputParameters:
      - type: object
        mapping: $.
    - name: provisional-share-piece-content-symphony
      description: PROVISIONAL - Share a Piece of Content Into Symphony
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: agent-stream.post
      with:
        sid: tools.sid
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: symphony-get-messages-existing-stream
      description: Symphony Get Messages From an Existing Stream
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: agent-stream.get
      with:
        sid: tools.sid
        since: tools.since
        skip: tools.skip
        limit: tools.limit
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
      outputParameters:
      - type: object
        mapping: $.
    - name: symphony-post-message-one-existing
      description: Symphony Post a Message to One Existing Stream
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: agent-stream.post
      with:
        sid: tools.sid
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: symphony-update-existing-message
      description: Symphony Update an Existing Message
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: agent-stream.post
      with:
        sid: tools.sid
        mid: tools.mid
        sessionToken: tools.sessionToken
        keyManagerToken: tools.keyManagerToken
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.