This page is for your AI agent
Paste your agent the connect command below
upd. exposes an MCP server. Add it to any MCP-capable agent, then ask the agent to deploy your project. MCP endpoint (Streamable HTTP): https://mcp.upd.live/mcp
Claude Code — one command:
claude mcp add --transport http godeploy https://mcp.upd.live/mcpGeneric MCP client — add to your mcpServers config:
{
"mcpServers": {
"godeploy": {
"type": "http",
"url": "https://mcp.upd.live/mcp"
}
}
}What is upd.?
upd. takes a project your AI agent built — a local folder or a git repo — and ships it to a live URL with a domain and SSL. Your agent calls our MCP tools to deploy and manage it.
Deploys are anonymous by default — no sign-in needed; a token is auto-minted on first deploy. Anonymous deploys are ephemeral (~3h, served on *.fly.dev). Sign in (login / claim_link) to keep them: up to 5 persistent apps.
Prepare before you ship
Before shipping, upd. can prepare a project: your agent researches it locally (it has the code + the compute), calls assess_project with the findings, and gets back either an ordered fix list to apply or a 'ready' plan. deployment_plan turns a ready assessment into a concrete plan to confirm; then you deploy. upd. never runs or unpacks your code during assessment.
Resource: godeploy_prep_guide (godeploy://prep-guide) — the agent SOP: how to detect the stack, the readiness checklist, and the exact assess_project input shape.
Tool reference
Once connected, the agent has these tools. Every deploy/list/status/redeploy/destroy tool returns the same object:
{ id, name, status, url, source, isAnon, expiresAt, createdAt }- deploy_local
- Deploy the project folder you are working in to a live URL (packs + uploads it; no git required).
When: The user says 'deploy this', 'ship it', 'put it online' while you are in their project. - deploy_git
- Deploy a PUBLIC git repository (optionally a subfolder) to a live URL.
When: The user gives you a public repo URL to deploy. - assess_project
- Send the findings YOUR agent researched locally; upd. validates them (it never sees your code) and returns either an ordered fix list or a 'ready' plan reference + a proposed power class.
When: Before deploying, to check a project is ready to ship — and again after you apply the fixes it returns. - deployment_plan
- Turn a 'ready' plan reference into a concrete plan to confirm with the user: power class, memory, ephemeral vs persistent, expected URL, and the steps that will run.
When: After assess_project returns 'ready', just before you deploy. - deployment_status
- Return one deployment's current status and live url. Poll after a deploy until status is 'deployed'.
When: You need the live URL, or to know whether a build finished. - list_deployments
- List the user's ACTIVE deployments (live + building), newest first.
When: Recovering state in a fresh session, or the user asks 'what have I deployed / which are live'. - destroy_deployment
- Permanently take one of the user's deployments down and free its slot.
When: The user says 'take it down', 'delete that app', or 'stop it'. - redeploy
- Update an existing git/repo deployment with the latest code, reusing the SAME app and url. (Upload deployments: re-run deploy_local instead.)
When: The user says 'update it', 'redeploy', or 'ship my latest changes'. - account_status
- Return { identity: anon|account, githubLogin, liveApps, maxApps, slotsRemaining, soonestExpiry }.
When: 'Am I logged in', 'how many apps can I have', or before deploying when you might be at the limit. - login
- Link this machine to a GitHub account via a browser device-code sign-in, claiming its anonymous apps into a permanent account.
When: The user says 'log me in', 'sign in to upd.', or 'claim my account'. - claim_link
- Return one link the user opens to save their anonymous (ephemeral) deploys into a permanent GitHub account.
When: The user wants to keep an anonymous project, or you see it is about to expire. - deployment_logs
- Fetch build + runtime logs for a deployment (including the build error if it failed).
When: A deploy failed or the app misbehaves and you need to debug it.