naftiko: 1.0.0-alpha2 info: label: Slack Reactions API — Reactions description: 'Slack Reactions API — Reactions. 4 operations. Lead operation: Slack Post Reactions Add. Self-contained Naftiko capability covering one Slack business surface.' tags: - Slack - Reactions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SLACK_API_KEY: SLACK_API_KEY capability: consumes: - type: http namespace: reactions-reactions baseUri: '' description: Slack Reactions API — Reactions business capability. Self-contained, no shared references. resources: - name: reactions.add path: /reactions.add operations: - name: postreactionsadd method: POST description: Slack Post Reactions Add outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `reactions:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: reactions.get path: /reactions.get operations: - name: getreactionsget method: GET description: Slack Get Reactions Get outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `reactions:read`' required: true - name: channel in: query type: string description: Channel where the message to get reactions for was posted. - name: file in: query type: string description: File to get reactions for. - name: file_comment in: query type: string description: File comment to get reactions for. - name: full in: query type: boolean description: If true always return the complete reaction list. - name: timestamp in: query type: string description: Timestamp of the message to get reactions for. - name: reactions.list path: /reactions.list operations: - name: getreactionslist method: GET description: Slack Get Reactions List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `reactions:read`' required: true - name: user in: query type: string description: Show reactions made by this user. Defaults to the authed user. - name: full in: query type: boolean description: If true always return the complete reaction list. - name: count in: query type: integer - name: page in: query type: integer - name: cursor in: query type: string description: 'Parameter for pagination. Set `cursor` equal to the `next_cursor` attribute returned by the previous request''s `response_metadata`. This parameter is optional, ' - name: limit in: query type: integer description: The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. - name: reactions.remove path: /reactions.remove operations: - name: postreactionsremove method: POST description: Slack Post Reactions Remove outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `reactions:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: reactions-reactions-rest port: 8080 description: REST adapter for Slack Reactions API — Reactions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/reactions-add name: reactions-add description: REST surface for reactions.add. operations: - method: POST name: postreactionsadd description: Slack Post Reactions Add call: reactions-reactions.postreactionsadd with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/reactions-get name: reactions-get description: REST surface for reactions.get. operations: - method: GET name: getreactionsget description: Slack Get Reactions Get call: reactions-reactions.getreactionsget with: token: rest.token channel: rest.channel file: rest.file file_comment: rest.file_comment full: rest.full timestamp: rest.timestamp outputParameters: - type: object mapping: $. - path: /v1/reactions-list name: reactions-list description: REST surface for reactions.list. operations: - method: GET name: getreactionslist description: Slack Get Reactions List call: reactions-reactions.getreactionslist with: token: rest.token user: rest.user full: rest.full count: rest.count page: rest.page cursor: rest.cursor limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/reactions-remove name: reactions-remove description: REST surface for reactions.remove. operations: - method: POST name: postreactionsremove description: Slack Post Reactions Remove call: reactions-reactions.postreactionsremove with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: reactions-reactions-mcp port: 9090 transport: http description: MCP adapter for Slack Reactions API — Reactions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: slack-post-reactions-add description: Slack Post Reactions Add hints: readOnly: false destructive: false idempotent: false call: reactions-reactions.postreactionsadd with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-get-reactions-get description: Slack Get Reactions Get hints: readOnly: true destructive: false idempotent: true call: reactions-reactions.getreactionsget with: token: tools.token channel: tools.channel file: tools.file file_comment: tools.file_comment full: tools.full timestamp: tools.timestamp outputParameters: - type: object mapping: $. - name: slack-get-reactions-list description: Slack Get Reactions List hints: readOnly: true destructive: false idempotent: true call: reactions-reactions.getreactionslist with: token: tools.token user: tools.user full: tools.full count: tools.count page: tools.page cursor: tools.cursor limit: tools.limit outputParameters: - type: object mapping: $. - name: slack-post-reactions-remove description: Slack Post Reactions Remove hints: readOnly: false destructive: false idempotent: false call: reactions-reactions.postreactionsremove with: token: tools.token body: tools.body outputParameters: - type: object mapping: $.