Skip to Content
ReferencesArcade CLI

The Arcade CLI

The Arcade CLI is a command-line tool that allows you to manage your Arcade deployments, generate, test, and manage your servers, and more.

Install the Arcade CLI

In your terminal, run the following command to install the published arcade-mcp package from PyPI:

Terminal
uv tool install arcade-mcp

This will install the Arcade CLI as a uv tool , making it available system wide.

Using Windows and PowerShell? Follow the Windows environment setup guide for install options with and without uv.

Upgrade the Arcade CLI

To upgrade to the latest version of the Arcade CLI, run the appropriate command for your package manager:

Terminal
uv tool upgrade arcade-mcp

After upgrading, verify the installation:

Terminal
arcade --version

If you previously had the arcade-ai package installed, you should uninstall it first. The old arcade-ai CLI has been replaced by arcade-mcp. See the migration guide for details on migrating from legacy toolkits.

Re-authenticate after upgrading

After upgrading, you may need to refresh your credentials:

Terminal
arcade logout arcade login

Usage

Terminal
Usage: arcade [OPTIONS] COMMAND [ARGS]... Arcade CLI - Build, deploy, and manage MCP servers and AI tools. Create new projects, run servers with multiple transports, configure clients, and deploy to Arcade Cloud. ╭─ Options ──────────────────────────────────────────────────────────────╮ │ --version -v Print version and exit. │ │ --help -h Show this message and exit. │ ╰────────────────────────────────────────────────────────────────────────╯ ╭─ User ─────────────────────────────────────────────────────────────────╮ │ login Log in to Arcade │ │ logout Log out of Arcade │ │ whoami Show current login status and active context │ │ dashboard Open the Arcade Dashboard in a web browser │ │ org Manage organizations (list, set active) │ │ project Manage projects (list, set active) │ ╰────────────────────────────────────────────────────────────────────────╯ ╭─ Build ────────────────────────────────────────────────────────────────╮ │ new Create a new server package directory. Example usage: arcade │ │ new my_mcp_server │ │ show Show the installed tools or details of a specific tool │ │ evals Run tool calling evaluations │ ╰────────────────────────────────────────────────────────────────────────╯ ╭─ Run ──────────────────────────────────────────────────────────────────╮ │ mcp Run MCP servers with different transports │ │ deploy Deploy MCP servers to Arcade │ ╰────────────────────────────────────────────────────────────────────────╯ ╭─ Manage ───────────────────────────────────────────────────────────────╮ │ configure Configure MCP clients to connect to your server │ │ server Manage deployments of tool servers (logs, list, etc) │ │ secret Manage tool secrets in the cloud (set, unset, list) │ ╰────────────────────────────────────────────────────────────────────────╯ Pro tip: use --help after any command to see command-specific options.

You can learn more about any of the commands by running arcade <command> --help, for example, arcade new --help.

arcade login

Run without options to sign in to Arcade Cloud.

To sign in to a self-hosted installation, pass its URL. The CLI reads the installation’s discovery document and creates a named context:

Terminal
arcade login --url https://arcade.example.com

The CLI names the after the installation’s host unless you pass --context.

Terminal
Usage: arcade login [OPTIONS] Log in to Arcade ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --url TEXT Installation URL to log in │ │ to. The CLI fetches its │ │ discovery document and saves │ │ a named context. Defaults to │ │ the ARCADE_URL environment │ │ variable. │ │ [default: None] │ │ --context,--context-name TEXT Name to save the context │ │ under (defaults to the │ │ installation host). │ │ [default: None] │ │ --host -h TEXT Legacy, use --url instead. │ │ Still the way to reach a │ │ local coordinator, which │ │ serves no discovery document. │ │ [default: cloud.arcade.dev] │ │ --port -p INTEGER The port of the Arcade │ │ Coordinator host (if running │ │ locally). │ │ [default: None] │ │ --timeout INTEGER Seconds to wait for the local │ │ login callback. │ │ [default: 600] │ │ --debug -d Show debug information │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade logout

Signs out of the active and leaves your other contexts signed in. To sign out of all of them and remove the stored credentials, pass --all.

Terminal
Usage: arcade logout [OPTIONS] Log out of Arcade ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --all Log out of every saved context and delete the │ │ credentials file. │ │ --debug -d Show debug information │ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade context

A is one Arcade installation you have signed in to together with the credentials for it. Sign in to as many as you need and switch between them.

Commands that talk to an installation, such as arcade deploy, arcade secret, and arcade server, use the active . You don’t need to pass a host.

Terminal
Usage: arcade context [OPTIONS] COMMAND [ARGS]... Manage installation contexts ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────╮ │ list List saved contexts │ │ set Set the active context │ │ show Show the active context or a named context │ │ delete Delete a saved context │ │ add Log in to an installation and save it as a context │ ╰──────────────────────────────────────────────────────────────────────────╯

Target one installation for a single command

--context runs one command against a different installation without changing which one is active:

Terminal
arcade --context staging deploy

Set ARCADE_CONTEXT to do the same for a whole shell session, which is useful in scripts and CI:

Terminal
export ARCADE_CONTEXT=staging

The flag takes precedence over the environment variable, and both take precedence over the active . Neither one changes what arcade context list reports as active.

The CLI reads ARCADE_CONTEXT when it starts. Setting it in a ’s .env file has no effect, because that file loads after the CLI has already chosen an installation.

arcade context add

Signs in to an installation and saves it as a . Equivalent to arcade login --url.

Terminal
Usage: arcade context add [OPTIONS] URL Log in to an installation and save it as a context ╭─ Arguments ──────────────────────────────────────────────────────────────╮ │ * url TEXT Installation URL to log in to │ │ [default: None] │ │ [required] │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --context,--context-name TEXT Name to save the context │ │ under (defaults to the │ │ installation host). │ │ [default: None] │ │ --timeout INTEGER Seconds to wait for the local │ │ login callback. │ │ [default: 600] │ │ --debug -d Show debug information │ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade context list

Terminal
Usage: arcade context list [OPTIONS] List saved contexts ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade context set

Terminal
Usage: arcade context set [OPTIONS] NAME Set the active context ╭─ Arguments ──────────────────────────────────────────────────────────────╮ │ * name TEXT Name of the context to activate │ │ [default: None] │ │ [required] │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade context show

Terminal
Usage: arcade context show [OPTIONS] [NAME] Show the active context or a named context ╭─ Arguments ──────────────────────────────────────────────────────────────╮ │ name [NAME] Name of the context to show │ │ [default: None] │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade context delete

Removes a saved . If it was the active one, another becomes active.

Terminal
Usage: arcade context delete [OPTIONS] NAME Delete a saved context ╭─ Arguments ──────────────────────────────────────────────────────────────╮ │ * name TEXT Name of the context to delete │ │ [default: None] │ │ [required] │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade whoami

Terminal
Usage: arcade whoami [OPTIONS] Show current login status and active context ╭─ Options ──────────────────────────────────────────────────────────────╮ │ --debug -d Show debug information │ │ --help -h Show this message and exit. │ ╰────────────────────────────────────────────────────────────────────────╯

arcade dashboard

Terminal
Usage: arcade dashboard [OPTIONS] Open the Arcade Dashboard in a web browser ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --host -h TEXT The Arcade Engine host that serves the │ │ dashboard. Defaults to the active context's │ │ dashboard, or its engine. │ │ [default: None] │ │ --port -p INTEGER The port of the Arcade Engine. │ │ [default: None] │ │ --local -l Open the local dashboard instead of the │ │ default remote dashboard. │ │ --tls Whether to force TLS for the connection to │ │ the Arcade Engine. │ │ --no-tls Whether to disable TLS for the connection to │ │ the Arcade Engine. │ │ --debug -d Show debug information │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade org

Terminal
Usage: arcade org [OPTIONS] COMMAND [ARGS]... Manage organizations (list, set active) ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --host -h TEXT The Arcade Coordinator host. Defaults to the │ │ active context's coordinator. │ │ [default: None] │ │ --port -p INTEGER The port of the Arcade Coordinator host. │ │ [default: None] │ │ --tls Whether to force TLS for the connection to │ │ Arcade Coordinator. │ │ --no-tls Whether to disable TLS for the connection to │ │ Arcade Coordinator. │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────╮ │ list List organizations you belong to │ │ set Set the active organization │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade project

Terminal
Usage: arcade project [OPTIONS] COMMAND [ARGS]... Manage projects (list, set active) ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --host -h TEXT The Arcade Coordinator host. Defaults to the │ │ active context's coordinator. │ │ [default: None] │ │ --port -p INTEGER The port of the Arcade Coordinator host. │ │ [default: None] │ │ --tls Whether to force TLS for the connection to │ │ Arcade Coordinator. │ │ --no-tls Whether to disable TLS for the connection to │ │ Arcade Coordinator. │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────╮ │ list List projects in the active organization │ │ set Set the active project │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade new

Terminal
Usage: arcade new [OPTIONS] SERVER_NAME Create a new server package directory. Example usage: arcade new my_mcp_server ╭─ Arguments ──────────────────────────────────────────────────────────────╮ │ * server_name TEXT The name of the server to create │ │ [default: None] │ │ [required] │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --dir TEXT tools directory path │ │ [default: current directory] │ │ --debug -d Show debug information │ │ --full -f Create a starter MCP server (pyproject.toml, │ │ server.py, .env.example) │ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade show

Terminal
Usage: arcade show [OPTIONS] Show the installed tools or details of a specific tool ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --server -T TEXT The server to show the tools of │ │ [default: None] │ │ --tool -t TEXT The specific tool to show details for │ │ [default: None] │ │ --host -h TEXT The Arcade Engine address to show the │ │ tools/servers of. Defaults to the active │ │ context's engine. │ │ [default: None] │ │ --local -l Show the local environment's catalog instead │ │ of an Arcade Engine's catalog. │ │ --port -p INTEGER The port of the Arcade Engine. │ │ [default: None] │ │ --tls Whether to force TLS for the connection to │ │ the Arcade Engine. If not specified, the │ │ connection will use TLS if the engine URL │ │ uses a 'https' scheme. │ │ --no-tls Whether to disable TLS for the connection to │ │ the Arcade Engine. │ │ --full -f Show full server response structure including │ │ error, logs, and authorization fields (only │ │ applies when used with -t/--tool). │ │ --debug -d Show debug information │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade evals

Terminal
Usage: arcade evals [OPTIONS] [DIRECTORY] Run tool calling evaluations ╭─ Arguments ──────────────────────────────────────────────────────────────╮ │ directory [DIRECTORY] Directory containing evaluation files │ │ [default: .] │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --details -d Show detailed results │ │ --only-failed -f Show only failed cases │ │ --capture Record tool calls without scoring│ │ --include-context Include conversation context │ │ --output -o TEXT Output file(s) (repeatable) │ │ --use-provider -p TEXT Provider and models (repeatable)│ │ --api-key -k TEXT Provider API key (repeatable) │ │ --max-concurrent -c INTEGER Maximum number of concurrent │ │ evaluations (default: 1) │ │ [default: 1] │ │ --num-runs -n INTEGER Number of runs per case │ │ [default: 1] │ │ --seed TEXT Seed policy for OpenAI runs │ │ [default: constant] │ │ --multi-run-pass-rule TEXT Pass/warn aggregation rule │ │ [default: last] │ │ --debug Show debug information │ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade mcp

Terminal
Usage: arcade mcp [OPTIONS] [TRANSPORT] Run MCP servers with different transports ╭─ Arguments ────────────────────────────────────────────────────────────────────────╮ │ transport [TRANSPORT] Transport type: stdio, http │ │ [default: http] │ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ──────────────────────────────────────────────────────────────────────────╮ │ --host TEXT Host to bind to (HTTP mode only) │ │ [default: 127.0.0.1] │ │ --port INTEGER Port to bind to (HTTP mode only) │ │ [default: 8000] │ │ --tool-package,--package -p TEXT Specific tool package to load (e.g., │ │ 'github' for arcade-github) │ │ [default: None] │ │ --discover-installed,--all Discover all installed arcade tool │ │ packages │ │ --show-packages Show loaded packages during discovery │ │ --reload Enable auto-reload on code changes │ │ (HTTP mode only) │ │ --debug Enable debug mode with verbose │ │ logging │ │ --otel-enable Send logs to OpenTelemetry │ │ --env-file TEXT Path to environment file │ │ [default: None] │ │ --name TEXT Server name │ │ [default: None] │ │ --version TEXT Server version │ │ [default: None] │ │ --cwd TEXT Working directory to run from │ │ [default: None] │ │ --help -h Show this message and exit. │ ╰────────────────────────────────────────────────────────────────────────────────────╯

arcade deploy

Terminal
Usage: arcade deploy [OPTIONS] Deploy MCP servers to Arcade ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --entrypoint -e TEXT Relative path to the Python file that runs │ │ the MCPApp instance (relative to project │ │ root). This file must execute the run() │ │ method on your MCPApp instance when invoked │ │ directly. │ │ [default: server.py] │ │ --debug -d Show debug information │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Advanced ───────────────────────────────────────────────────────────────╮ │ --provider TEXT Deployment provider to │ │ run this server on. │ │ Omitted sends it to the │ │ installation's default. │ │ Only installations that │ │ run more than one │ │ provider accept it. │ │ [default: None] │ │ --skip-validate,--yolo Skip running the server │ │ locally for │ │ health/metadata checks. │ │ When set, you must │ │ provide --server-name │ │ and --server-version. │ │ Secret handling is │ │ controlled by │ │ --secrets. │ │ --server-name -n TEXT Explicit server name to │ │ use when │ │ --skip-validate is set. │ │ Only used when │ │ --skip-validate is set. │ │ [default: None] │ │ --server-version -v TEXT Explicit server version │ │ to use when │ │ --skip-validate is set. │ │ Only used when │ │ --skip-validate is set. │ │ [default: None] │ │ --secrets -s [auto|all|skip] How to upsert secrets │ │ before deploy: auto │ │ (default): During │ │ validation, discover │ │ required secret KEYS │ │ and upsert only those. │ │ If --skip-validate is │ │ set, auto becomes skip. │ │ all: Upsert every │ │ key/value pair from │ │ your server's .env file │ │ regardless of what the │ │ server needs. skip: Do │ │ not upsert any secrets │ │ (assumes they are │ │ already present in │ │ Arcade). │ │ [default: auto] │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade configure

Terminal
Usage: arcade configure [OPTIONS] CLIENT:{claude|cursor|vscode} Configure MCP clients to connect to your server ╭─ Arguments ────────────────────────────────────────────────────────────────────────╮ │ * client CLIENT:{claude|cursor|vscode} The MCP client to configure │ │ (claude, cursor, vscode) │ │ [default: None] │ │ [required] │ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ──────────────────────────────────────────────────────────────────────────╮ │ --transport -t [stdio|http] The transport to use for the MCP server │ │ configuration │ │ [default: stdio] │ │ --debug -d Show debug information │ │ --help Show this message and exit. │ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Stdio Options ────────────────────────────────────────────────────────────────────╮ │ --entrypoint -e TEXT The name of the Python file in the current directory │ │ that runs the server. This file must run the server │ │ when invoked directly. Only used for stdio servers. │ │ [default: server.py] │ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Configuration File Options ───────────────────────────────────────────────────────╮ │ --name -n TEXT Optional name of the server to set in the configuration │ │ file (defaults to the name of the current directory) │ │ [default: None] │ │ --config -c PATH Optional path to a specific MCP client config file │ │ (overrides default path) │ │ [default: None] │ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭─ HTTP Options ─────────────────────────────────────────────────────────────────────╮ │ --host -h [local|arcade] The host of the HTTP server to configure. Use │ │ 'local' to connect to a local MCP server or │ │ 'arcade' to connect to an Arcade Cloud MCP server. │ │ [default: local] │ │ --port -p INTEGER Port for local HTTP servers │ │ [default: 8000] │ ╰────────────────────────────────────────────────────────────────────────────────────╯

arcade server

Terminal
Usage: arcade server [OPTIONS] COMMAND [ARGS]... Manage deployments of tool servers (logs, list, etc) ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --host -h TEXT The Arcade Engine host. Defaults to the │ │ active context's engine. │ │ [default: None] │ │ --port -p INTEGER The port of the Arcade Engine host. │ │ [default: None] │ │ --tls Whether to force TLS for the connection to │ │ the Arcade Engine. │ │ --no-tls Whether to disable TLS for the connection to │ │ the Arcade Engine. │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────╮ │ list List all servers │ │ get Get a server's details │ │ enable Enable a server │ │ disable Disable a server │ │ delete Delete a server that is managed by Arcade │ │ logs Get logs for a server that is managed by Arcade │ ╰──────────────────────────────────────────────────────────────────────────╯

arcade secret

Terminal
Usage: arcade secret [OPTIONS] COMMAND [ARGS]... Manage tool secrets in the cloud (set, unset, list) ╭─ Options ────────────────────────────────────────────────────────────────╮ │ --host -h TEXT The Arcade Engine host. Defaults to the │ │ active context's engine. │ │ [default: None] │ │ --port -p INTEGER The port of the Arcade Engine host. │ │ [default: None] │ │ --tls Whether to force TLS for the connection to │ │ the Arcade Engine. │ │ --no-tls Whether to disable TLS for the connection to │ │ the Arcade Engine. │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────╮ │ set Set tool secret(s) using KEY=VALUE pairs or from .env file │ │ list List all tool secrets in Arcade │ │ unset Delete tool secret(s) by key names │ ╰──────────────────────────────────────────────────────────────────────────╯
Last updated on