SnapDeploy MCP

official

Deploy and manage SnapDeploy apps (Docker containers on AWS) from Claude Code, Cursor, Codex or Gemini CLI: builds, logs, env vars, add-ons, domains.

What can you do with SnapDeploy MCP?

  • Deploy a GitHub repository — Ask your assistant to deploy a repo to SnapDeploy and receive a live URL via the deploy tool.
  • Manage environment variables — Instruct your assistant to set or check environment variables for a container, with values masked as (set).
  • Monitor deployment status — Request real-time status, logs, or deployment history for any SnapDeploy container.
  • Control container lifecycle — Start, stop, or wake a container on demand without leaving your chat interface.
  • Provision resources — Create managed databases or assign custom domains to your deployments directly from the conversation.

Documentation

@snapdeploy/mcp

Deploy and manage SnapDeploy containers from your AI assistant — Claude Code, Claude Desktop, Cursor, Windsurf, Codex CLI, Gemini CLI, or any client that speaks the Model Context Protocol over stdio.

Say "deploy this repo to SnapDeploy" and get a live URL back. Builds, logs, environment variables, managed databases and custom domains — without leaving the chat.

Setup

  1. Sign in at snapdeploy.dev, open API Keys and create a token with the deploy scope (the page generates the snippets below with your token already filled in).
  2. Add the server to your client:

Claude Code

claude mcp add --scope user snapdeploy -e SNAPDEPLOY_API_KEY=sd_pat_your_token -- npx -y @snapdeploy/mcp

Cursor (~/.cursor/mcp.json), Windsurf (~/.codeium/windsurf/mcp_config.json), Gemini CLI (~/.gemini/settings.json), Claude Desktop and other JSON-configured clients:

{
  "mcpServers": {
    "snapdeploy": {
      "command": "npx",
      "args": ["-y", "@snapdeploy/mcp"],
      "env": { "SNAPDEPLOY_API_KEY": "sd_pat_your_token" }
    }
  }
}

Codex CLI (~/.codex/config.toml):

[mcp_servers.snapdeploy]
command = "npx"
args = ["-y", "@snapdeploy/mcp"]
env = { SNAPDEPLOY_API_KEY = "sd_pat_your_token" }

Claude Code plugin (token stored in secure storage instead of a config file):

/plugin marketplace add AAR-Labs/snapdeploy-mcp
/plugin install snapdeploy@snapdeploy

Restart the session; the snapdeploy tools appear. Your repository must be on GitHub and GitHub must be connected to SnapDeploy once (the connector returns the link if it isn't).

Tools

ScopeTools
readlist_apps get_status get_logs get_deployments check_quota list_repos detect_env_vars
deploydeploy set_env start_container stop_container wake_container
managecreate_database add_domain assign_always_on

Scopes nest (read ⊂ deploy ⊂ manage); the server enforces them before any tool runs. There is no delete tool, and the server refuses deletes, subscription cancellations and password changes for every token — those need a person signed in to the dashboard or the mobile app.

Safety model

  • Nothing destructive, ever. Even an agent that escalates to a raw API call with the same token gets 403 INTERACTIVE_SESSION_REQUIRED.
  • Secrets never reach the model. Environment-variable values come back as (set) and credentials are masked — on the server, not just in this connector.
  • Scoped, expiring, revocable tokens with their own rate limit. Revoke on the API Keys page and every request returns 401 from that moment.
  • Retry-safe deploys. Identical requests inside ten minutes return the original deployment instead of starting another build.
  • Plan limits are relayed, not retried. 402/429 replies carry SnapDeploy's own message and upgrade link, and the assistant is told not to retry.

Environment variables

VariableRequiredMeaning
SNAPDEPLOY_API_KEYyesScoped token (sd_pat_…) or legacy API key
SNAPDEPLOY_READ_ONLYno1 exposes only the read tools
SNAPDEPLOY_BASE_URLnoDefaults to https://snapdeploy.dev

Links

MIT © AAR Labs