References

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:

uv tool install arcade-mcp

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

pip install arcade-mcp

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:

uv tool upgrade arcade-mcp
pip install --upgrade arcade-mcp

After upgrading, verify the installation:

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:

arcade logout
arcade login

Usage

 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:

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

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

 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.

 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.

 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:

arcade --context staging deploy

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

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.

 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

 Usage: arcade context list [OPTIONS]

 List saved contexts

╭─ Options ────────────────────────────────────────────────────────────────╮
│ --help  -h        Show this message and exit.                            │
╰──────────────────────────────────────────────────────────────────────────╯

arcade context set

 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

 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.

 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

 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

 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

 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

 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

 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

 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

 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

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

 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

 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

 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

 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                                │
╰──────────────────────────────────────────────────────────────────────────╯
Edit on GitHub

Last updated on

On this page