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)的客户端。
说一句 "把这个仓库部署到 SnapDeploy",就能得到一个实时 URL。构建、日志、环境 变量、托管数据库和自定义域名——无需离开聊天界面。
设置
- 在 snapdeploy.dev 登录,打开 API Keys 并创建一个
具有
deploy权限范围的令牌(页面会生成下面的代码片段,并已填入你的令牌)。 - 将服务器添加到你的客户端:
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 插件(令牌存储在安全存储中,而非配置文件):
/plugin marketplace add AAR-Labs/snapdeploy-mcp
/plugin install snapdeploy@snapdeploy
重启会话;snapdeploy 工具随即出现。你的仓库必须托管在 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);服务器在任何工具运行前强制执行这些权限。
没有删除工具,服务器会拒绝所有令牌的删除、订阅取消和
密码更改操作——这些需要登录仪表板或
移动应用的人员来完成。
预构建镜像。 deploy 从已连接的 GitHub 仓库构建;没有镜像工具。要运行公共 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
安全模型
- 绝无破坏性操作。 即使代理使用相同令牌升级为原始 API 调用,也会收到
403 INTERACTIVE_SESSION_REQUIRED。 - 机密信息永远不会到达模型。 环境变量值以
(set)形式返回, 凭据会被屏蔽——这是在服务器端完成的,而不仅仅是在此连接器中。 - 有范围、会过期、可撤销的令牌,带有独立的速率限制。在 API Keys 页面撤销后,从那一刻起每个请求都会返回 401。
- 可重试安全的部署。 十分钟内的相同请求会返回原始 部署,而不会启动新的构建。
- 套餐限制会被转发,不会重试。 402/429 响应携带 SnapDeploy 自己的消息 和升级链接,并告知助手不要重试。
环境变量
| 变量 | 必填 | 含义 |
|---|---|---|
SNAPDEPLOY_API_KEY | 是 | 有范围的令牌(sd_pat_…)或旧版 API 密钥 |
SNAPDEPLOY_READ_ONLY | 否 | 1 仅暴露只读工具 |
SNAPDEPLOY_BASE_URL | 否 | 默认为 https://snapdeploy.dev |
链接
- 指南:Claude Code · Cursor · Codex / Gemini CLI · Lovable 导出
- 参考:snapdeploy.dev/docs/mcp · API
- 设计文档:为什么能部署的代理绝不能能删除
MIT © AAR Labs