Arcade MCP

raw JSON →
1.14.1 verified Sat May 09 auth: no python

The official Arcade.dev library for tool calling and MCP (Model Context Protocol) server hosting. Provides a client to list tools and execute calls, and a MCP server to expose Arcade tools to any MCP-compatible agent. Current version 1.14.1. Active development, frequent releases.

pip install arcade-mcp
error KeyError: 'ARCADE_API_KEY'
cause Environment variable not set.
fix
Export ARCADE_API_KEY and ARCADE_USER_ID before running Python: export ARCADE_API_KEY='your_key'
error ImportError: cannot import name 'ToolCallClient' from 'arcade'
cause The old import path arcade was renamed to arcade_mcp.
fix
Change import to: from arcade_mcp import ToolCallClient
error ToolCallError: Tool 'GetCurrent' not found
cause Tool name without namespace.
fix
Use full tool name like 'Weather.GetCurrent' (include namespace).
gotcha ToolCallClient reads API keys from environment variables ARCADE_API_KEY and ARCADE_USER_ID. If not set, client may fail silently or raise unclear auth errors.
fix Always set ARCADE_API_KEY and ARCADE_USER_ID before creating the client.
gotcha Import paths changed in early 1.x. Some older examples use from arcade.client import ToolCallClient, which no longer works.
fix Use from arcade_mcp import ToolCallClient (note: arcade_mcp, not arcade).
deprecated The library deprecated the old arcade package name. Future releases may remove arcade top-level imports entirely.
fix Use arcade_mcp as the package name. Update any imports from arcade to arcade_mcp.
gotcha The ToolCallClient.call_tool method requires tool names with namespace (e.g., 'Weather.GetCurrent'). Omitting the namespace returns a 404 error.
fix Always use the full tool name as returned by list_tools().

Creates a ToolCallClient, lists tools, and calls one. Requires ARCADE_API_KEY and ARCADE_USER_ID environment variables.

import os
from arcade_mcp import ToolCallClient

# Set environment variables (use placeholder for safety)
os.environ['ARCADE_API_KEY'] = os.environ.get('ARCADE_API_KEY', '')
os.environ['ARCADE_USER_ID'] = os.environ.get('ARCADE_USER_ID', '')

client = ToolCallClient()
# List available tools
tools = client.list_tools()
print(tools)
# Example: call a tool (weather tool if available)
result = client.call_tool("Weather.GetCurrent", {"location": "San Francisco"})
print(result)