AgentXM

SHIP

mcp remote · streamable-http · v0.24.0 · source: crawl

https://mcp.letsship.ai/mcp

https://github.com/letsship/mcp

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

AgentXM badge

Works

100

Verified Oct 31, 2026 · p50 513 ms · p95 690 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'ai.letsship/ship'
tools_listed15pass74 tools
schema_complete15pass68 of 74 tools have a description and a typed schema
latency_p5010passp50 513 ms
latency_p955passp95 690 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (74)

NameDescriptionSchema
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` (Startyped
get_projectFetch a single project by its UUID. Returns 404 if the project is not in the caller's org.typed
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. Requiretyped
healthzReturns the upstream API status, environment, and version.typed
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.typed
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). `atyped
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 wortyped
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 petyped
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 thatyped
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 dropstyped
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 otherwisetyped
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 outtyped
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 baltyped
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 thtyped
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, typed
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 conntyped
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 mergesincomplete
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' wtyped
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='reviewertyped
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 promincomplete
get_agents_overrideRead the per-issue agents/baseBranch override record for one mission, or null when unset.typed
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, overridingtyped
clear_agents_overrideDelete the per-issue agents/baseBranch override — the mission resolves from ship.yml again.typed
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 mistyped
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, cotyped
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,typed
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.typed
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 resulttyped
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_rtyped
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 typed
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 atyped
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 itstyped
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.typed
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_projtyped
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).typed
unarchive_missionShow an archived mission in list_missions and on the board again. Requires the missions:write scope and the config:write capability.typed
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: giveincomplete
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.typed
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 atttyped
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 typed
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 schedutyped
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 dayOfMotyped
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 crtyped
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 thtyped
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 whtyped
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)typed
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 reposincomplete
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 tincomplete
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.typed
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 servertyped
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 returtyped
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, typed
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 gatetyped
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 waitstyped
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 agtyped
list_sandbox_templatesList the org's sandboxes (definitions agents start in), with each one's active version, size and latest build status.typed
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 typed
list_sandbox_startersReady-made sandbox definitions (Python, Java, Go, Rust, Ruby) to create a sandbox from.typed
list_sandbox_template_versionsEvery saved version of a sandbox, newest first, with the active one marked and each one's latest build.typed
get_sandbox_build_logA page of a build's log after sequence number `after`. Call again with after = nextAfter until done is true.typed
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 incomplete
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.typed
build_sandbox_templateBuild the sandbox's active version, or return the build already running for it.typed
list_sandbox_registriesThe org's private package registries sandboxes install from: host, auth scheme, username. Never the secret.typed
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.typed
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 defaultSandboxTemplateIdtyped
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 ttyped
list_environmentsList per-mission preview environments for the caller's accessible projects. Returns id, issueId, projectId, prNumber, workerName, and lifecycle status.typed
get_environmentFetch one preview environment's registry row (status, worker name, timestamps).typed
destroy_environmentRequest teardown of a preview environment (its deployed Worker(s) + every provisioned datastore). Enqueues to the orchestrator; requires project write capability.typed
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 typed
get_artifactFetch one artifact's metadata + a long-lived signed serving url (open it to view the screenshot/video).typed
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-atttyped
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 retyped

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/ai-letsship-ship.svg)](https://app.agent-xm.com/a/ai-letsship-ship)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.