Arcade CLI Cheat Sheet
📄 Print-friendly! Use your browser’s print function (Ctrl/Cmd + P) to get a landscape-oriented version perfect for events and quick reference. The layout will automatically adjust for optimal printing.
Install Arcade CLI globally using uv (recommended) or pip.
uv tool install arcade-mcp # Recommended
pip install arcade-mcp # AlternativeVerify installation:
arcade --versionCreate and run your first server:
arcade new my_server
cd my_server
arcade mcp httpGet help on any command:
arcade --help
arcade <command> --helpuv for faster installs and better dependency managementAuthenticate with Arcade Cloud for deployments and secrets management.
| Command | Description |
|---|---|
arcade login | Opens browser for OAuth authentication |
arcade login --host <url> | Login to custom Arcade instance |
arcade logout | Clear local credentials |
arcade whoami | Show logged-in user and active context |
arcade dashboard | Open Arcade web UI in browser |
arcade dashboard --local | Open local dashboard |
Credentials are stored in ~/.arcade/credentials.yaml
Organizations group and team members. Projects contain servers, secrets, and configurations.
# List all organizations
arcade org list
# Switch active organization
arcade org set <org_id>Switching organization also resets your active to that org’s default.
contain servers, secrets, and configurations.
# List projects in active org
arcade project list
# Switch active project
arcade project set <id>All deploy/secret commands use your active project .
Use arcade whoami to see current org/.
Scaffold a new server with boilerplate code.
Minimal Template (Quick Start)
arcade new my_serverCreates pyproject.toml, src/my_server/init.py, src/my_server/server.py.
Full Template (Production)
arcade new my_server --fullCreates: pyproject.toml, my_server/ (package with ), tests/, evals/, Makefile, .pre-commit-config.yaml, .ruff.toml, LICENSE, README.md.
Options
| Flag | Description |
|---|---|
--dir <path> | Output directory (default: current) |
--full, -f | Create full starter project |
Start your server locally for development and testing.
Transport Types
# For MCP clients (Claude, Cursor)
arcade mcp stdio
# For web/API testing
arcade mcp httpExamples
arcade mcp http --port 8080 --reload --debug
arcade mcp stdio --tool-package github
arcade mcp http --discover-installed --show-packages--reload for faster development iterationView available and their schemas from local or remote servers.
# List all tools
arcade show
# Show local tools only
arcade show --local
# Show tool details
arcade show -t <tool_name>
# Full response structure
arcade show -t <tool> --full
# Filter by server
arcade show -T <server_name>Options
| Flag | Description |
|---|---|
-t, --tool <name> | Show specific tool details |
-T, --server <name> | Filter by server |
--local, -l | Show local catalog only |
--full, -f | Show complete response (auth, logs) |
Auto-configure clients to connect to your server.
Supported Clients
| Client | Command |
|---|---|
| Claude Desktop ( stdio only) | arcade configure claude |
| Cursor IDE ( stdio or http) | arcade configure cursor |
| VS Code ( stdio or http) | arcade configure vscode |
stdio transport via configuration file.Options
| Flag | Description | Default |
|---|---|---|
--transport <type> | stdio or http | stdio |
--host <target> | local or arcade | local |
--port <port> | Port for HTTP transport | 8000 |
--name <name> | Server name in config | directory name |
--entrypoint <file> | Entry file for stdio | server.py |
Deploy your server to Arcade Cloud for production use.
arcade deployOptions
| Flag | Description | Default |
|---|---|---|
-e, --entrypoint <file> | Python file that runs MCPApp | server.py |
--server-name <name> | Explicit server name | auto-detected |
--server-version <ver> | Explicit server version | auto-detected |
--skip-validate | Skip local health checks | off |
--secrets <mode> | Secret sync mode (see below) | auto |
Secrets Handling
| Mode | Description |
|---|---|
auto | Sync only required secret keys (default) |
all | Sync entire .env file |
skip | Don’t sync any secrets |
pyproject.toml is located).Manage deployed servers in Arcade Cloud.
# List all servers
arcade server list
# Get server details
arcade server get <name>
# Enable a server
arcade server enable <name>
# Disable a server
arcade server disable <name>
# Delete a server (permanent!)
arcade server delete <name>Delete is permanent and cannot be undone
View and stream logs from deployed servers.
# View recent logs (last 1h)
arcade server logs <name>
# Stream live logs
arcade server logs <name> -f # Stream live logsTime Range Options
| Flag | Description | Example |
|---|---|---|
-s, --since <time> | Start time (default: 1h) | 1h, 30m, 2d, 2024-01-15T10:00:00Z |
-u, --until <time> | End time (default: now) | 30m, 2024-01-15T12:00:00Z |
arcade server logs myserver --since 2h --until 30m
arcade server logs myserver --since 2024-01-15T10:00:00ZStore API keys and sensitive configuration for your deployed servers. Secrets are encrypted and scoped to your active .
List Secrets
arcade secret listShows: Key, Type, Description, Last accessed.
Set Secrets
arcade secret set KEY=value
arcade secret set KEY1=v1 KEY2=v2From .env File
arcade secret set --from-env
arcade secret set --from-env -f .env.prodDelete Secrets
arcade secret unset KEY1 KEY2Use arcade secret set --from-env to sync local .env to Arcade Cloud before deploying.
Test -calling accuracy with evaluation suites.
Run Evaluations
arcade evals # Current dir
arcade evals ./evals/ # Specific dirCapture Mode
arcade evals --captureOutput Options
| Flag | Description |
|---|---|
--details, -d | Show detailed results |
--failed-only, -f | Show only failed evals |
--file <path> | Write results to file |
--format <fmt> | Output format: txt, md, html, json, all |
--max-concurrent <n> | Concurrent evaluations (default: 1) |
--add-context | Include system/additional messages |
| —host | Bind address (127.0.0.1) |
| —port | Port number (8000) |
| —reload | Auto-reload on changes |
| —debug | Verbose logging |
| —tool-package | Load specific package |
| —discover-installed | Find arcade-* packages |
| —show-packages | List loaded packages |
| —env-file | Path to .env file |
| —name | Server name |
| —version | Server version |
| —otel-enable | Send logs to OTel |
Available on most commands:
| Flag | Description |
|---|---|
-h, --help | Show command help |
-v, --version | Show CLI version |
-d, --debug | Enable debug output |
--host <url> | Arcade Engine host |
--port <port> | Arcade Engine port |
--tls | Force TLS connection |
--no-tls | Disable TLS connection |
Use --debug when troubleshooting issues
Set these in your shell or .env file:
| Variable | Description |
|---|---|
OPENAI_API_KEY | OpenAI API key (for evals) |
ANTHROPIC_API_KEY | Anthropic API key (for evals) |
ARCADE_API_BASE_URL | Override Arcade API URL |
# In shell
export OPENAI_API_KEY=sk-...
# Or in .env file
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...Minimal Template (arcade new my_server)
my_server/ ├── pyproject.toml # Dependencies & metadata └── src/my_server/ ├── init.py └── server.py # MCPApp entry point
Full Template (arcade new my_server --full)
my_server/ ├── pyproject.toml # Dependencies & metadata ├── .pre-commit-config.yaml # Git hooks ├── .ruff.toml # Linter config ├── Makefile # Common commands ├── LICENSE ├── README.md ├── my_server/ # Package directory │ ├── init.py │ └── / │ ├── init.py │ └── hello.py # Example tool ├── tests/ │ ├── init.py │ └── test_my_server.py └── evals/ └── eval_my_server.py # Evaluation suites
Add .env (local secrets) and .env.example (template) to your .
Common Issues
| Error | Solution |
|---|---|
| ”Not logged in” | Run arcade login |
| ”Legacy credentials” | Run arcade logout then arcade login |
| ”Module not found” | Run uv pip install arcade-mcp[evals] |
| ”Server not healthy” | Check arcade server logs <name> -f |
| ”No tools found” | Verify --tool-package or --discover-installed |
Debug Tips
arcade --debug <command> # Verbose output
arcade server logs <name> -f # Stream live logs
arcade show --local # Verify local tools- Use
--reloadduring development for faster iteration - Use
stdiotransport for Claude Desktop and Cursor - Use
httptransport for web testing and debugging - Always set secrets before deploying servers
- Run evaluations before every deploy
- Use
--fulltemplate for production - Check logs immediately after deploying
- Use
--debugflag to see detailed request info - Keep
.env.exampleupdated for your team - Use project when working with multiple
Standard development cycle for building servers:
arcade login— Authenticate with Arcade Cloudarcade new my_server— Create (Minimal template)- Edit
src/my_server/server.py— Add your arcade mcp http --reload— Run locally with hot reloadarcade configure cursor— Connect your IDE- Test in IDE — Verify functionality
arcade evals— Run evaluation suitesarcade secret set --from-env— Sync secretsarcade deploy— Deploy to cloud (requiresserver.pyentrypoint)arcade server logs -f— Monitor logs