ShipDapp

io.github.yash1tsPublished by GitHub account yash1tsv0.2.0Updated Oct 24, 2026

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

The publisher's own server: ship.page

VerifiedSSEWeb executableCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

ShipDapp lets an assistant build, deploy, update and monitor containerized web apps on Akash devnet through a hosted remote MCP endpoint.

What you can do
  • Authenticate with a ShipDapp API key, or a Sign-In-With-Solana challenge and wallet signature
  • Browse deployment templates and inspect their required and optional files
  • Dry-run validate an upload, then build a container image or deploy source files
  • Deploy an existing public Docker/OCI image without a build
  • Update, list, list or unlist on the public App Store, and permanently close apps
  • Poll app and build status, read build logs and runtime stdout/stderr, and check deployment quotas
When to use it
Useful when you want an assistant to ship a small static or containerized web app to Akash devnet end to end, or to redeploy and debug an app already hosted there, without wiring up cloud tooling yourself.
Requirements
A remote SSE endpoint at api.shipdapp.com. A ShipDapp API key (shipdapp_sk_ prefix) sent as an Authorization bearer header; without a key, a Solana wallet is needed to sign a challenge message. Network access to the service and to Akash devnet.
Before you install
The Authorization bearer token is a secret and grants control of your deployments. Deploy, update, listing and close actions change live state, and close_app is irreversible for that deployment. Uploaded source files and images are sent to ShipDapp and Akash providers. Quotas limit active apps and hourly builds/deploys.

Installation

In SourceWeft

  1. Open ShipDapp in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via SSE. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.yash1ts%2Fshipdapp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

README

This repository has no README.

Tools

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.

ParameterswalletAddressrequired

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.

ParameterssignaturerequiredwalletAddressrequired

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

Takes no parameters.

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

ParametersappNameincludeFiles

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.

ParametersappNametemplateIdrequired

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.

ParametersfilesrequiredappNamemergeModetemplateIdrequired

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.

ParametersfilesrequiredappNamerequiredmergeModetemplateIdrequiredbuildCommandstartCommanddockerfileContent

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.

ParametersbuildIdrequireddeploymentId

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.

ParametersportfilesrequiredappNamerequiredimageUrlmergeModetemplateIdrequireddescriptionlistOnStorebuildCommandstartCommanddockerfileContent

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.

ParametersportappNamerequiredimageUrldescriptiondockerImagerequiredlistOnStorestartCommand

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.

ParametersportfilesappNamemergeModetemplateIddescriptiondockerImagebuildCommanddeploymentIdrequiredstartCommand

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.

ParametersdeploymentIdrequired

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.

Takes no parameters.

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.

ParameterslistedrequireddeploymentIdrequired

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.

ParametersdeploymentIdrequired

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.

ParameterstailtypebuildIddeploymentIdrequired

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.

Other Ship integrations