ShipDapp

io.github.yash1ts由 GitHub 帳號 yash1ts 發布v0.2.0更新於 Oct 24, 2026

Deploy Dockerized apps to Akash devnet with ShipDapp MCP build, deploy, update, and logs tools.

發布方自己的服務:ship.page

已驗證SSE可網頁執行雲端與基礎設施開發者工具

概覽

AI 產生的概覽

ShipDapp 讓助理透過託管的遠端 MCP 端點,在 Akash devnet 上建置、部署、更新與監控容器化網頁應用程式。

可以做什麼
  • 以 ShipDapp API 金鑰驗證,或透過 Sign-In-With-Solana 挑戰訊息與錢包簽章登入
  • 瀏覽部署範本,檢視其必要與選用檔案
  • 上傳前先做試跑驗證,再建置容器映像或直接部署原始碼檔案
  • 直接部署既有的公開 Docker/OCI 映像,無需建置
  • 更新應用程式、列出應用程式、在公開 App Store 上架或下架,以及永久關閉應用程式
  • 輪詢應用程式與建置狀態,讀取建置日誌與執行時標準輸出/錯誤,並查詢部署配額
適用情境
適合讓助理把小型靜態或容器化網頁應用程式端到端發布到 Akash devnet,或對已託管於該處的應用程式重新部署與除錯,而不必自行架設雲端工具鏈。
執行需求
需要 api.shipdapp.com 上的遠端 SSE 端點。需要以 Authorization bearer 標頭傳入 ShipDapp API 金鑰(shipdapp_sk_ 前綴);若無金鑰,則需 Solana 錢包對挑戰訊息簽章。需要能連線至該服務及 Akash devnet 的網路。
安裝前請注意
Authorization bearer 權杖屬於機密,可控制你的部署。部署、更新、上架與關閉操作會改變線上狀態,close_app 對該部署不可復原。上傳的原始碼與映像會傳送給 ShipDapp 與 Akash 供應商。配額會限制使用中的應用程式數量及每小時建置/部署次數。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ShipDapp,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 SSE。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.yash1ts%2Fshipdapp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "shipdapp": {
      "type": "sse",
      "url": "https://api.shipdapp.com/api/mcp/sse",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

該儲存庫沒有 README。

工具

16

get_auth_challenge

CALL THIS FIRST before deploy/build tools ONLY if you are NOT using a ShipDapp API key in MCP client headers. Returns a Sign-In-With-Solana message for local wallet signing.

輸入參數walletAddress必填

authenticate

CALL THIS IMMEDIATELY AFTER get_auth_challenge. Submit the base58 signature of the challenge message to unlock the session. All deploy/build/status tools require authentication — do not call them until this succeeds.

輸入參數signature必填walletAddress必填

get_usage_limits

CALL THIS AFTER A GUARDRAIL BLOCK or before planning multiple deploys. Returns your wallet's deployment quotas and current usage (active apps, hourly build/deploy counts). Use to understand why deploy_app was rejected and what to do next (close_app or wait).

無需輸入參數。

list_templates

CALL THIS WHEN STARTING A NEW APP or when you need a templateId for deploy_app/build_image. Returns available templates (e.g. webapp-static = frontend SPA, framework-agnostic). Optional starter via includeFiles=true is React+Vite+Tailwind — not required. Production start uses serve -s dist in the starter. Prefer list_template_files + validate_upload before deploy_app. Upload your complete project as-is (mergeMode=strict never injects Tailwind/PostCSS).

輸入參數appNameincludeFiles

list_template_files

CALL THIS BEFORE deploy_app to see required vs optional paths. Required is minimal (package.json + index.html); component filenames are not fixed — validate_upload checks that the HTML entry's imports resolve.

輸入參數appNametemplateId必填

validate_upload

DRY-RUN before deploy_app/update_app/build_image. Checks file count, bytes, missing required paths, template-default fills, and placeholder garbage — without starting a Cloud Build. Call this when unsure the files map is complete.

輸入參數files必填appNamemergeModetemplateId必填

build_image

USE ONLY when you want to build a container image WITHOUT creating a deployment. For normal shipping, prefer deploy_app instead (build + deploy in one step). Call this if you need to verify the image builds successfully before deploying, or if you plan to deploy the image manually later. After calling, poll get_build_status until SUCCESS. Prefer validate_upload first.

輸入參數files必填appName必填mergeModetemplateId必填buildCommandstartCommanddockerfileContent

get_build_status

Optional debug tool for Cloud Build progress. Prefer polling get_app_status(deploymentId) after deploy_app/update_app — the server auto-promotes BUILDING → Akash deploy when the build succeeds. Use this when you only have a buildId (e.g. after build_image) or need build-level detail. On FAILURE, returns failureSummary and buildLogTail when available.

輸入參數buildId必填deploymentId

deploy_app

PRIMARY SOURCE DEPLOY TOOL — call when the app is built/tested locally and ready to ship. Prefer validate_upload first. Uploads files + templateId (mergeMode=strict by default: upload-as-is — never injects starter Tailwind/PostCSS/React files; requires package.json + index.html and that the HTML entry's local imports resolve). Framework-agnostic SPA. Returns uploadSummary + warnings. Next: poll get_app_status until ACTIVE and httpReady=true, then share proxyUri. Apps are unlisted by default (live URL still works); pass listOnStore=true or call set_app_listing to appear on the App Store. Omit package-lock.json. Use deploy_image for prebuilt images. See prompt deploy_app_guide.

輸入參數portfiles必填appName必填imageUrlmergeModetemplateId必填descriptionlistOnStorebuildCommandstartCommanddockerfileContent

deploy_image

CALL THIS WHEN YOU ALREADY HAVE A PUBLIC DOCKER/OCI IMAGE and want to deploy it to devnet without uploading source files or running Cloud Build. Requires dockerImage + appName. Use deploy_app instead when the agent has local source files and wants ShipDapp to build the image. Guardrails apply: max active deployments, daily limit, duplicate appName blocked, hourly deploy rate limit, cooldown. Returns deploymentId, network=devnet, dockerImage. Apps are unlisted by default; pass listOnStore=true or call set_app_listing to appear on the App Store. Next step: poll get_app_status until ACTIVE and share proxyUri.

輸入參數portappName必填imageUrldescriptiondockerImage必填listOnStorestartCommand

update_app

CALL THIS WHEN AN APP IS ALREADY DEPLOYED and you want to push new code or change config. Pass files + templateId to rebuild (same strict upload rules as deploy_app — prefer validate_upload first), OR pass dockerImage alone to redeploy an existing image. Do NOT use deploy_app for updates. Blocked while status is DEPLOYING — wait and poll get_app_status. After calling, poll until ACTIVE and httpReady=true.

輸入參數portfilesappNamemergeModetemplateIddescriptiondockerImagebuildCommanddeploymentId必填startCommand

get_app_status

PRIMARY STATUS POLL after deploy_app, update_app, or deploy_image. Poll every 10–20s until status is ACTIVE and httpReady is true (then share proxyUri), or FAILED (read lastError / buildLogTail). ACTIVE alone can still mean HTTP 503 while the process starts — wait for httpReady. On FAILED, buildLogTail may be attached automatically.

輸入參數deploymentId必填

list_apps

CALL THIS to see all your deployed apps (listed and unlisted), find a deploymentId, or check which apps are ACTIVE vs DEPLOYING. Use before update_app, set_app_listing, or close_app when you don't know the deploymentId.

無需輸入參數。

set_app_listing

CALL THIS to list or unlist an existing app on the public App Store. Unlisted apps stay reachable via proxyUri if you know the URL. Use list_apps to find deploymentId. Does not change the live deployment.

輸入參數listed必填deploymentId必填

close_app

CALL THIS WHEN PERMANENTLY SHUTTING DOWN an app — stops the Akash lease, frees resources, and marks the deployment DELETED. This is irreversible for that deploymentId. Use list_apps first if you don't know the ID. Do NOT use this for updates — use update_app instead.

輸入參數deploymentId必填

get_logs

CALL THIS WHEN SOMETHING WENT WRONG or you need to debug. type=build + buildId: after FAILURE — returns failureSummary and inline buildLogTail when Cloud Logging is available (else logUrl). type=runtime: container stdout/stderr from Akash when ACTIVE; on provider HTTP errors, returns a clear message plus lastError fallback. Runtime logs are NOT available until the deployment has an Akash lease.

輸入參數tailtypebuildIddeploymentId必填

版本歷史

1
  1. v0.2.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Ship 整合