naftiko: 1.0.0-alpha2 info: label: Twitch Helix API — Users description: 'Twitch Helix API — Users. 5 operations. Lead operation: Twitch Get Users. Self-contained Naftiko capability covering one Twitch business surface.' tags: - Twitch - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TWITCH_API_KEY: TWITCH_API_KEY capability: consumes: - type: http namespace: helix-users baseUri: https://api.twitch.tv/helix description: Twitch Helix API — Users business capability. Self-contained, no shared references. resources: - name: users path: /users operations: - name: getusers method: GET description: Twitch Get Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string - name: login in: query type: string - name: updateuser method: PUT description: Twitch Update User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: description in: query type: string - name: users-blocks path: /users/blocks operations: - name: getuserblocklist method: GET description: Twitch Get User Block List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: broadcaster_id in: query type: string required: true - name: blockuser method: PUT description: Twitch Block User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: target_user_id in: query type: string required: true - name: source_context in: query type: string - name: reason in: query type: string - name: unblockuser method: DELETE description: Twitch Unblock User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: target_user_id in: query type: string required: true authentication: type: bearer token: '{{env.TWITCH_API_KEY}}' exposes: - type: rest namespace: helix-users-rest port: 8080 description: REST adapter for Twitch Helix API — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users name: users description: REST surface for users. operations: - method: GET name: getusers description: Twitch Get Users call: helix-users.getusers with: id: rest.id login: rest.login outputParameters: - type: object mapping: $. - method: PUT name: updateuser description: Twitch Update User call: helix-users.updateuser with: description: rest.description outputParameters: - type: object mapping: $. - path: /v1/users/blocks name: users-blocks description: REST surface for users-blocks. operations: - method: GET name: getuserblocklist description: Twitch Get User Block List call: helix-users.getuserblocklist with: broadcaster_id: rest.broadcaster_id outputParameters: - type: object mapping: $. - method: PUT name: blockuser description: Twitch Block User call: helix-users.blockuser with: target_user_id: rest.target_user_id source_context: rest.source_context reason: rest.reason outputParameters: - type: object mapping: $. - method: DELETE name: unblockuser description: Twitch Unblock User call: helix-users.unblockuser with: target_user_id: rest.target_user_id outputParameters: - type: object mapping: $. - type: mcp namespace: helix-users-mcp port: 9090 transport: http description: MCP adapter for Twitch Helix API — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: twitch-get-users description: Twitch Get Users hints: readOnly: true destructive: false idempotent: true call: helix-users.getusers with: id: tools.id login: tools.login outputParameters: - type: object mapping: $. - name: twitch-update-user description: Twitch Update User hints: readOnly: false destructive: false idempotent: true call: helix-users.updateuser with: description: tools.description outputParameters: - type: object mapping: $. - name: twitch-get-user-block-list description: Twitch Get User Block List hints: readOnly: true destructive: false idempotent: true call: helix-users.getuserblocklist with: broadcaster_id: tools.broadcaster_id outputParameters: - type: object mapping: $. - name: twitch-block-user description: Twitch Block User hints: readOnly: false destructive: false idempotent: true call: helix-users.blockuser with: target_user_id: tools.target_user_id source_context: tools.source_context reason: tools.reason outputParameters: - type: object mapping: $. - name: twitch-unblock-user description: Twitch Unblock User hints: readOnly: false destructive: true idempotent: true call: helix-users.unblockuser with: target_user_id: tools.target_user_id outputParameters: - type: object mapping: $.