The Deployer

Deploy and run apps in your own AWS, Google Cloud, Azure or DigitalOcean account from any AI agent: check a repo, launch with a priced plan you approve, fix failed deployments, read logs, and manage domains, scaling and databases. Remote server with OAuth sign-in at https://app.thedploy.com/mcp.

Hosted MCP Server

npx add-mcp 'https://app.thedploy.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

The Deployer MCP server

Let Claude Code, Codex, Cursor, VS Code or any AI coding agent deploy and run your apps with The Deployer. Ask it to put your app online and it checks the code, fixes what would stop a deploy, creates the project, sets the environment variables, shows you the hosting plan and its monthly cost, launches into your own cloud once you say yes, follows the deployment and fixes what fails. Then it redeploys, adds domains, scales, schedules start and stop, attaches databases and more.

The Deployer runs your app in your own DigitalOcean, AWS, Google Cloud or Azure account, or on your own servers, so the cloud bills you directly.

Tools

ToolWhat it doesKey
guideThe Deployer's playbooks for agents: the order of a deploy, what code needs, how to fix failuresNot needed
check_repoWill a public repository deploy? What it found, what's missing, and what it would cost on each cloudNot needed
plan_deployThe check, plus your connected accounts and projects, and the next step to takeAny
accountYour connected clouds and code hosts, workspaces, and what the key may doAny
statusYour projects, their live addresses and their latest deploymentAny
projectOne project in depth, with the exact next stepAny
deploymentWhere a deployment is, what it waits on, and for a failed one what to fixAny
logsA deployment's log, with secrets removedAny
diagnoseRead-only checks on a live server: containers, app logs, memory and diskAny
redeployPulls the latest code on a live project's branch and restarts itAny
create_projectCreates a project from a repository and reads its codeOperate
set_envSets environment variables; values are never shown backOperate
launchShows the plan and its cost, then launches after you say yesOperate
api_catalog / api_schema / api_read / apiEverything else (api_read reads, api changes): domains, scaling, schedules, databases, access, environments, blueprints, servers, adoptionReads: any. Changes: Operate
fixes / fix / claim_fix / report_fix / fix_statusCode problems a deploy hit, when you choose to have your own agent fix them (The Deployer fixes them itself by default)Reads: any. Changes: Operate
request_done_for_youAsks for a done-for-you Launch or Move; you finish the order in The DeployerAny

To create a key, sign in to The Deployer, open Profile, and use API keys and AI coding tools. Choose Operate to let an agent set up and run projects, or Look and redeploy. The page also shows these setups with your key filled in.

What an agent can never do with a key: see your cloud or git credentials or your environment variable values, change billing, your team or your account, delete projects, databases or servers, or create keys. Anything that costs money waits for your yes.

Setup: sign in, no key

The fastest way: add the server by its address and sign in. Your agent opens The Deployer in your browser, you approve it, and that's it: no key to create or paste. Or open Connections → Coding agents in The Deployer and pick your agent for one-click setup.

Server address: https://app.thedploy.com/mcp

Claude Code:

claude mcp add --transport http --scope user thedeployer https://app.thedploy.com/mcp
claude mcp login thedeployer

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, address https://app.thedploy.com/mcp.

Cursor, in ~/.cursor/mcp.json, then Cursor Settings → Tools & MCP → thedeployer → Needs login:

{ "mcpServers": { "thedeployer": { "url": "https://app.thedploy.com/mcp" } } }

VS Code: run MCP: Add Server → HTTP → https://app.thedploy.com/mcp; VS Code asks you to sign in the first time Copilot uses it.

Codex:

codex mcp add thedeployer --url https://app.thedploy.com/mcp

Gemini CLI, in ~/.gemini/settings.json:

{ "mcpServers": { "thedeployer": { "httpUrl": "https://app.thedploy.com/mcp" } } }

Setup with a key

For tools that can't sign in, or for CI.

The hosted server needs nothing installed. Replace dpl_your_key with your key.

Keep the key out of files you commit. Put it in your user-level settings, or have your tool read it from an environment variable or a prompt, as shown below for project files.

Claude Code, for all your projects (stored in ~/.claude.json):

claude mcp add --transport http --scope user thedeployer https://app.thedploy.com/api/v1/mcp --header "Authorization: Bearer dpl_your_key"

To share the server in a project's .mcp.json, use "Authorization": "Bearer ${THEDEPLOYER_API_KEY}" as the header. Claude Code fills it in from each person's THEDEPLOYER_API_KEY environment variable.

Codex, in ~/.codex/config.toml:

[mcp_servers.thedeployer]
command = "npx"
args = ["-y", "thedeployer-mcp"]
env = { THEDEPLOYER_API_KEY = "dpl_your_key" }

Cursor, in ~/.cursor/mcp.json:

{
  "mcpServers": {
    "thedeployer": {
      "url": "https://app.thedploy.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer dpl_your_key" }
    }
  }
}

In a project's .cursor/mcp.json, use "Authorization": "Bearer ${env:THEDEPLOYER_API_KEY}" instead, so Cursor reads the key from your environment.

VS Code, in .vscode/mcp.json. VS Code asks for the key the first time and stores it securely:

{
  "inputs": [
    { "type": "promptString", "id": "thedeployer-key", "description": "The Deployer API key", "password": true }
  ],
  "servers": {
    "thedeployer": {
      "type": "http",
      "url": "https://app.thedploy.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer ${input:thedeployer-key}" }
    }
  }
}

The same works in your user configuration (run MCP: Open User Configuration).

Gemini CLI, in ~/.gemini/settings.json:

{
  "mcpServers": {
    "thedeployer": {
      "httpUrl": "https://app.thedploy.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer dpl_your_key" }
    }
  }
}

Tools that start a local command (Cline, Windsurf and others) use this package, which needs Node.js 18 or newer. Add it to the tool's user-level MCP settings:

{
  "mcpServers": {
    "thedeployer": {
      "command": "npx",
      "args": ["-y", "thedeployer-mcp"],
      "env": { "THEDEPLOYER_API_KEY": "dpl_your_key" }
    }
  }
}

If your tool's configuration looks different, its MCP documentation has the equivalent fields: a URL with an Authorization header, or a command with an environment variable.

Proxies and company networks

With the hosted server, your AI tool makes the connection, so its own proxy settings apply.

This package uses Node.js, which ignores HTTPS_PROXY unless you turn that on. Add NODE_USE_ENV_PROXY next to it, which needs Node.js 22.21 or newer, or 24.0 or newer. (The --use-env-proxy flag does the same from Node.js 22.21 or 24.5.) On older versions, this package can't go through a proxy.

If your network inspects HTTPS with its own certificate, set NODE_EXTRA_CA_CERTS to that certificate's file (PEM):

"env": {
  "THEDEPLOYER_API_KEY": "dpl_your_key",
  "HTTPS_PROXY": "http://proxy.example.com:8080",
  "NODE_USE_ENV_PROXY": "1",
  "NODE_EXTRA_CA_CERTS": "/path/to/company-ca.pem"
}

What a key can and can't do

A key works only with The Deployer's MCP server, and only through its tools: check_repo, plan_deploy, status, logs (with secrets removed), redeploy and request_done_for_you. It can't touch your cloud or git credentials, your environment variables, your billing or your account settings, and it can't create more keys. The Deployer stores only a hash of it. Revoke a key on the Profile page at any time; use one key per tool or machine, so you can revoke one without touching the rest. Changing or resetting your password revokes all your keys.

redeploy changes a live app. Keep your tool asking you before it runs redeploy, rather than approving it automatically.

Tool answers come from your repositories and deployments. Treat them like any other text your agent reads.

How this package works

index.mjs is a bridge with no dependencies. It reads MCP messages from stdin, sends each one to The Deployer's hosted endpoint over HTTPS with your key, and writes the answers to stdout. The tools run on The Deployer, so this package doesn't change when they do.

Every request gets an answer. When The Deployer refuses one or can't be reached, the answer is an error that says why, such as a revoked key or a timeout. The bridge never follows redirects, and it never puts your key anywhere but the Authorization header.

VariableMeaning
THEDEPLOYER_API_KEYYour personal API key. Without it, only check_repo works
THEDEPLOYER_MCP_URLThe endpoint, if not https://app.thedploy.com/api/v1/mcp. It must use https://, except on this computer (127.0.0.1, ::1 or localhost)
THEDEPLOYER_TIMEOUT_MSHow long to wait for one answer, in milliseconds, from 1000 to 600000 (default 200000)
npm test

License

MIT