naftiko: 1.0.0-alpha2 info: label: Agent API — Signals description: 'Agent API — Signals. 9 operations. Lead operation: Get information about the Agent. Self-contained Naftiko capability covering one Finos business surface.' tags: - Finos - Signals 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-signals baseUri: '' description: Agent API — Signals business capability. Self-contained, no shared references. resources: - name: v1-info path: /v1/info operations: - name: get method: GET description: Get information about the Agent outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-signals-create path: /v1/signals/create operations: - name: post method: POST description: Create a signal. 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: v1-signals-list path: /v1/signals/list operations: - name: get method: GET description: List signals for the requesting user. This includes signals that the user has created and public signals 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: skip in: query type: integer description: No. of signals to skip. - name: limit in: query type: integer description: Max no. of signals to return. If no value is provided, 50 is the default. The maximum supported value is 500. - name: v1-signals-id-delete path: /v1/signals/{id}/delete operations: - name: post method: POST description: Delete a signal. 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: The id of the signal. required: true - name: v1-signals-id-get path: /v1/signals/{id}/get operations: - name: get method: GET description: Get details of the requested signal. 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: The ID of the signal to display. required: true - name: v1-signals-id-subscribe path: /v1/signals/{id}/subscribe operations: - name: post method: POST description: Subscribe to a Signal. 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: The id of the signal. required: true - name: pushed in: query type: boolean description: Prevent the user to unsubscribe (only for bulk subscription) - name: body in: body type: object description: Request body (JSON). required: false - name: v1-signals-id-subscribers path: /v1/signals/{id}/subscribers operations: - name: get method: GET description: Get the subscribers of a signal 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: The id of the signal. required: true - name: skip in: query type: integer description: No. of results to skip. - name: limit in: query type: integer description: Max No. of subscribers to return. If no value is provided, 100 is the default. - name: v1-signals-id-unsubscribe path: /v1/signals/{id}/unsubscribe operations: - name: post method: POST description: Unsubscribe to a Signal. 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: The id of the signal. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-signals-id-update path: /v1/signals/{id}/update operations: - name: post method: POST description: Update a signal. 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: The id of the signal. required: true - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: symphony-agent-signals-rest port: 8080 description: REST adapter for Agent API — Signals. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/info name: v1-info description: REST surface for v1-info. operations: - method: GET name: get description: Get information about the Agent call: symphony-agent-signals.get outputParameters: - type: object mapping: $. - path: /v1/v1/signals/create name: v1-signals-create description: REST surface for v1-signals-create. operations: - method: POST name: post description: Create a signal. call: symphony-agent-signals.post with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/signals/list name: v1-signals-list description: REST surface for v1-signals-list. operations: - method: GET name: get description: List signals for the requesting user. This includes signals that the user has created and public signals call: symphony-agent-signals.get with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken skip: rest.skip limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/v1/signals/{id}/delete name: v1-signals-id-delete description: REST surface for v1-signals-id-delete. operations: - method: POST name: post description: Delete a signal. call: symphony-agent-signals.post with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/signals/{id}/get name: v1-signals-id-get description: REST surface for v1-signals-id-get. operations: - method: GET name: get description: Get details of the requested signal. call: symphony-agent-signals.get with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/signals/{id}/subscribe name: v1-signals-id-subscribe description: REST surface for v1-signals-id-subscribe. operations: - method: POST name: post description: Subscribe to a Signal. call: symphony-agent-signals.post with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken id: rest.id pushed: rest.pushed body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/signals/{id}/subscribers name: v1-signals-id-subscribers description: REST surface for v1-signals-id-subscribers. operations: - method: GET name: get description: Get the subscribers of a signal call: symphony-agent-signals.get with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken id: rest.id skip: rest.skip limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/v1/signals/{id}/unsubscribe name: v1-signals-id-unsubscribe description: REST surface for v1-signals-id-unsubscribe. operations: - method: POST name: post description: Unsubscribe to a Signal. call: symphony-agent-signals.post with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/signals/{id}/update name: v1-signals-id-update description: REST surface for v1-signals-id-update. operations: - method: POST name: post description: Update a signal. call: symphony-agent-signals.post with: sessionToken: rest.sessionToken keyManagerToken: rest.keyManagerToken id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: symphony-agent-signals-mcp port: 9090 transport: http description: MCP adapter for Agent API — Signals. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-information-about-agent description: Get information about the Agent hints: readOnly: true destructive: false idempotent: true call: symphony-agent-signals.get outputParameters: - type: object mapping: $. - name: create-signal description: Create a signal. hints: readOnly: false destructive: false idempotent: false call: symphony-agent-signals.post with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken body: tools.body outputParameters: - type: object mapping: $. - name: list-signals-requesting-user-this description: List signals for the requesting user. This includes signals that the user has created and public signals hints: readOnly: true destructive: false idempotent: true call: symphony-agent-signals.get with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken skip: tools.skip limit: tools.limit outputParameters: - type: object mapping: $. - name: delete-signal description: Delete a signal. hints: readOnly: false destructive: false idempotent: false call: symphony-agent-signals.post with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken id: tools.id outputParameters: - type: object mapping: $. - name: get-details-requested-signal description: Get details of the requested signal. hints: readOnly: true destructive: false idempotent: true call: symphony-agent-signals.get with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken id: tools.id outputParameters: - type: object mapping: $. - name: subscribe-signal description: Subscribe to a Signal. hints: readOnly: false destructive: false idempotent: false call: symphony-agent-signals.post with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken id: tools.id pushed: tools.pushed body: tools.body outputParameters: - type: object mapping: $. - name: get-subscribers-signal description: Get the subscribers of a signal hints: readOnly: true destructive: false idempotent: true call: symphony-agent-signals.get with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken id: tools.id skip: tools.skip limit: tools.limit outputParameters: - type: object mapping: $. - name: unsubscribe-signal description: Unsubscribe to a Signal. hints: readOnly: false destructive: false idempotent: false call: symphony-agent-signals.post with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: update-signal description: Update a signal. hints: readOnly: false destructive: false idempotent: false call: symphony-agent-signals.post with: sessionToken: tools.sessionToken keyManagerToken: tools.keyManagerToken id: tools.id body: tools.body outputParameters: - type: object mapping: $.