naftiko: 1.0.0-alpha2 info: label: Slack Bookmarks API — Bookmarks description: 'Slack Bookmarks API — Bookmarks. 4 operations. Lead operation: Add Bookmark. Self-contained Naftiko capability covering one Slack business surface.' tags: - Slack - Bookmarks created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SLACK_API_KEY: SLACK_API_KEY capability: consumes: - type: http namespace: bookmarks-bookmarks baseUri: https://slack.com/api description: Slack Bookmarks API — Bookmarks business capability. Self-contained, no shared references. resources: - name: bookmarks.add path: /bookmarks.add operations: - name: postbookmarksadd method: POST description: Add Bookmark outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `bookmarks:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: bookmarks.edit path: /bookmarks.edit operations: - name: postbookmarksedit method: POST description: Edit Bookmark outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `bookmarks:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: bookmarks.list path: /bookmarks.list operations: - name: getbookmarkslist method: GET description: List Bookmarks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `bookmarks:read`' required: true - name: channel_id in: query type: string description: Channel to list bookmarks for. required: true - name: bookmarks.remove path: /bookmarks.remove operations: - name: postbookmarksremove method: POST description: Remove Bookmark outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `bookmarks:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.SLACK_API_KEY}}' exposes: - type: rest namespace: bookmarks-bookmarks-rest port: 8080 description: REST adapter for Slack Bookmarks API — Bookmarks. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/bookmarks-add name: bookmarks-add description: REST surface for bookmarks.add. operations: - method: POST name: postbookmarksadd description: Add Bookmark call: bookmarks-bookmarks.postbookmarksadd with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/bookmarks-edit name: bookmarks-edit description: REST surface for bookmarks.edit. operations: - method: POST name: postbookmarksedit description: Edit Bookmark call: bookmarks-bookmarks.postbookmarksedit with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/bookmarks-list name: bookmarks-list description: REST surface for bookmarks.list. operations: - method: GET name: getbookmarkslist description: List Bookmarks call: bookmarks-bookmarks.getbookmarkslist with: token: rest.token channel_id: rest.channel_id outputParameters: - type: object mapping: $. - path: /v1/bookmarks-remove name: bookmarks-remove description: REST surface for bookmarks.remove. operations: - method: POST name: postbookmarksremove description: Remove Bookmark call: bookmarks-bookmarks.postbookmarksremove with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: bookmarks-bookmarks-mcp port: 9090 transport: http description: MCP adapter for Slack Bookmarks API — Bookmarks. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: add-bookmark description: Add Bookmark hints: readOnly: false destructive: false idempotent: false call: bookmarks-bookmarks.postbookmarksadd with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: edit-bookmark description: Edit Bookmark hints: readOnly: false destructive: false idempotent: false call: bookmarks-bookmarks.postbookmarksedit with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: list-bookmarks description: List Bookmarks hints: readOnly: true destructive: false idempotent: true call: bookmarks-bookmarks.getbookmarkslist with: token: tools.token channel_id: tools.channel_id outputParameters: - type: object mapping: $. - name: remove-bookmark description: Remove Bookmark hints: readOnly: false destructive: false idempotent: false call: bookmarks-bookmarks.postbookmarksremove with: token: tools.token body: tools.body outputParameters: - type: object mapping: $.