naftiko: 1.0.0-alpha2 info: label: Slack Conversations API — Post description: 'Slack Conversations API — Post. 13 operations. Lead operation: Slack Post Conversations Archive. Self-contained Naftiko capability covering one Slack business surface.' tags: - Slack - Post created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SLACK_API_KEY: SLACK_API_KEY capability: consumes: - type: http namespace: conversations-post baseUri: '' description: Slack Conversations API — Post business capability. Self-contained, no shared references. resources: - name: conversations.archive path: /conversations.archive operations: - name: postconversationsarchive method: POST description: Slack Post Conversations Archive outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.close path: /conversations.close operations: - name: postconversationsclose method: POST description: Slack Post Conversations Close outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.create path: /conversations.create operations: - name: postconversationscreate method: POST description: Slack Post Conversations Create outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.invite path: /conversations.invite operations: - name: postconversationsinvite method: POST description: Slack Post Conversations Invite outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.join path: /conversations.join operations: - name: postconversationsjoin method: POST description: Slack Post Conversations Join outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `channels:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.kick path: /conversations.kick operations: - name: postconversationskick method: POST description: Slack Post Conversations Kick outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.leave path: /conversations.leave operations: - name: postconversationsleave method: POST description: Slack Post Conversations Leave outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.mark path: /conversations.mark operations: - name: postconversationsmark method: POST description: Slack Post Conversations Mark outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.open path: /conversations.open operations: - name: postconversationsopen method: POST description: Slack Post Conversations Open outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.rename path: /conversations.rename operations: - name: postconversationsrename method: POST description: Slack Post Conversations Rename outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.setPurpose path: /conversations.setPurpose operations: - name: postconversationssetpurpose method: POST description: Slack Post Conversations Setpurpose outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.setTopic path: /conversations.setTopic operations: - name: postconversationssettopic method: POST description: Slack Post Conversations Settopic outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false - name: conversations.unarchive path: /conversations.unarchive operations: - name: postconversationsunarchive method: POST description: Slack Post Conversations Unarchive outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `conversations:write`' - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: conversations-post-rest port: 8080 description: REST adapter for Slack Conversations API — Post. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/conversations-archive name: conversations-archive description: REST surface for conversations.archive. operations: - method: POST name: postconversationsarchive description: Slack Post Conversations Archive call: conversations-post.postconversationsarchive with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-close name: conversations-close description: REST surface for conversations.close. operations: - method: POST name: postconversationsclose description: Slack Post Conversations Close call: conversations-post.postconversationsclose with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-create name: conversations-create description: REST surface for conversations.create. operations: - method: POST name: postconversationscreate description: Slack Post Conversations Create call: conversations-post.postconversationscreate with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-invite name: conversations-invite description: REST surface for conversations.invite. operations: - method: POST name: postconversationsinvite description: Slack Post Conversations Invite call: conversations-post.postconversationsinvite with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-join name: conversations-join description: REST surface for conversations.join. operations: - method: POST name: postconversationsjoin description: Slack Post Conversations Join call: conversations-post.postconversationsjoin with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-kick name: conversations-kick description: REST surface for conversations.kick. operations: - method: POST name: postconversationskick description: Slack Post Conversations Kick call: conversations-post.postconversationskick with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-leave name: conversations-leave description: REST surface for conversations.leave. operations: - method: POST name: postconversationsleave description: Slack Post Conversations Leave call: conversations-post.postconversationsleave with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-mark name: conversations-mark description: REST surface for conversations.mark. operations: - method: POST name: postconversationsmark description: Slack Post Conversations Mark call: conversations-post.postconversationsmark with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-open name: conversations-open description: REST surface for conversations.open. operations: - method: POST name: postconversationsopen description: Slack Post Conversations Open call: conversations-post.postconversationsopen with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-rename name: conversations-rename description: REST surface for conversations.rename. operations: - method: POST name: postconversationsrename description: Slack Post Conversations Rename call: conversations-post.postconversationsrename with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-setpurpose name: conversations-setpurpose description: REST surface for conversations.setPurpose. operations: - method: POST name: postconversationssetpurpose description: Slack Post Conversations Setpurpose call: conversations-post.postconversationssetpurpose with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-settopic name: conversations-settopic description: REST surface for conversations.setTopic. operations: - method: POST name: postconversationssettopic description: Slack Post Conversations Settopic call: conversations-post.postconversationssettopic with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations-unarchive name: conversations-unarchive description: REST surface for conversations.unarchive. operations: - method: POST name: postconversationsunarchive description: Slack Post Conversations Unarchive call: conversations-post.postconversationsunarchive with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: conversations-post-mcp port: 9090 transport: http description: MCP adapter for Slack Conversations API — Post. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: slack-post-conversations-archive description: Slack Post Conversations Archive hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsarchive with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-close description: Slack Post Conversations Close hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsclose with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-create description: Slack Post Conversations Create hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationscreate with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-invite description: Slack Post Conversations Invite hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsinvite with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-join description: Slack Post Conversations Join hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsjoin with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-kick description: Slack Post Conversations Kick hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationskick with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-leave description: Slack Post Conversations Leave hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsleave with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-mark description: Slack Post Conversations Mark hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsmark with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-open description: Slack Post Conversations Open hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsopen with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-rename description: Slack Post Conversations Rename hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsrename with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-setpurpose description: Slack Post Conversations Setpurpose hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationssetpurpose with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-settopic description: Slack Post Conversations Settopic hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationssettopic with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-conversations-unarchive description: Slack Post Conversations Unarchive hints: readOnly: false destructive: false idempotent: false call: conversations-post.postconversationsunarchive with: token: tools.token body: tools.body outputParameters: - type: object mapping: $.