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。建置、日誌、環境變數、 受管資料庫和自訂網域——都不用離開聊天視窗。
設定
- 在 snapdeploy.dev 登入,開啟 API Keys 並建立一個
具有
deploy權限範圍的 token(該頁面會產生下方片段,並已填入你的 token)。 - 將伺服器加入你的用戶端:
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 一次(如果尚未連線,連接器會回傳連結)。
工具
| 權限範圍 | 工具 |
|---|---|
read | list_apps get_status get_logs get_deployments check_quota list_repos detect_env_vars |
deploy | deploy deploy_image set_env start_container stop_container wake_container |
manage | create_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 |
連結
- 指南:Claude Code · Cursor · Codex / Gemini CLI · Lovable exports
- 參考:snapdeploy.dev/docs/mcp · API
- 設計說明:為什麼能部署的代理程式就不能刪除
MIT © AAR Labs