naftiko: 1.0.0-alpha2 info: label: Fastly Compute API — KV Store Item description: 'Fastly Compute API — KV Store Item. 4 operations. Lead operation: List keys in a KV store. Self-contained Naftiko capability covering one Fastly business surface.' tags: - Fastly - KV Store Item created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FASTLY_API_KEY: FASTLY_API_KEY capability: consumes: - type: http namespace: compute-kv-store-item baseUri: https://api.fastly.com description: Fastly Compute API — KV Store Item business capability. Self-contained, no shared references. resources: - name: resources-stores-kv-store_id-keys path: /resources/stores/kv/{store_id}/keys operations: - name: listkvstorekeys method: GET description: List keys in a KV store outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: cursor in: query type: string description: A cursor for pagination. - name: limit in: query type: integer description: The maximum number of keys to return. - name: prefix in: query type: string description: A prefix to filter keys by. - name: resources-stores-kv-store_id-keys-key_name path: /resources/stores/kv/{store_id}/keys/{key_name} operations: - name: getkvstoreitem method: GET description: Get a KV store item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: key_name in: path type: string description: The key name of the item. required: true - name: upsertkvstoreitem method: PUT description: Insert or update a KV store item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: key_name in: path type: string description: The key name of the item. required: true - name: time_to_live_sec in: query type: integer description: The time to live in seconds for the item. - name: metadata in: query type: string description: Optional metadata to attach to the item. - name: body in: body type: object description: Request body (JSON). required: true - name: deletekvstoreitem method: DELETE description: Delete a KV store item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: key_name in: path type: string description: The key name of the item. required: true authentication: type: apikey key: Fastly-Key value: '{{env.FASTLY_API_KEY}}' placement: header exposes: - type: rest namespace: compute-kv-store-item-rest port: 8080 description: REST adapter for Fastly Compute API — KV Store Item. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/resources/stores/kv/{store-id}/keys name: resources-stores-kv-store-id-keys description: REST surface for resources-stores-kv-store_id-keys. operations: - method: GET name: listkvstorekeys description: List keys in a KV store call: compute-kv-store-item.listkvstorekeys with: cursor: rest.cursor limit: rest.limit prefix: rest.prefix outputParameters: - type: object mapping: $. - path: /v1/resources/stores/kv/{store-id}/keys/{key-name} name: resources-stores-kv-store-id-keys-key-name description: REST surface for resources-stores-kv-store_id-keys-key_name. operations: - method: GET name: getkvstoreitem description: Get a KV store item call: compute-kv-store-item.getkvstoreitem with: key_name: rest.key_name outputParameters: - type: object mapping: $. - method: PUT name: upsertkvstoreitem description: Insert or update a KV store item call: compute-kv-store-item.upsertkvstoreitem with: key_name: rest.key_name time_to_live_sec: rest.time_to_live_sec metadata: rest.metadata body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletekvstoreitem description: Delete a KV store item call: compute-kv-store-item.deletekvstoreitem with: key_name: rest.key_name outputParameters: - type: object mapping: $. - type: mcp namespace: compute-kv-store-item-mcp port: 9090 transport: http description: MCP adapter for Fastly Compute API — KV Store Item. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-keys-kv-store description: List keys in a KV store hints: readOnly: true destructive: false idempotent: true call: compute-kv-store-item.listkvstorekeys with: cursor: tools.cursor limit: tools.limit prefix: tools.prefix outputParameters: - type: object mapping: $. - name: get-kv-store-item description: Get a KV store item hints: readOnly: true destructive: false idempotent: true call: compute-kv-store-item.getkvstoreitem with: key_name: tools.key_name outputParameters: - type: object mapping: $. - name: insert-update-kv-store-item description: Insert or update a KV store item hints: readOnly: false destructive: false idempotent: true call: compute-kv-store-item.upsertkvstoreitem with: key_name: tools.key_name time_to_live_sec: tools.time_to_live_sec metadata: tools.metadata body: tools.body outputParameters: - type: object mapping: $. - name: delete-kv-store-item description: Delete a KV store item hints: readOnly: false destructive: true idempotent: true call: compute-kv-store-item.deletekvstoreitem with: key_name: tools.key_name outputParameters: - type: object mapping: $.