naftiko: 1.0.0-alpha2 info: label: Linode API v4 — Linode Instances description: 'Linode API v4 — Linode Instances. 17 operations. Lead operation: List Linodes. Self-contained Naftiko capability covering one Linode business surface.' tags: - Linode - Linode Instances 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-linode-instances baseUri: https://api.linode.com/v4 description: Linode API v4 — Linode Instances business capability. Self-contained, no shared references. resources: - name: linode-instances path: /linode/instances operations: - name: getlinodeinstances method: GET description: List Linodes outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createlinodeinstance method: POST description: Create a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: linode-instances-linodeId path: /linode/instances/{linodeId} operations: - name: getlinodeinstance method: GET description: Get a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatelinodeinstance method: PUT description: Update a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletelinodeinstance method: DELETE description: Delete a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-instances-linodeId-backups path: /linode/instances/{linodeId}/backups operations: - name: getbackups method: GET description: List backups outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-instances-linodeId-boot path: /linode/instances/{linodeId}/boot operations: - name: bootlinodeinstance method: POST description: Boot a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: linode-instances-linodeId-clone path: /linode/instances/{linodeId}/clone operations: - name: clonelinodeinstance method: POST description: Clone a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: linode-instances-linodeId-configs path: /linode/instances/{linodeId}/configs operations: - name: getlinodeconfigs method: GET description: List configuration profiles outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-instances-linodeId-disks path: /linode/instances/{linodeId}/disks operations: - name: getlinodedisks method: GET description: List disks outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-instances-linodeId-ips path: /linode/instances/{linodeId}/ips operations: - name: getlinodeips method: GET description: Get networking information outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-instances-linodeId-reboot path: /linode/instances/{linodeId}/reboot operations: - name: rebootlinodeinstance method: POST description: Reboot a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: linode-instances-linodeId-rebuild path: /linode/instances/{linodeId}/rebuild operations: - name: rebuildlinodeinstance method: POST description: Rebuild a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: linode-instances-linodeId-resize path: /linode/instances/{linodeId}/resize operations: - name: resizelinodeinstance method: POST description: Resize a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: linode-instances-linodeId-shutdown path: /linode/instances/{linodeId}/shutdown operations: - name: shutdownlinodeinstance method: POST description: Shut down a Linode outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-kernels path: /linode/kernels operations: - name: getkernels method: GET description: List kernels outputRawFormat: json outputParameters: - name: result type: object value: $. - name: linode-types path: /linode/types operations: - name: getlinodetypes method: GET description: List types outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.LINODE_API_KEY}}' exposes: - type: rest namespace: api-v4-linode-instances-rest port: 8080 description: REST adapter for Linode API v4 — Linode Instances. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/linode/instances name: linode-instances description: REST surface for linode-instances. operations: - method: GET name: getlinodeinstances description: List Linodes call: api-v4-linode-instances.getlinodeinstances outputParameters: - type: object mapping: $. - method: POST name: createlinodeinstance description: Create a Linode call: api-v4-linode-instances.createlinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid} name: linode-instances-linodeid description: REST surface for linode-instances-linodeId. operations: - method: GET name: getlinodeinstance description: Get a Linode call: api-v4-linode-instances.getlinodeinstance outputParameters: - type: object mapping: $. - method: PUT name: updatelinodeinstance description: Update a Linode call: api-v4-linode-instances.updatelinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletelinodeinstance description: Delete a Linode call: api-v4-linode-instances.deletelinodeinstance outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/backups name: linode-instances-linodeid-backups description: REST surface for linode-instances-linodeId-backups. operations: - method: GET name: getbackups description: List backups call: api-v4-linode-instances.getbackups outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/boot name: linode-instances-linodeid-boot description: REST surface for linode-instances-linodeId-boot. operations: - method: POST name: bootlinodeinstance description: Boot a Linode call: api-v4-linode-instances.bootlinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/clone name: linode-instances-linodeid-clone description: REST surface for linode-instances-linodeId-clone. operations: - method: POST name: clonelinodeinstance description: Clone a Linode call: api-v4-linode-instances.clonelinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/configs name: linode-instances-linodeid-configs description: REST surface for linode-instances-linodeId-configs. operations: - method: GET name: getlinodeconfigs description: List configuration profiles call: api-v4-linode-instances.getlinodeconfigs outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/disks name: linode-instances-linodeid-disks description: REST surface for linode-instances-linodeId-disks. operations: - method: GET name: getlinodedisks description: List disks call: api-v4-linode-instances.getlinodedisks outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/ips name: linode-instances-linodeid-ips description: REST surface for linode-instances-linodeId-ips. operations: - method: GET name: getlinodeips description: Get networking information call: api-v4-linode-instances.getlinodeips outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/reboot name: linode-instances-linodeid-reboot description: REST surface for linode-instances-linodeId-reboot. operations: - method: POST name: rebootlinodeinstance description: Reboot a Linode call: api-v4-linode-instances.rebootlinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/rebuild name: linode-instances-linodeid-rebuild description: REST surface for linode-instances-linodeId-rebuild. operations: - method: POST name: rebuildlinodeinstance description: Rebuild a Linode call: api-v4-linode-instances.rebuildlinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/resize name: linode-instances-linodeid-resize description: REST surface for linode-instances-linodeId-resize. operations: - method: POST name: resizelinodeinstance description: Resize a Linode call: api-v4-linode-instances.resizelinodeinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/linode/instances/{linodeid}/shutdown name: linode-instances-linodeid-shutdown description: REST surface for linode-instances-linodeId-shutdown. operations: - method: POST name: shutdownlinodeinstance description: Shut down a Linode call: api-v4-linode-instances.shutdownlinodeinstance outputParameters: - type: object mapping: $. - path: /v1/linode/kernels name: linode-kernels description: REST surface for linode-kernels. operations: - method: GET name: getkernels description: List kernels call: api-v4-linode-instances.getkernels outputParameters: - type: object mapping: $. - path: /v1/linode/types name: linode-types description: REST surface for linode-types. operations: - method: GET name: getlinodetypes description: List types call: api-v4-linode-instances.getlinodetypes outputParameters: - type: object mapping: $. - type: mcp namespace: api-v4-linode-instances-mcp port: 9090 transport: http description: MCP adapter for Linode API v4 — Linode Instances. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-linodes description: List Linodes hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getlinodeinstances outputParameters: - type: object mapping: $. - name: create-linode description: Create a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.createlinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: get-linode description: Get a Linode hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getlinodeinstance outputParameters: - type: object mapping: $. - name: update-linode description: Update a Linode hints: readOnly: false destructive: false idempotent: true call: api-v4-linode-instances.updatelinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-linode description: Delete a Linode hints: readOnly: false destructive: true idempotent: true call: api-v4-linode-instances.deletelinodeinstance outputParameters: - type: object mapping: $. - name: list-backups description: List backups hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getbackups outputParameters: - type: object mapping: $. - name: boot-linode description: Boot a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.bootlinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: clone-linode description: Clone a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.clonelinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: list-configuration-profiles description: List configuration profiles hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getlinodeconfigs outputParameters: - type: object mapping: $. - name: list-disks description: List disks hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getlinodedisks outputParameters: - type: object mapping: $. - name: get-networking-information description: Get networking information hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getlinodeips outputParameters: - type: object mapping: $. - name: reboot-linode description: Reboot a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.rebootlinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: rebuild-linode description: Rebuild a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.rebuildlinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: resize-linode description: Resize a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.resizelinodeinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: shut-down-linode description: Shut down a Linode hints: readOnly: false destructive: false idempotent: false call: api-v4-linode-instances.shutdownlinodeinstance outputParameters: - type: object mapping: $. - name: list-kernels description: List kernels hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getkernels outputParameters: - type: object mapping: $. - name: list-types description: List types hints: readOnly: true destructive: false idempotent: true call: api-v4-linode-instances.getlinodetypes outputParameters: - type: object mapping: $.