FINOS · Capability
Agent API — Messages
Agent API — Messages. 8 operations. Lead operation: Search messages. Self-contained Naftiko capability covering one Finos business surface.
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
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: $.