naftiko: 1.0.0-alpha2 info: label: Linode API v4 — Profile description: 'Linode API v4 — Profile. 6 operations. Lead operation: Get your profile. Self-contained Naftiko capability covering one Linode business surface.' tags: - Linode - Profile created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LINODE_API_KEY: LINODE_API_KEY capability: consumes: - type: http namespace: api-v4-profile baseUri: https://api.linode.com/v4 description: Linode API v4 — Profile business capability. Self-contained, no shared references. resources: - name: profile path: /profile operations: - name: getprofile method: GET description: Get your profile outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateprofile method: PUT description: Update your profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: profile-sshkeys path: /profile/sshkeys operations: - name: getsshkeys method: GET description: List SSH keys outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createsshkey method: POST description: Add an SSH key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: profile-tokens path: /profile/tokens operations: - name: getpersonalaccesstokens method: GET description: List personal access tokens outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createpersonalaccesstoken method: POST description: Create a personal access token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.LINODE_API_KEY}}' exposes: - type: rest namespace: api-v4-profile-rest port: 8080 description: REST adapter for Linode API v4 — Profile. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/profile name: profile description: REST surface for profile. operations: - method: GET name: getprofile description: Get your profile call: api-v4-profile.getprofile outputParameters: - type: object mapping: $. - method: PUT name: updateprofile description: Update your profile call: api-v4-profile.updateprofile with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/profile/sshkeys name: profile-sshkeys description: REST surface for profile-sshkeys. operations: - method: GET name: getsshkeys description: List SSH keys call: api-v4-profile.getsshkeys outputParameters: - type: object mapping: $. - method: POST name: createsshkey description: Add an SSH key call: api-v4-profile.createsshkey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/profile/tokens name: profile-tokens description: REST surface for profile-tokens. operations: - method: GET name: getpersonalaccesstokens description: List personal access tokens call: api-v4-profile.getpersonalaccesstokens outputParameters: - type: object mapping: $. - method: POST name: createpersonalaccesstoken description: Create a personal access token call: api-v4-profile.createpersonalaccesstoken with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: api-v4-profile-mcp port: 9090 transport: http description: MCP adapter for Linode API v4 — Profile. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-your-profile description: Get your profile hints: readOnly: true destructive: false idempotent: true call: api-v4-profile.getprofile outputParameters: - type: object mapping: $. - name: update-your-profile description: Update your profile hints: readOnly: false destructive: false idempotent: true call: api-v4-profile.updateprofile with: body: tools.body outputParameters: - type: object mapping: $. - name: list-ssh-keys description: List SSH keys hints: readOnly: true destructive: false idempotent: true call: api-v4-profile.getsshkeys outputParameters: - type: object mapping: $. - name: add-ssh-key description: Add an SSH key hints: readOnly: false destructive: false idempotent: false call: api-v4-profile.createsshkey with: body: tools.body outputParameters: - type: object mapping: $. - name: list-personal-access-tokens description: List personal access tokens hints: readOnly: true destructive: false idempotent: true call: api-v4-profile.getpersonalaccesstokens outputParameters: - type: object mapping: $. - name: create-personal-access-token description: Create a personal access token hints: readOnly: false destructive: false idempotent: false call: api-v4-profile.createpersonalaccesstoken with: body: tools.body outputParameters: - type: object mapping: $.