SnapDeploy MCP
官方从Claude Code、Cursor、Codex或Gemini CLI部署和管理SnapDeploy应用(AWS上的Docker容器):构建、日志、环境变量、附加组件、域名。
你可以用 SnapDeploy MCP 做什么?
- 部署 GitHub 仓库 — 让助手将仓库部署到 SnapDeploy,并通过
deploy工具获取实时 URL。 - 管理环境变量 — 指示助手为容器设置或检查环境变量,值将以
(set)形式掩码显示。 - 监控部署状态 — 请求任何 SnapDeploy 容器的实时状态、日志或部署历史。
- 控制容器生命周期 — 无需离开聊天界面,即可按需启动、停止或唤醒容器。
- 配置资源 — 直接在对话中创建托管数据库或为部署分配自定义域名。
文档
@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 set_env start_container stop_container wake_container |
manage | create_database add_domain assign_always_on |
权限范围是嵌套的(read ⊂ deploy ⊂ manage);服务器在任何工具运行前强制执行这些权限。
没有删除工具,服务器会拒绝所有令牌的删除、订阅取消和
密码更改操作——这些需要登录仪表板或
移动应用的人员来完成。
安全模型
- 绝无破坏性操作。 即使代理使用相同令牌升级为原始 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