arcade-dev · Schema

Arcade Worker

Schema for an Arcade worker. Workers host one or more toolkits and are called by the Arcade Engine to execute tool invocations. Workers can be Arcade-hosted or self-hosted via HTTP behind a shared secret.

Properties

Name Type Description
id string Stable worker identifier within the organization (e.g., company-tools).
enabled boolean Whether the worker is currently routable.
http object HTTP transport configuration for self-hosted workers.
mcp object Configuration when the worker is an MCP server rather than an Arcade HTTP worker.
tools array Tools advertised by this worker.
health object Most recent health status reported by the worker.
View JSON Schema on GitHub

JSON Schema

arcade-worker-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/arcade-dev/main/json-schema/arcade-worker-schema.json",
  "title": "Arcade Worker",
  "description": "Schema for an Arcade worker. Workers host one or more toolkits and are called by the Arcade Engine to execute tool invocations. Workers can be Arcade-hosted or self-hosted via HTTP behind a shared secret.",
  "type": "object",
  "required": ["id"],
  "properties": {
    "id": {"type": "string", "description": "Stable worker identifier within the organization (e.g., company-tools)."},
    "enabled": {"type": "boolean", "description": "Whether the worker is currently routable."},
    "http": {
      "type": "object",
      "description": "HTTP transport configuration for self-hosted workers.",
      "required": ["uri"],
      "properties": {
        "uri": {"type": "string", "format": "uri", "description": "Base URI the Arcade Engine calls."},
        "secret": {"type": "string", "description": "Shared secret used to authenticate Engine -> Worker calls."},
        "timeout": {"type": "integer", "description": "Request timeout in seconds.", "default": 30},
        "retry": {"type": "integer", "description": "Number of retries on transient failure.", "default": 1}
      }
    },
    "mcp": {
      "type": "object",
      "description": "Configuration when the worker is an MCP server rather than an Arcade HTTP worker.",
      "properties": {
        "uri": {"type": "string", "format": "uri"},
        "transport": {"type": "string", "enum": ["http", "sse", "websocket"]}
      }
    },
    "tools": {
      "type": "array",
      "description": "Tools advertised by this worker.",
      "items": {"$ref": "arcade-tool-schema.json"}
    },
    "health": {
      "type": "object",
      "description": "Most recent health status reported by the worker.",
      "properties": {
        "healthy": {"type": "boolean"},
        "checked_at": {"type": "string", "format": "date-time"},
        "message": {"type": "string"}
      }
    }
  },
  "additionalProperties": false
}