naftiko: 1.0.0-alpha2 info: label: Arcade Engine — Tools description: 'Tools surface — 9 operations. Lead operation: List Formatted Static Tools. Self-contained Naftiko capability covering one Arcade business surface.' tags: - Arcade - Engine - Tools created: '2026-05-22' modified: '2026-05-22' binds: - namespace: env keys: ARCADE_API_KEY: ARCADE_API_KEY capability: consumes: - type: http namespace: engine-tools baseUri: https://api.arcade.dev description: Arcade Engine — Tools business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.ARCADE_API_KEY}}' resources: - name: v1-formatted-tools path: /v1/formatted_tools operations: - name: tools-list-formatted method: GET description: List Formatted Static Tools outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: toolkit in: query type: string required: false description: Toolkit name - name: limit in: query type: integer required: false description: 'Number of items to return (default: 25, max: 100)' - name: offset in: query type: integer required: false description: 'Offset from the start of the list (default: 0)' - name: format in: query type: string required: false description: Provider format - name: user_id in: query type: string required: false description: User ID - name: include_all_versions in: query type: boolean required: false description: Include all versions of each tool - name: filter in: query type: string required: false description: 'JSON metadata filter. Array fields (service_domains, operations): shorthand array or object with any_of/all_of/none_of operators (case-insensitive). Boolean fields: read_only, destructive, idempotent, open_world. Extras: case-sensitive key-value subset match.' - name: v1-formatted-tools-name path: /v1/formatted_tools/{name} operations: - name: tool-spec-formatted method: GET description: Get Formatted Tool Specification outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string required: true description: Tool name - name: format in: query type: string required: false description: Provider format - name: user_id in: query type: string required: false description: User ID - name: v1-scheduled-tools path: /v1/scheduled_tools operations: - name: tool-scheduled-list method: GET description: List Scheduled Tool Executions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer required: false description: 'Number of items to return (default: 25, max: 100)' - name: offset in: query type: integer required: false description: 'Offset from the start of the list (default: 0)' - name: v1-scheduled-tools-id path: /v1/scheduled_tools/{id} operations: - name: tool-scheduled-get method: GET description: Get Scheduled Tool Execution Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true description: Scheduled execution ID - name: v1-tools path: /v1/tools operations: - name: tools-list-static method: GET description: List Static Tools outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: toolkit in: query type: string required: false description: Toolkit name - name: limit in: query type: integer required: false description: 'Number of items to return (default: 25, max: 100)' - name: offset in: query type: integer required: false description: 'Offset from the start of the list (default: 0)' - name: include_format in: query type: array required: false description: Comma separated tool formats that will be included in the response. - name: user_id in: query type: string required: false description: User ID - name: include_all_versions in: query type: boolean required: false description: Include all versions of each tool - name: filter in: query type: string required: false description: 'JSON metadata filter. Array fields (service_domains, operations): shorthand array or object with any_of/all_of/none_of operators (case-insensitive). Boolean fields: read_only, destructive, idempotent, open_world. Extras: case-sensitive key-value subset match.' - name: v1-tools-authorize path: /v1/tools/authorize operations: - name: tool-authorize method: POST description: Authorize Tool outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object required: true description: Request body. - name: v1-tools-execute path: /v1/tools/execute operations: - name: tool-execute method: POST description: Execute Tool outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object required: true description: Request body. - name: v1-tools-requirements path: /v1/tools/requirements operations: - name: tool-requirements method: POST description: Check Tool Requirements outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object required: true description: Request body. - name: v1-tools-name path: /v1/tools/{name} operations: - name: tool-spec method: GET description: Get Arcade Tool Specification outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string required: true description: Tool name - name: include_format in: query type: array required: false description: Comma separated tool formats that will be included in the response. - name: user_id in: query type: string required: false description: User ID exposes: - type: rest namespace: engine-tools-rest port: 8080 description: REST adapter for Arcade Engine — Tools. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/formatted-tools name: v1-formatted-tools description: REST surface for /v1/formatted-tools. operations: - method: GET name: tools-list-formatted description: List Formatted Static Tools call: engine-tools.tools-list-formatted with: toolkit: rest.toolkit limit: rest.limit offset: rest.offset format: rest.format user_id: rest.user_id include_all_versions: rest.include_all_versions filter: rest.filter outputParameters: - type: object mapping: $. - path: /v1/formatted-tools/{name} name: v1-formatted-tools-name description: REST surface for /v1/formatted-tools/{name}. operations: - method: GET name: tool-spec-formatted description: Get Formatted Tool Specification call: engine-tools.tool-spec-formatted with: name: rest.name format: rest.format user_id: rest.user_id outputParameters: - type: object mapping: $. - path: /v1/scheduled-tools name: v1-scheduled-tools description: REST surface for /v1/scheduled-tools. operations: - method: GET name: tool-scheduled-list description: List Scheduled Tool Executions call: engine-tools.tool-scheduled-list with: limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/scheduled-tools/{id} name: v1-scheduled-tools-id description: REST surface for /v1/scheduled-tools/{id}. operations: - method: GET name: tool-scheduled-get description: Get Scheduled Tool Execution Details call: engine-tools.tool-scheduled-get with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/tools name: v1-tools description: REST surface for /v1/tools. operations: - method: GET name: tools-list-static description: List Static Tools call: engine-tools.tools-list-static with: toolkit: rest.toolkit limit: rest.limit offset: rest.offset include_format: rest.include_format user_id: rest.user_id include_all_versions: rest.include_all_versions filter: rest.filter outputParameters: - type: object mapping: $. - path: /v1/tools/authorize name: v1-tools-authorize description: REST surface for /v1/tools/authorize. operations: - method: POST name: tool-authorize description: Authorize Tool call: engine-tools.tool-authorize with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tools/execute name: v1-tools-execute description: REST surface for /v1/tools/execute. operations: - method: POST name: tool-execute description: Execute Tool call: engine-tools.tool-execute with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tools/requirements name: v1-tools-requirements description: REST surface for /v1/tools/requirements. operations: - method: POST name: tool-requirements description: Check Tool Requirements call: engine-tools.tool-requirements with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tools/{name} name: v1-tools-name description: REST surface for /v1/tools/{name}. operations: - method: GET name: tool-spec description: Get Arcade Tool Specification call: engine-tools.tool-spec with: name: rest.name include_format: rest.include_format user_id: rest.user_id outputParameters: - type: object mapping: $. - type: mcp namespace: engine-tools-mcp port: 9090 transport: http description: MCP adapter for Arcade Engine — Tools. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-formatted-static-tools description: List Formatted Static Tools hints: readOnly: true destructive: false idempotent: true call: engine-tools.tools-list-formatted with: toolkit: tools.toolkit limit: tools.limit offset: tools.offset format: tools.format user_id: tools.user_id include_all_versions: tools.include_all_versions filter: tools.filter outputParameters: - type: object mapping: $. - name: get-formatted-tool-specification description: Get Formatted Tool Specification hints: readOnly: true destructive: false idempotent: true call: engine-tools.tool-spec-formatted with: name: tools.name format: tools.format user_id: tools.user_id outputParameters: - type: object mapping: $. - name: list-scheduled-tool-executions description: List Scheduled Tool Executions hints: readOnly: true destructive: false idempotent: true call: engine-tools.tool-scheduled-list with: limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: get-scheduled-tool-execution-details description: Get Scheduled Tool Execution Details hints: readOnly: true destructive: false idempotent: true call: engine-tools.tool-scheduled-get with: id: tools.id outputParameters: - type: object mapping: $. - name: list-static-tools description: List Static Tools hints: readOnly: true destructive: false idempotent: true call: engine-tools.tools-list-static with: toolkit: tools.toolkit limit: tools.limit offset: tools.offset include_format: tools.include_format user_id: tools.user_id include_all_versions: tools.include_all_versions filter: tools.filter outputParameters: - type: object mapping: $. - name: authorize-tool description: Authorize Tool hints: readOnly: false destructive: false idempotent: false call: engine-tools.tool-authorize with: body: tools.body outputParameters: - type: object mapping: $. - name: execute-tool description: Execute Tool hints: readOnly: false destructive: false idempotent: false call: engine-tools.tool-execute with: body: tools.body outputParameters: - type: object mapping: $. - name: check-tool-requirements description: Check Tool Requirements hints: readOnly: true destructive: false idempotent: false call: engine-tools.tool-requirements with: body: tools.body outputParameters: - type: object mapping: $. - name: get-arcade-tool-specification description: Get Arcade Tool Specification hints: readOnly: true destructive: false idempotent: true call: engine-tools.tool-spec with: name: tools.name include_format: tools.include_format user_id: tools.user_id outputParameters: - type: object mapping: $.