SnapDeploy MCP

官方

從 Claude Code、Cursor、Codex 或 Gemini CLI 部署和管理 SnapDeploy 應用程式(AWS 上的 Docker 容器):建置、日誌、環境變數、附加元件、網域。

你可以用 SnapDeploy MCP 做什麼?

  • 從 GitHub 部署 — 要求部署已連接的 GitHub 儲存庫,並透過 deploy 取得即時 URL。
  • 管理環境變數 — 使用 with 和 set_env 為應用程式設定或更新環境變數,而不會暴露機密值。
  • 監控部署 — 使用 get_status、get_logs 和 get_deployments 檢查部署狀態、檢視日誌,並列出最近的部署。
  • 控制容器 — 使用 start_container、stop_container 和 wake_container 按需啟動、停止或喚醒容器。
  • 配置資源 — 使用 create_database 和 add_domain 建立受管理的資料庫,或為應用程式附加自訂網域。

文件

@snapdeploy/mcp

從你的 AI 助理部署和管理 SnapDeploy 容器—— Claude Code、Claude Desktop、Cursor、Windsurf、Codex CLI、Gemini CLI,或任何支援 Model Context Protocol(透過 stdio)的用戶端。

只要說 「把這個 repo 部署到 SnapDeploy」,就能拿到一個可用的 URL。建置、日誌、環境變數、 受管資料庫和自訂網域——都不用離開聊天視窗。

設定

  1. 在 snapdeploy.dev 登入,開啟 API Keys 並建立一個 具有 deploy 權限範圍的 token(該頁面會產生下方片段,並已填入你的 token)。
  2. 將伺服器加入你的用戶端:

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 及其他以 JSON 設定的用戶端:

{
  "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 外掛(token 儲存在安全儲存中,而非設定檔):

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

重新啟動工作階段;snapdeploy 工具就會出現。你的 repository 必須在 GitHub 上,且 GitHub 必須已連線到 SnapDeploy 一次(如果尚未連線,連接器會回傳連結)。

工具

權限範圍工具
readlist_apps get_status get_logs get_deployments check_quota list_repos detect_env_vars
deploydeploy deploy_image set_env start_container stop_container wake_container
managecreate_database add_domain assign_always_on

權限範圍是巢狀的(read ⊂ deploy ⊂ manage);伺服器在任何工具執行前都會強制檢查。 沒有刪除工具,而且伺服器會拒絕所有 token 的刪除、訂閱取消和 密碼變更——這些需要有人在儀表板或行動應用程式中登入操作。

預建映像。 deploy 從已連線的 GitHub repository 建置;沒有映像工具。若要執行公開的 Docker 映像,請使用儀表板(Deploy Your Application → Docker Image)或使用 POST /api/mobile/containers 搭配 name、image、imageTag、port,然後使用 POST /api/mobile/containers/{containerId}/start。映像必須來自 Docker Hub、ghcr.io、quay.io 或 public.ecr.aws,發布 linux/amd64 或 linux/arm64,並通過 SnapDeploy 的建立時政策檢查;400 Security policy violation 是最終結果,不得重試。完整規則:https://snapdeploy.dev/llms-full.md

安全模型

  • 絕不做任何破壞性操作。 即使代理程式使用相同 token 升級為原始 API 呼叫,也只會得到 403 INTERACTIVE_SESSION_REQUIRED。
  • 機密永遠不會到達模型。 環境變數值會以 (set) 回傳,且憑證會被遮罩——是在伺服器端,而不只是這個連接器。
  • 具範圍、會過期、可撤銷的 token,且有各自的速率限制。在 API Keys 頁面撤銷後,從那一刻起每個請求都會回傳 401。
  • 可重試安全的部署。 十分鐘內相同的請求會回傳原始部署,而不是啟動另一個建置。
  • 方案限制會轉達,不會重試。 402/429 回覆會攜帶 SnapDeploy 自己的訊息和升級連結,並告知助理不要重試。

環境變數

變數必填意義
SNAPDEPLOY_API_KEY是具範圍的 token(sd_pat_…)或舊版 API key
SNAPDEPLOY_READ_ONLY否1 只暴露讀取工具
SNAPDEPLOY_BASE_URL否預設為 https://snapdeploy.dev

連結

MIT © AAR Labs