arcade-dev · JSON Structure

Arcade Tool Structure

JSON Structure description of an Arcade tool, intended for documentation and code generation. An Arcade tool is an addressable agent action belonging to a toolkit and gated by user-scoped authorization requirements.

Type: object Properties: 0

Arcade Tool Structure is a JSON Structure definition published by arcade-dev. It conforms to the https://json-structure.org/schemas/draft/2025-09/structure.json meta-schema.

Meta-schema: https://json-structure.org/schemas/draft/2025-09/structure.json

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/schemas/draft/2025-09/structure.json",
  "$id": "https://raw.githubusercontent.com/api-evangelist/arcade-dev/main/json-structure/arcade-tool-structure.json",
  "title": "Arcade Tool Structure",
  "description": "JSON Structure description of an Arcade tool, intended for documentation and code generation. An Arcade tool is an addressable agent action belonging to a toolkit and gated by user-scoped authorization requirements.",
  "type": "object",
  "fields": [
    {"name": "name", "type": "string", "required": true, "description": "Short tool name within its toolkit."},
    {"name": "fully_qualified_name", "type": "string", "required": true, "description": "Toolkit.Name@semver address of the tool."},
    {"name": "description", "type": "string", "required": true, "description": "Natural-language description used by the LLM to choose the tool."},
    {"name": "toolkit", "type": "object", "required": true, "fields": [
      {"name": "name", "type": "string", "required": true},
      {"name": "version", "type": "string", "required": true}
    ]},
    {"name": "input", "type": "object", "description": "JSON Schema for tool input parameters."},
    {"name": "output", "type": "object", "description": "JSON Schema for tool output."},
    {"name": "requirements", "type": "object", "fields": [
      {"name": "authorization", "type": "object", "fields": [
        {"name": "provider_id", "type": "string"},
        {"name": "provider_type", "type": "string", "enum": ["oauth2", "api_key", "custom"]},
        {"name": "scopes", "type": "array", "items": {"type": "string"}}
      ]},
      {"name": "metadata", "type": "object"}
    ]},
    {"name": "deprecation_date", "type": "string", "format": "date-time", "nullable": true}
  ]
}