SHIP
ai.letsship/shipVersion 0.24.0Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.
Status
Responds339 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:30 UTC
- Latency
- 339 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.letsship.ai/mcpResponds339 msNo sign-in
Claude Code
claude mcp add --transport http ship https://mcp.letsship.ai/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: ship
Remote MCP server URL: https://mcp.letsship.ai/mcpCursor
{
"mcpServers": {
"ship": {
"url": "https://mcp.letsship.ai/mcp"
}
}
}VS Code
code --add-mcp '{"name":"ship","type":"http","url":"https://mcp.letsship.ai/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
100 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
activate_sandbox_template_versionMake a version the one missions use from their next dispatch. It is rebuilt only if its snapshot is gone; the response says which. | No | No | Yes | No |
add_site_domainAdd a custom domain to a hosted site. It starts as pending, and the answer gives two DNS records: a TXT record that proves control of the domain, and a CNAME record that sends its traffic to SHIP. The domain goes live after SHIP finds the TXT record and the certificate is active. Needs a paid plan. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the config:write capability. | No | No | No | No |
answer_qa_checkpointA mission waits at the QA checkpoint (get_mission shows pauseSource 'qa-unverifiable') when QA could not check some acceptance criteria, so no code change can move it. A person checks those criteria another way, then answers. 'accept' counts QA as passed, 'reject' ends the mission as failed, and 'rerun' runs QA again on the same commit. Send only the decision the person made. Answers 409 when the mission does not wait at the QA checkpoint. Requires the missions:write scope. | Yes | No | Yes | Yes |
approve_mission_ceilingA mission that reached its credit limit pauses until a member lets it continue. This raises the mission's limit by one step and runs the stage that stopped again, so it spends credits: ask the person first. Returns the new limit. Answers 409 when the mission is not at its limit. Requires the missions:run scope. | No | No | No | Yes |
archive_missionHide a finished mission from list_missions and the board. Nothing else changes: unarchive_mission shows it again. Requires the missions:write scope and the config:write capability (an owner or admin). | No | No | Yes | No |
bind_mcp_serverCreate or update the binding for a server the repository declares. roles is the full set of pipeline roles that may use it (reviewer and qa only ever receive read-only tools, and cannot use a server that runs inside the sandbox). transport: 'remote' (the gateway proxies to the server's URL), 'isolate' (the gateway runs the server's npm package in isolation, for a command that needs a secret) or 'local' (the command runs inside the sandbox, no credential). Omit transport and remoteUrl on an update to keep the server the binding is pinned to, with its credential (a roles, tools or credential edit); set them only to bind or re-point the server. Requires the config:write capability. | Yes | No | Yes | No |
build_sandbox_templateBuild the sandbox's active version, or return the build already running for it. | No | No | No | No |
cancel_project_transferStop the transfer of a project's repository before the project uses the new repository. The project keeps SHIP's copy, and SHIP writes nothing more to the person's repository. Only an owner of the workspace can do this. | Yes | No | Yes | No |
clear_agents_overrideDelete the per-issue agents/baseBranch override — the mission resolves from ship.yml again. | Yes | No | Yes | No |
create_missionCreate the tracker issue AND start the run in one call, for work that has no issue yet. Pass entryStartAt='builder' with an entryPlan to hand over a plan you already wrote; pass entryStartAt='reviewer'/'qa' with entryPrNumber to hand over an existing build — in which case title may be omitted and the pull request's own title names the mission. For the first mission of a SHIP Sites project, pass starter (website, blog, docs or waitlist) and site, the shared form, in place of title and description: SHIP writes the issue, or a mission with no issue on a project SHIP made with Start from scratch, and holds the site address. Read list_site_starters first. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the missions:run token scope. | No | No | No | Yes |
create_scheduled_taskCreate a recurring agent mission. Firing it — on schedule, or immediately via run_scheduled_task — creates an ordinary tracker issue assigned to the agent, which drives a normal pipeline run: a scheduled task is a stored mission request, not a new execution mode. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the config:write capability. | No | No | No | No |
create_siteCreate a SHIP-hosted site for a project and hold its address, https://<slug>.<sites domain>. The kind of the site comes from the template. Each project can hold one site, and the plan of the organization sets how many sites it can hold. A refused slug or a full plan comes back with the reason. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the config:write capability. | No | No | No | No |
decline_missionClose the mission's open pull request on GitHub without merging it; the mission becomes declined, and no call here reopens it. Requires the missions:write scope. | Yes | No | Yes | Yes |
delete_sandbox_registryDelete the stored credential of a private registry (an id from list_sandbox_registries). A sandbox build that installs from that host then gets no credential. Requires the connectors:write scope and the config:write capability. | Yes | No | Yes | No |
delete_sandbox_templateDelete a sandbox with all its versions and builds. Answers 409 while an agent or a project's default sandbox uses it: point those at another sandbox first (update_project with defaultSandboxTemplateId). Missions that run in it now finish. Requires the agents:write scope and the config:write capability. | Yes | No | Yes | No |
delete_scheduled_taskDelete a scheduled task and its run history, which no call can bring back. Missions it already started continue. Setting enabled to false stops new runs and keeps the task and its history. Requires the scheduled-tasks:write scope and the config:write capability. | Yes | No | Yes | No |
delete_siteDelete a SHIP-hosted site. A moment later it serves no more pages, and until then its status reads 'deleting' until then. Its address stays held, so nobody else can take it. Requires the config:write capability. | Yes | No | Yes | No |
destroy_environmentRequest teardown of a preview environment (its deployed Worker(s) + every provisioned datastore). Enqueues to the orchestrator; requires project write capability. | Yes | No | Yes | Yes |
dismiss_noticeClose a notice for the person this token acts for, as the console's close button does. Only a notice with dismissible: true can be closed (a low balance). It stays closed while its id lasts: a low balance that a top-up ends and a later spend brings back has a new id and shows again. Critical notices cannot be closed. | No | No | Yes | No |
get_agent_runFetch one agent run: its run record, metric series (CPU/mem/disk over time), and the agent session summaries (role, outcome, cost, sessionId). sessions lists every session of the run's role on the mission; runSessionId names this run's own, so read its log and cost from that one. | No | Yes | Yes | No |
get_agent_run_logsFetch a session's log content from one agent run. part=session is the agent stream-json (reasoning + tool calls); part=system is the container/runner stdout (clone, dependency install, validation gate, git, callback); part=prompt is the assembled input prompt. The role and sessionId are fields of the agent run's own record. A log longer than 40,000 characters returns its end, from a whole line, with a note. | No | Yes | Yes | No |
get_agents_overrideRead the per-issue agents/baseBranch override record for one mission, or null when unset. | No | Yes | Yes | No |
get_artifactFetch one artifact's metadata + a long-lived signed serving url (open it to view the screenshot/video). | No | Yes | Yes | No |
get_billingRead the workspace's credit balance by source and expiry, whether a new mission would start now, the per-mission credit ceiling, the project allowance and recent usage. Check it before dispatching work. | No | Yes | Yes | No |
get_environmentFetch one preview environment's registry row (status, worker name, timestamps). | No | Yes | Yes | No |
get_missionFetch one mission. view='summary' (the default, small enough to poll) returns its summary (activity, stage, review/check/test state, PR, paused and pauseSource, cost), its agent runs (sandboxId, role, status, harness, model, cost) and proofRunSandboxId (pass it to list_artifacts as sandboxId for the proof). view='full' adds its stages, events, stats and the plan/review/QA outcomes. pauseSource 'checkpoint:<role>' means a checkpoint holds it: resume_mission approves that stage. pauseSource 'qa-unverifiable' means QA could not check some acceptance criteria: answer_qa_checkpoint answers it. For a mission that needs attention, summary.escalation says whether an error or a platform judgement stopped it and summary.escalationCause holds the whole error. Requires the missions:read scope. | No | Yes | Yes | No |
get_noticesRead what needs attention in the workspace, critical first: a tracker connection its vendor no longer accepts (missions cannot start or report back until someone reconnects it), or credits running out. Each notice has a stable id and kind, a message and, when the caller can act, an action URL to hand to a person. A notice the caller dismissed is left out. Check it before dispatching work. | No | Yes | Yes | No |
get_projectFetch a single project by its UUID. Returns 404 if the project is not in the caller's org. | No | Yes | Yes | No |
get_project_transferRead the transfer of a project's repository to the person's GitHub account: its state, what the person does next, where the repository goes, and when SHIP deletes its archived copy. This tool only reads: SHIP moves the transfer on by itself. The result gives the next step in action: choose_target means the person makes an empty repository on their own GitHub account, installs SHIP's GitHub App on it, and you call transfer_project_repository again with that connection's connectorId and the repository as owner/name. wait means SHIP copies and checks the repository: read the transfer with get_project_transfer after pollAfterSeconds. | No | Yes | Yes | No |
get_sandbox_build_logA page of a build's log after sequence number `after`. Call again with after = nextAfter until done is true. | No | Yes | Yes | No |
get_sandbox_capacityHow many agents the org's missions are running at once against its limit (null while the org is unclassified), which missions wait for an agent slot and why, and whether every slot on the platform is taken. Read from the platform's once-a-minute capacity check. | No | Yes | Yes | No |
get_scheduled_taskFetch one scheduled task by id: its project, name, prompt, triggers (schedule), labels, template key, skip-if-previous-open setting, enabled state, and next/last run times. An id outside the caller's accessible projects returns not found. For what each fire produced, use list_scheduled_task_runs. | No | Yes | Yes | No |
get_setup_progressRead what the workspace has set up with SHIP so far, as the console's setup checklist shows it: up to 13 milestones in three groups, taken in order (get started, make it yours, make it autonomous). `activeGroup` names the group to work on now, and each group carries its own count. Each milestone says whether it is reached and, when a console page takes it and the caller's role can, the page that does it. `next` names the first milestone not reached yet. Use it to suggest the next step to a person. If they say they will not finish setup, ask why and record it with report_setup_blocker. | No | Yes | Yes | No |
get_siteFetch one hosted site by id: its project, address, template, status, the end of a suspension, the badge rule, its live deploy and its newest deploy. For the deploy history, use list_site_deploys. For page views, use get_site_usage. | No | Yes | Yes | No |
get_site_database_exportRead the status of a site database export: running, ready, failed or expired. While it runs, the call waits up to about 15 seconds for the file. An export that nobody reads for a minute stops, so call this again after pollAfterSeconds. The file is not part of the result. When the status is ready, download it with `ship sites export-db <SITE_ID> --export <EXPORT_ID>`, or from GET /v1/sites/{siteId}/database/exports/{exportId}/file. | No | Yes | Yes | No |
get_site_usageRead the page views of a hosted site for each UTC day, oldest first, with the monthly cap of the plan if it sets one, and the page views of the current month. | No | Yes | Yes | No |
healthzReturns the upstream API status, environment, and version. | No | Yes | Yes | No |
inspect_missionFetch the typed platform-inspection report for a mission, by its issue id. Returns per-section KV/D1/R2 state: task state, retry reason, dispatch error, latest review + QA verdicts, run index, per-attempt provenance, running sandboxes, and session-log heads. Requires the inspect:read scope. | No | Yes | Yes | No |
list_agent_runsList the agent runs, live and finished, in the caller's accessible projects, newest first. Each run is one agent in its own sandbox. Returns id (the run's sandbox id), issueId, role, harness, status, instance type, and latest CPU/memory/disk metrics. When more runs match, nextCursor is set: pass it back as cursor, with the same filters, for the next page. | No | Yes | Yes | No |
list_artifactsList proof-of-work artifacts (QA screenshots/video/traces) for the caller's accessible projects. Each row carries kind, content type, caption, the acceptance criterion it proves, the sandboxId of the agent run that produced it, and a long-lived signed serving url. Filter by issueId to get one ticket's evidence: the artifacts of every run, superseded QA attempts included, up to limit; a note says when more exist. For the mission's proof of work specifically, read proofRunSandboxId from GET /v1/missions/{id} and pass it as sandboxId. | No | Yes | Yes | No |
list_billing_ledgerList where the workspace's credits went, newest first: one entry per mission (its start, each further 3 agent-hours, and messages charged before messages became free), per grant, per adjustment and per expiry. Pass nextCursor back as cursor for the next page. Owners and admins only. | No | Yes | Yes | No |
list_brand_presetsList the six preset looks of a site: the colors, the fonts and the shape of the mark of each one. Pass an id as site.brand.presetId with the brand source preset. With set kits, list only the three brand kits that the site form offers a founder. | No | Yes | Yes | No |
list_credit_offersList what SHIP sells: the credit packs (credits, the price in US dollars before tax, which checkout adds for the buyer's location, and the price per credit), the monthly plans under `team.plans` (Starter and Scale: each its credits a month, monthly price, price per credit, which credits added on top also cost, and agents at once), the range of credits a workspace on a plan can add at once, Enterprise under `enterprise` (the minimum yearly credit commitment, the highest and lowest price per credit, and the agents at once at the minimum; contracts are sold by SHIP, not through checkout), what Free and the packs allow (`limits`), the trial size, and site hosting under `sitesHosting` (the price a month for each site without a monthly plan, or null where hosting is not on sale). The same catalog the pricing page shows. | No | Yes | Yes | No |
list_environmentsList per-mission preview environments for the caller's accessible projects. Returns id, issueId, projectId, prNumber, workerName, and lifecycle status. | No | Yes | Yes | No |
list_mcp_bindingsEvery MCP server binding across the projects you can see in your org: project, server, transport, status, enabled roles, how it authenticates, and the NAMES of the credential fields set (never values). Use it to find where a credential is used; use list_mcp_servers for one project's full detail. | No | Yes | Yes | No |
list_mcp_serversThe MCP servers a project's repository declares in its MCP file (.mcp.json by default), each with its binding: enabled roles, transport, status, approved tools, per-role effective tool counts (null when the server runs inside the sandbox and the role gets every tool it exposes), and the NAMES of the credential fields set (never values). Also reports whether the file could be read (configStatus). | No | Yes | Yes | No |
list_missionsList missions in the caller's accessible projects, newest activity first, with total for paging. Each has issueId, title, activity (what it does now), pipelineProgress, review/check/test state, PR, cost and paused. Archived missions are left out. Requires the missions:read scope. | No | Yes | Yes | No |
list_orgsList every organization on the platform with its owner email, member count, and pending invite status. Requires platform-admin (cross_org) access. Cursor-paginated (default page size 50) — feed the response's nextCursor back as the cursor input to reach the next page; a null nextCursor means there are no more pages. | No | Yes | Yes | No |
list_projectsList the projects accessible to the calling principal. Returns id, slug, name, status, createdAt for each. An empty list means the workspace is not set up yet: no mission can run until the person connects GitHub and a model key and creates a project in the SHIP console. Call get_setup_progress and give the person the console page of its next step. | No | Yes | Yes | No |
list_sandbox_registriesThe org's private package registries sandboxes install from: host, auth scheme, username. Never the secret. | No | Yes | Yes | No |
list_sandbox_startersReady-made sandbox definitions (Python, Java, Go, Rust, Ruby) to create a sandbox from. | No | Yes | Yes | No |
list_sandbox_template_versionsEvery saved version of a sandbox, newest first, with the active one marked and each one's latest build. | No | Yes | Yes | No |
list_sandbox_templatesList the org's sandboxes (definitions agents start in), with each one's active version, size and latest build status. | No | Yes | Yes | No |
list_scheduled_task_runsRun history for one scheduled task, each row's status (dispatching/dispatched/skipped/failed) and, once its issue exists, the joined mission progress/cost. A 'dispatched' status means the issue was created and the mission started — never that the work succeeded; read the joined mission state for that. Newest first; when older runs exist, pass nextCursor back as cursor for the next page. | No | Yes | Yes | No |
list_scheduled_task_templatesRead-only gallery of curated scheduled task templates — a prepared prompt plus a suggested cadence. A template is content, not a code path: pass its key as templateKey on create_scheduled_task for attribution, or copy its prompt/schedule into a hand-written scheduled task. | No | Yes | Yes | No |
list_scheduled_tasksList recurring agent missions (scheduled tasks) across the caller's accessible projects — schedule, enabled state, and next/last fire time for each. Pass projectId for the tasks of one project. | No | Yes | Yes | No |
list_site_database_exportsList the exports of a site's database from the last seven days, newest first, with the status of each. Use it to find an export that runs already. | No | Yes | Yes | No |
list_site_deploysList the production deploys of a site, newest first: the commit, the status, and for a deploy that did not go live, its cause and what to do. When older deploys exist, pass nextCursor back as cursor. | No | Yes | Yes | No |
list_site_domainsList the custom domains of a hosted site, oldest first: the status (pending, active, failed or removing), the cause when a domain is not live, and the TXT and CNAME records to add at the DNS provider of the domain. The answer also gives how many domains one site can have. | No | Yes | Yes | No |
list_site_startersList the first mission of each site kind (website, blog, docs): the title of its issue and its acceptance criteria, with placeholders for the facts of the form. It also gives the brand rights text and its version, the logo limits, the types of website with their questions, and the languages a site can be in. Start a starter with create_mission, starter and site. | No | Yes | Yes | No |
list_site_templatesList the templates that a SHIP-hosted site starts from: website, blog and docs. Each one names its public repository. Pass a template id as templateId to create_site. | No | Yes | Yes | No |
list_site_waitlistList the addresses that the waitlist block of a site took, newest first: the address, the page of the form and the time. Only a site that SHIP made with Start from scratch has a waitlist, and the list is empty until a page with the block is published. When more addresses exist, pass nextCursor back as cursor. The addresses are personal data: the call needs the site-waitlist:read scope and an owner or an admin of the workspace, and you use the addresses only for what the user asks. | No | Yes | Yes | No |
list_sitesList the sites that SHIP hosts for the organization, newest first: the address, the template, the status and the live deploy of each. A suspension whose end is in the past reads as active. When more sites exist, pass nextCursor back as cursor. | No | Yes | Yes | No |
mark_setup_stepMark a step of the setup checklist completed or skipped for the person this token acts for, as the console's Mark as complete and Skip controls do; open removes the mark. Give step for one milestone, or group to mark every open step of that group (the console's Skip all). A marked step counts as done on that person's checklist and its status says how; reached stays false until SHIP sees the step done. Returns the checklist as it now stands. A token that acts for no person is refused. | No | No | Yes | No |
merge_missionMerge the mission's open pull request on GitHub with the repository's own merge method; the mission then becomes done, and the merge cannot be undone from here. When the branch is out of date with its base, answers 202 with status 'updating_branch' and a message: SHIP updates the branch and merges once CI passes, with no further call. Answers 409 with the reason for any other blocker (missing reviews, failing checks, another branch protection). On a merge conflict SHIP starts the builder to fix it and merges once the mission is ready again, with no further call. Requires the missions:write scope. | Yes | No | Yes | Yes |
pause_missionHold a mission before its next stage. The stage that runs now finishes; no agent is stopped. Use resume_mission to continue. Requires the missions:write scope and a role that can control missions. | No | No | Yes | No |
publish_starter_sitePublish the first version of a site from a brand kit, with no mission and no credits (SHIP-540 ST.5). Only for a project SHIP made with Start from scratch. SHIP writes the kit, the site's address and pages made from the facts of the form into the repository, and that change deploys the site. Send the same site form as create_mission's starter, with brand.source preset. A brand from a website or a logo needs create_mission instead. A second call for the same site answers with the published site. Read get_site for liveDeployId: it is set once the site is live. | No | No | No | Yes |
refresh_mcp_server_toolsSnapshot the bound server's current tools (with their readOnlyHint / destructiveHint annotations) for approval. Approvals of tools that no longer exist are dropped. The binding must be ready; a server inside the sandbox has no gateway tool list. Requires config:write. | Yes | No | Yes | Yes |
remove_site_domainRemove a custom domain from a hosted site. A moment later the domain serves no more pages and SHIP deletes its certificate; until then its status reads 'removing'. Requires the config:write capability. | Yes | No | Yes | No |
remove_site_waitlist_entryRemove one address from the waitlist of a site that SHIP made, for example when a visitor asks to be deleted. Give the address as email. Add entryId from list_site_waitlist to remove that entry only while it still holds the address. When nothing matches, the call fails with site_waitlist_entry_not_found and nothing changes. The address leaves the live list at once. The database's recovery history keeps it for up to 30 days, then it is gone, and SHIP does not restore single addresses. The call needs the site-waitlist:write scope and an owner or an admin of the workspace, and the audit log records each removal. | Yes | No | No | No |
report_setup_blockerRecord why the person this token acts for will not finish setting up SHIP, in their words: for example no repository yet, no wish to set up model keys or credits, or no time now. Call it only after the person said why. Ask them when get_setup_progress shows setup is not done and they say they will stop. Do not guess a reason. Each call is a new report. A token that acts for no person is refused. | No | No | No | No |
request_more_creditsAsk for more credits for the workspace, saying what they are for. Any member may ask. The answer says who has the request: SHIP for a sponsored or Enterprise workspace, its owners and admins otherwise. A message sent while a request is open joins it. | No | No | No | Yes |
resume_missionContinue a paused mission. When a checkpoint holds it (get_mission shows pauseSource 'checkpoint:<role>'), this approves that stage's result and starts the next stage. To ask for changes to the result instead, use send_mission_instruction. Requires the missions:write scope. | No | No | No | Yes |
retry_first_site_wordsAfter SHIP publishes a starter site from the founder's answers, a text model writes the words of the page and an image model makes the photo at the top, and SHIP adds them in a second commit. When that failed (firstSiteWords.state is failed on get_site), this runs it once more. A job has three runs in all. The answer is the job's new state; follow it with get_site. Requires the config:write capability. | Yes | No | No | No |
retry_site_publishBuild the newest commit of the site's default branch again and publish it, as a push does. It runs only when the newest publish of the site failed for a cause that a new try can fix; for any other cause the refusal names the cause code (a mission's founder view gives the request that fixes it). The new deploy shows in list_site_deploys a moment later. Pass the same idempotencyKey on a retry to publish once; without one, each call is a new request. Requires the config:write capability. | Yes | No | No | No |
rollback_sitePublish the build of an earlier deploy that went live, as a new deploy, in place of what the site shows now. A later push to the default branch replaces it. Pass the same idempotencyKey on a retry to publish it once. Requires the config:write capability. | Yes | No | Yes | No |
run_scheduled_taskFire a scheduled task immediately, bypassing both its schedule and the skip-if-previous-open guard — an explicit run always creates a new issue even while a prior fire's mission is still open. Requires the pipeline:control capability and, for a token caller, the missions:run scope — the same authorization starting a mission by hand requires, because it is the same act. | No | No | No | Yes |
save_sandbox_registryStore (or replace) the credential for a registry host. The platform attaches it to sandbox requests for that host only; it never enters a sandbox and is never returned. | Yes | No | Yes | No |
save_sandbox_templateCreate a sandbox (omit templateId) or change one. A definition is Dockerfile steps on the platform base (RUN, ENV, ARG, WORKDIR, USER; no FROM). A changed definition or size becomes a new version and is built at once; the response carries that build. Refusals name the line or the size bound. | No | No | No | No |
send_mission_instructionTell a mission what to change. Use kind='follow_up' (the default) to ask for a change: the instruction reaches the agents AND dispatches the builder against the mission's open pull request, overriding cached review and QA verdicts. Use kind='note' to record context for whatever runs next without starting any work. A restart is a different thing: it re-evaluates an unchanged pull request against its cached verdicts, and so changes nothing. Returns a receipt saying what was recorded and what it will cause. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the missions:write token scope. | No | No | No | Yes |
set_agents_overridePatch one role's harness/model/effort/prompt for a single mission, layered over ship.yml per-field (a role or field this call omits keeps resolving from ship.yml — SHIP-337). Use promptContent or promptPath(+promptRef) to run an ephemeral prompt experiment (spec D9) without committing to the target repo. Read-modify-write: this call is merged onto the previously stored override record (via get_agents_override), so a prior set for a DIFFERENT role — or a different field on this same role, e.g. an earlier harness pin — survives; the underlying PUT is a full-record replace and would otherwise silently drop it. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. | Yes | No | Yes | No |
set_mcp_config_pathPoint the project at the repository file that declares its MCP servers, e.g. .cursor/mcp.json or .vscode/mcp.json. null restores the default (.mcp.json). The file is read, never edited. When the repository's ship.yml sets mcp.config, that wins and this call is refused (409); list_mcp_servers reports which one applies as configPathSource. Requires the config:write capability. | No | No | Yes | No |
set_mission_auto_mergeSet whether SHIP merges this mission's pull request by itself once the checks, the review and the test pass. The setting is for this mission only and replaces the project's auto-merge for it; get_project shows the project's. While it is on, SHIP merges without asking again. Requires the missions:write scope. | Yes | No | Yes | Yes |
set_mission_dispositionRecord a person's reason for how a mission ended, which the delivery statistics use: product (real work, judged on its merits), probe (a test on purpose), superseded (another mission replaced it: give supersededBy) or takeover (a person finished the work outside SHIP); null clears it. Set it only with the person's answer, never from your own guess. Requires the missions:write scope and the config:write capability. | Yes | No | Yes | No |
start_credit_checkoutOpens a payment page and returns its URL. Nothing is charged until the buyer pays on that page. It sells one credit pack, a monthly plan (offer team, with teamPlan starter or scale, a subscription that renews until cancelled), or extra credits for a workspace already on a plan (offer team_credits, for quantity credits at that plan's own price per credit, paid once, expiring with the plan month). Only a workspace on a plan can use team_credits. Only owners and admins can open a page. The server refuses the request while startNow is false, and the same idempotencyKey returns the same page. | Yes | No | No | Yes |
start_mcp_server_oauthBegin the OAuth consent for a server bound as remote. Returns an authorizeUrl that a HUMAN must open in a browser signed in to the SHIP console as the same user this token acts for; the provider returns to the console, which stores the credential. The link is single-use and expires (expiresAt). An agent cannot complete the consent itself. Requires config:write. | No | No | No | Yes |
start_missionHand a mission off to the AI agent team. Omit startAt for the default full run (planner first); pass startAt='builder' with a plan to skip straight to coding; pass startAt='reviewer' or startAt='qa' with an existing prNumber to hand off an existing build. Requires the missions:run token scope. | No | No | No | Yes |
start_site_database_exportStart an export of the production database of a site that SHIP made with Start from scratch: one SQL file with the schema and every row. The call waits up to about 15 seconds. While the status is running, get_site_database_export reads it until it is ready, with pollAfterSeconds between two reads. One export runs at a time for each site. A start within ten minutes of a ready export answers that export, and a site gets 6 new exports in each hour. The file is not part of the result. When the status is ready, download it with `ship sites export-db <SITE_ID> --export <EXPORT_ID>`, or from GET /v1/sites/{siteId}/database/exports/{exportId}/file. The file holds every row of the site, the email addresses of its waitlist too: the call needs the site-database:export scope and an owner or an admin of the workspace. | No | No | No | No |
stop_agent_runStop the agent in one run before it finishes. Its work in progress is lost, and the run's status becomes stopped a few seconds later. Needs an org admin and the sandboxes:stop scope. This stops one agent run, not the mission: to stop the whole mission, use POST /v1/missions/{issueId}/stop. | Yes | No | Yes | No |
stop_missionHard-stop a mission: every agent run of it stops and its work in progress is lost. The pull request stays open, and start_mission starts the mission again. To stop one agent run only, use stop_agent_run. Requires the missions:write scope. | Yes | No | Yes | No |
transfer_project_repositoryMove the repository that SHIP made for a project with Start from scratch into the person's own empty GitHub repository, or name that repository for a transfer that waits on it. Only the repository moves. The hosted site, its waitlist, its database and SHIP's models, paid in credits, stay. SHIP archives its own copy and deletes it after a grace period. Only an owner of the workspace can do this, and never while missions or site publishes of the project run. The result gives the next step in action: choose_target means the person makes an empty repository on their own GitHub account, installs SHIP's GitHub App on it, and you call transfer_project_repository again with that connection's connectorId and the repository as owner/name. wait means SHIP copies and checks the repository: read the transfer with get_project_transfer after pollAfterSeconds. After the project uses the new repository, the transfer cannot be cancelled. | Yes | No | Yes | Yes |
unarchive_missionShow an archived mission in list_missions and on the board again. Requires the missions:write scope and the config:write capability. | No | No | Yes | No |
unbind_mcp_serverDelete a binding and its stored credential: no role receives the server from its next run. The repository's MCP file is not changed, so the server can be bound again. Requires config:write. | Yes | No | Yes | No |
update_projectChange the settings of one project; a field you leave out keeps its value. status paused or archived stops new missions in the project, and active starts them again. autoMerge sets whether SHIP merges a ready pull request by itself. defaultSandboxTemplateId sets the sandbox the agents start in (null for the platform base). repoFullName, linearTeamKey and jiraProjectId connect the project to another repository, Linear team or Jira project through the organization's existing connections. tracker moves the project to another tracker: linear with linearTeamKey, jira with jiraConnectorId and jiraProjectId, github-issues on its repository, or none; it is refused while a mission of the project runs. Change only what a person asked for. Answers the project as it now stands. Requires the projects:admin scope and the config:write capability. | Yes | No | Yes | Yes |
update_scheduled_taskPatch a scheduled task's name, prompt, schedule, skip-guard, or enabled state — only the fields passed are changed. To change the schedule, set interval/time/timezone together (plus weekday or dayOfMonth as the interval requires). This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the config:write capability. | Yes | No | Yes | No |
update_siteSet the "Built with SHIP" badge rule of a hosted site. With badge true, SHIP refuses a production deploy whose pages do not show the badge. With badge false, the site config decides. The change applies from the next production deploy. A plan that keeps the badge on refuses badge false, and the refusal says what to buy. Requires the config:write capability. | No | No | Yes | No |
update_team_subscriptionChange the workspace's monthly plan subscription: plan switches between starter and scale from the next renewal on (nothing is charged or refunded for the current month; passing the current plan drops a waiting switch), or cancelAtPeriodEnd true ends it when the month already paid for ends, false resumes it before then. Pass at least one. Owners and admins only. The answer is the subscription as it now stands, with any waiting switch under nextPlan. | Yes | No | Yes | Yes |
verify_site_domainAsk SHIP to check the DNS records of a custom domain now, rather than at the next hourly check. The check runs a moment after the call; read the result with list_site_domains. Requires the config:write capability. | No | No | Yes | No |
watch_agent_runWait on one agent run and follow what its agent does, instead of polling get_agent_run. The call returns when the run ends, when its mission moves to another stage, or after maxSeconds. While it waits, each agent event (a thought, a tool call, a plan update, an error) is sent as a progress notification when the request has a progress token. The result has the status of the run, the stage of its mission, ended, the reason it returned, the last 20 events and a cursor. When the run is still running, call it again with since set to the cursor. A run that already ended returns at once. If your client ends a call after 60 seconds, set maxSeconds below that. | No | Yes | Yes | No |
whoamiReturns the caller's identity, org, role, role-derived RBAC capabilities, and token scopes. Use this to check whether the current token may perform an action (e.g. config:write) before attempting it. | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Oct 12, 2026
- Updated
- Oct 12, 2026
- Categories (suggested)
- Project managementDeveloper toolsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared