naftiko: 1.0.0-alpha2 info: label: Lichess API — Account description: 'Lichess API — Account. 6 operations. Lead operation: Get my profile. Self-contained Naftiko capability covering one Lichess business surface.' tags: - Lichess - Account created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: LICHESS_API_TOKEN: LICHESS_API_TOKEN capability: consumes: - type: http namespace: account baseUri: https://lichess.org description: Lichess Account business capability. Self-contained, no shared references. resources: - name: account path: /api/account operations: - name: accountme method: GET description: 'Get my profile' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: account-email path: /api/account/email operations: - name: accountemail method: GET description: 'Get my email address' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: account-preferences path: /api/account/preferences operations: - name: account method: GET description: 'Get my preferences' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: account-kid path: /api/account/kid operations: - name: accountkid method: GET description: 'Get my kid mode status' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: accountkidpost method: POST description: 'Set my kid mode status' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: v in: query type: string required: false - name: timeline path: /api/timeline operations: - name: timeline method: GET description: 'Get my timeline' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: since in: query type: string required: false - name: nb in: query type: string required: false authentication: type: bearer value: '{{env.LICHESS_API_TOKEN}}' placement: header exposes: - type: rest namespace: account-rest port: 8080 description: REST adapter for Lichess Account. One Spectral-compliant resource per consumed operation. resources: - path: /v1/api/account name: account description: REST surface for account. operations: - method: GET name: accountme description: 'Get my profile' call: account.accountme with: outputParameters: - type: object mapping: $. - path: /v1/api/account/email name: account-email description: REST surface for account-email. operations: - method: GET name: accountemail description: 'Get my email address' call: account.accountemail with: outputParameters: - type: object mapping: $. - path: /v1/api/account/preferences name: account-preferences description: REST surface for account-preferences. operations: - method: GET name: account description: 'Get my preferences' call: account.account with: outputParameters: - type: object mapping: $. - path: /v1/api/account/kid name: account-kid description: REST surface for account-kid. operations: - method: GET name: accountkid description: 'Get my kid mode status' call: account.accountkid with: outputParameters: - type: object mapping: $. - method: POST name: accountkidpost description: 'Set my kid mode status' call: account.accountkidpost with: v: rest.query.v outputParameters: - type: object mapping: $. - path: /v1/api/timeline name: timeline description: REST surface for timeline. operations: - method: GET name: timeline description: 'Get my timeline' call: account.timeline with: since: rest.query.since nb: rest.query.nb outputParameters: - type: object mapping: $. - type: mcp namespace: account-mcp port: 9090 transport: http description: MCP adapter for Lichess Account. One tool per consumed operation. tools: - name: lichess-accountme description: 'Get my profile' hints: readOnly: true destructive: false idempotent: false call: account.accountme with: outputParameters: - type: object mapping: $. - name: lichess-accountemail description: 'Get my email address' hints: readOnly: true destructive: false idempotent: false call: account.accountemail with: outputParameters: - type: object mapping: $. - name: lichess-account description: 'Get my preferences' hints: readOnly: true destructive: false idempotent: false call: account.account with: outputParameters: - type: object mapping: $. - name: lichess-accountkid description: 'Get my kid mode status' hints: readOnly: true destructive: false idempotent: false call: account.accountkid with: outputParameters: - type: object mapping: $. - name: lichess-accountkidpost description: 'Set my kid mode status' hints: readOnly: false destructive: false idempotent: false call: account.accountkidpost with: v: tools.v outputParameters: - type: object mapping: $. - name: lichess-timeline description: 'Get my timeline' hints: readOnly: true destructive: false idempotent: false call: account.timeline with: since: tools.since nb: tools.nb outputParameters: - type: object mapping: $.