NestDaddy

SHIP

ai.letsship/ship · v0.24.0

Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.

Connect Remote server

Terminal
claude mcp add --transport http ship https://mcp.letsship.ai/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
~/.cursor/mcp.json
{
  "mcpServers": {
    "ship": {
      "url": "https://mcp.letsship.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "ship": {
      "type": "http",
      "url": "https://mcp.letsship.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://mcp.letsship.ai/mcp

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools 80 found in our last check

  • healthz

    Returns the upstream API status, environment, and version.

  • whoami

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

  • get_setup_progress

    Read 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 coun…

  • get_billing

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

  • list_billing_ledger

    List 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 o…

  • list_credit_offers

    List 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…

  • start_credit_checkout

    Opens 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 (…

  • update_team_subscription

    Change 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 pa…

  • request_more_credits

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

  • get_notices

    Read 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,…

  • dismiss_notice

    Close 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 ag…

  • report_setup_blocker

    Record 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…

  • mark_setup_step

    Mark 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 mark…

  • list_projects

    List 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…

  • get_project

    Fetch a single project by its UUID. Returns 404 if the project is not in the caller's org.

  • update_project

    Change 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…

  • transfer_project_repository

    Move 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 cred…

  • get_project_transfer

    Read 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 act…

  • cancel_project_transfer

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

  • start_mission

    Hand 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:r…

  • create_mission

    Create 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…

  • set_agents_override

    Patch 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 comm…

  • get_agents_override

    Read the per-issue agents/baseBranch override record for one mission, or null when unset.

  • send_mission_instruction

    Tell 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…

  • clear_agents_override

    Delete the per-issue agents/baseBranch override — the mission resolves from ship.yml again.

  • list_missions

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

  • get_mission

    Fetch 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…

  • pause_mission

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

  • resume_mission

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

  • stop_mission

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

  • approve_mission_ceiling

    A 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.…

  • answer_qa_checkpoint

    A 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 missi…

  • merge_mission

    Merge 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 th…

  • decline_mission

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

  • set_mission_auto_merge

    Set 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. Requ…

  • archive_mission

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

  • unarchive_mission

    Show an archived mission in list_missions and on the board again. Requires the missions:write scope and the config:write capability.

  • set_mission_disposition

    Record 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 clea…

  • list_scheduled_tasks

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

  • list_scheduled_task_templates

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

  • get_scheduled_task

    Fetch 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_sc…

  • create_scheduled_task

    Create 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…

  • update_scheduled_task

    Patch 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 http…

  • run_scheduled_task

    Fire 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 sco…

  • list_scheduled_task_runs

    Run 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…

  • delete_scheduled_task

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

  • list_mcp_servers

    The 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),…

  • list_mcp_bindings

    Every 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 proje…

  • set_mcp_config_path

    Point 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); lis…

  • bind_mcp_server

    Create 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 s…

  • unbind_mcp_server

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

  • refresh_mcp_server_tools

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

  • start_mcp_server_oauth

    Begin 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 expi…

  • list_agent_runs

    List 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, nextCu…

  • get_agent_run

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

  • get_agent_run_logs

    Fetch 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 sessi…

  • watch_agent_run

    Wait 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…

  • stop_agent_run

    Stop 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/{iss…

  • list_sandbox_templates

    List the org's sandboxes (definitions agents start in), with each one's active version, size and latest build status.

  • get_sandbox_capacity

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

  • list_sandbox_starters

    Ready-made sandbox definitions (Python, Java, Go, Rust, Ruby) to create a sandbox from.

  • list_sandbox_template_versions

    Every saved version of a sandbox, newest first, with the active one marked and each one's latest build.

  • get_sandbox_build_log

    A page of a build's log after sequence number `after`. Call again with after = nextAfter until done is true.

  • save_sandbox_template

    Create 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 th…

  • activate_sandbox_template_version

    Make a version the one missions use from their next dispatch. It is rebuilt only if its snapshot is gone; the response says which.

  • build_sandbox_template

    Build the sandbox's active version, or return the build already running for it.

  • list_sandbox_registries

    The org's private package registries sandboxes install from: host, auth scheme, username. Never the secret.

  • save_sandbox_registry

    Store (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.

  • delete_sandbox_template

    Delete 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…

  • delete_sandbox_registry

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

  • list_environments

    List per-mission preview environments for the caller's accessible projects. Returns id, issueId, projectId, prNumber, workerName, and lifecycle status.

  • get_environment

    Fetch one preview environment's registry row (status, worker name, timestamps).

  • destroy_environment

    Request teardown of a preview environment (its deployed Worker(s) + every provisioned datastore). Enqueues to the orchestrator; requires project write capability.

  • list_site_templates

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

  • list_sites

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

  • get_site

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

  • list_site_deploys

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

  • get_site_usage

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

  • create_site

    Create 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 w…

  • update_site

    Set 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…

Headers

NameDescription
Authorization
Optional, secret
A SHIP personal access token, sent as a bearer token. Create one at https://letsship.ai/settings/tokens. Leave it out to sign in with OAuth instead.

Details

Endpointhttps://mcp.letsship.ai/mcp (Streamable HTTP)
First published12 Oct 2026
Last updated12 Oct 2026
Registry nameai.letsship/ship

More developer tools servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.