SnapDeploy

io.github.somdip-2310由 GitHub 帳號 somdip-2310 發布v0.1.2更新於 Oct 30, 2026

Deploy and manage SnapDeploy apps from your AI assistant: builds, logs, env vars, add-ons, domains.

發布方自己的服務:deploy.social

概覽

AI 產生的概覽

SnapDeploy MCP 讓助理把 GitHub 儲存庫部署到 SnapDeploy 主機,並查看日誌、設定環境變數、新增資料庫與網域。

可以做什麼
  • 列出容器並檢視狀態、URL、連接埠、資源與配額
  • 讀取執行階段日誌與部署歷史,包含失敗建置的建置日誌尾段
  • 掃描 GitHub 儲存庫所需的环境變數並設定或取代
  • 部署已連結的儲存庫、部署本機 Docker 映像檔封裝,以及啟動、停止或喚醒容器
  • 建立受管資料庫附加元件、綁定自訂網域、指派 Always-On 訂閱
適用情境
適合在 SnapDeploy 上代管應用、希望直接在聊天用戶端部署、重新部署或排查問題而不開控制台的場合。例如發佈 Lovable、Bolt 或 v0 匯出專案、查明建置失敗原因,或隨程式碼一起管理環境變數與網域。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js。需要 SnapDeploy 帳號,並在 SNAPDEPLOY_API_KEY 提供具作用域的 API 權杖;儲存庫需放在 GitHub 且已與 SnapDeploy 連結一次。可選 SNAPDEPLOY_READ_ONLY=1 僅開放唯讀工具。需要能連線至 SnapDeploy 的網路。
安裝前請注意
SNAPDEPLOY_API_KEY 中的權杖可部署並變更基礎設施,應限定作用域並在用完後撤銷。工具會寫入與變更狀態:部署、環境變數、容器啟停、資料庫附加元件與網域。資料庫附加元件需已購買訂閱,方案額度可能阻擋部署。密鑰值不會回傳,只回傳名稱。此連接器無法刪除任何資源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SnapDeploy,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@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

bash
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:

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

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

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 deploy_image 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.

Prebuilt images. deploy builds from a connected GitHub repository; there is no image tool. To run a public Docker image, use the dashboard (Deploy Your Application → Docker Image) or POST /api/mobile/containers with name, image, imageTag, port, then POST /api/mobile/containers/{containerId}/start. Images must come from Docker Hub, ghcr.io, quay.io or public.ecr.aws, publish linux/amd64 or linux/arm64, and pass SnapDeploy's create-time policy check; a 400 Security policy violation is final and must not be retried. Full rules: https://snapdeploy.dev/llms-full.md

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

來源:README.md,提交 20a8c29

工具

16

list_apps

List the user's SnapDeploy containers with status and URL, plus plan, deploy-limit and free-hours state. Start here to find container ids/names.

無需輸入參數。

get_status

Full status of one container (by name or id): state, URL, port, detected technology, resources. Env-var VALUES are never returned — names only.

輸入參數container必填

get_logs

Recent RUNTIME logs of a container (CloudWatch, up to 1000 lines). For BUILD logs of a deployment use get_deployments with a deployment_id.

輸入參數linescontainer必填

get_deployments

Deployment history of a container, or one deployment in detail (status, error code/message and build-log tail — use this to diagnose a failed build).

輸入參數limitcontainerdeployment_id

check_quota

Can the user deploy and run apps right now? Merges the deploy limit (5 per rolling 12h — ONLY for accounts without an Always-On/Sprint entitlement; failed attempts count) and the free-hours cap (containers refuse to start at 402 when exhausted), plus any unassigned Always-On subscriptions.

無需輸入參數。

list_repos

List (or search) the GitHub repositories connected to this SnapDeploy account. If GitHub is not connected yet, returns the connect link for the user.

輸入參數pagequery

detect_env_vars

Scan a repo for the environment variables it needs (import.meta.env / process.env usage, .env.example, Dockerfile). For known keys (Supabase etc.) the reply says where the user finds the value. Do this BEFORE the first deploy of a Lovable/Bolt/v0 export. Rows with source DOCKERFILE and instruction ENV already have their value inside the image and follow the repository on every push: do NOT pass them to deploy's env unless the user wants a different value. Rows with instruction ARG are build arguments with a Dockerfile default; same rule.

輸入參數repo必填branch

deploy

Deploy a connected GitHub repo to SnapDeploy: creates the container if needed, links the repo, builds, and waits for the result. Reply includes the live URL or, on failure, the error and build-log tail. On accounts without an Always-On/Sprint entitlement this uses one unit of the deploy limit (failed attempts count); Always-On accounts are uncapped.

輸入參數envportrepo必填sizebranchcontainer

set_env

Set/replace a container's environment variables (rolling restart, no rebuild). Values are accepted but NEVER echoed back. Public build-time names (VITE_*, NEXT_PUBLIC_*, REACT_APP_*) only take effect in the bundle after the next deploy.

輸入參數env必填container必填

start_container

Start a stopped container. May answer 402 when free hours are exhausted — relay that message and link, do not retry.

輸入參數container必填

stop_container

Stop a running container (safe, reversible — deletion is NOT possible through this connector by design).

輸入參數container必填

wake_container

Wake a sleeping free-plan container so its URL serves again.

輸入參數container必填

create_database

Create a managed add-on: PostgreSQL, MySQL, MariaDB, MongoDB, Redis or RabbitMQ. Requires a purchased add-on subscription — without one this returns the purchase link (relay it, don't retry). Credentials are provisioned server-side and shown to the user in the SnapDeploy UI, never through this connector.

輸入參數nametype必填containerdatabase_name

add_domain

Attach a custom domain to a container. Returns the DNS records the user must create; verification then runs from the SnapDeploy UI.

輸入參數domain必填container必填

assign_always_on

Attach an UNASSIGNED Always-On subscription to a container (keeps it running 24/7 and lifts the deploy limit). Only call this after the user explicitly confirms — check_quota lists any unassigned subscriptions.

輸入參數container必填subscription_id必填

deploy_image

Deploy a Docker image from a LOCAL `docker save` file (.tar, .tar.gz or .tgz) on this machine. The file is uploaded straight to SnapDeploy's storage with a presigned URL (never through the API), loaded, pushed to the private registry and started. The image must be built for linux/arm64 (docker buildx build --platform linux/arm64); an amd64 image fails at build time with a rebuild hint. Free accounts may upload up to 2 GB; any Always-On subscription raises the cap (the platform returns its store link on 402 — relay it, do not retry). Uses one deploy-limit unit like other deploys.

輸入參數path必填portsizecontainer

版本歷史

2
  1. v0.1.2最新Oct 21, 2026
  2. v0.1.0Sep 23, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Deploy 整合