Skip to main content
Glama

Server Details

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

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
letsship/mcp
GitHub Stars
0

TDQS

Score is being calculated.

Available Tools

71 tools
activate_sandbox_template_versionRoll a sandbox back (or forward) to a version
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionIdYesVersion id (stv_...)
templateIdYesSandbox id (sbt_...)
approve_mission_ceilingLet a mission continue past its credit limitInspect

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. Requires the missions:run scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
projectIdYesProject id the mission belongs to (get_mission's summary.projectId)
archive_missionArchive a mission
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
bind_mcp_serverBind an MCP server
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rolesYesEvery role that may use the server ([] disables it)
projectIdYesProject id, e.g. from list_projects
remoteUrlNoA fixed https URL: a hosted endpoint for a command server, or an override for a URL server
transportNo
credentialNoWrite-only credential the gateway attaches; agents never receive it. Omit to keep the stored one. OAuth credentials are not set here: bind as remote with kind 'none', then start_mcp_server_oauth.
serverNameYesServer name as the repository's MCP file declares it (see list_mcp_servers)
approvedToolsNoThe approved subset of the tool snapshot (refresh_mcp_server_tools first). Omit to keep it.
build_sandbox_templateBuild a sandbox nowInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesSandbox id (sbt_...)
clear_agents_overrideClear a mission's agents-override
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-353 or WEB-42
projectIdYesProject id the mission belongs to
create_missionCreate a missionInspect

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 may be omitted and the pull request's own title names the mission. This tool calls the SHIP API, documented at https://letsship.ai/docs/api. Requires the missions:run token scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoIssue title. Omit ONLY with entryPrNumber — the pull request's own title is then used
agentsNoPer-role harness/model override for THIS mission only; overrides ship.yml without changing it
labelsNoTracker labels to apply
entryPlanNoHand-off plan markdown, for entryStartAt='builder'
projectIdYesProject id the mission belongs to
descriptionNoIssue body; acceptance criteria written here are parsed as they would be on any issue
entryStartAtNoPipeline stage to enter at; omit for the default full run starting at the planner
entryPrNumberNoExisting open PR number, required for entryStartAt='reviewer' or 'qa'
create_scheduled_taskCreate a scheduled taskInspect

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 the SHIP API, documented at https://letsship.ai/docs/api. Requires the config:write capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesScheduled task name, shown in the console and used in the issue title
timeYes24-hour wall-clock time in `timezone`, e.g. '09:00'.
labelsNoTracker label names put on every issue this scheduled task files (default none). The label must ALREADY exist in the project's tracker team — the platform attaches labels but cannot create them, so a name the workspace does not have is dropped.
promptYesBecomes the created issue's description verbatim on every fire
enabledNoWhether the schedule is armed (default true)
weekdayNoDay of week — required when interval is 'weekly'.
intervalYesFire cadence. 'weekly' requires weekday; 'monthly' requires dayOfMonth.
timezoneYesIANA timezone id, e.g. 'Europe/Amsterdam'.
projectIdYesProject id the scheduled task belongs to
dayOfMonthNoDay of month, 1-28 — required when interval is 'monthly' (capped at 28 so every month has the day).
templateKeyNoAttribution only, when authored from a template — see list_scheduled_task_templates
skipIfPreviousOpenNoSkip a scheduled fire while the previous fire's mission is still open (default true — the guardrail is opt-out, not opt-in)
decline_missionDecline a mission's pull request
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
delete_sandbox_registryRemove a private registry credential
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
registryIdYesRegistry credential id, from list_sandbox_registries
delete_sandbox_templateDelete a sandbox
DestructiveIdempotent
Inspect

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 config:write capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesSandbox id (sbt_...)
delete_scheduled_taskDelete a scheduled task
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduledTaskIdYesScheduled task id to delete
destroy_environmentDestroy a preview environment
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesEnvironment id to tear down
dismiss_noticeDismiss a workspace notice
Idempotent
Inspect

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 again. Critical notices cannot be closed.

ParametersJSON Schema
NameRequiredDescriptionDefault
noticeIdYesThe notice's id from get_notices, e.g. credits_low:<grant>
get_agent_runGet agent run detail
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxIdYesAgent run id: the run's sandbox id, from list_agent_runs
get_agent_run_logsGet agent run logs
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
partNoWhich log stream to readsession
roleYesAgent role: planner | builder | reviewer | qa
sandboxIdYesAgent run id: the run's sandbox id
sessionIdYesSession id from get_agent_run's sessions list
get_agents_overrideRead a mission's agents-override
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-353 or WEB-42
projectIdYesProject id the mission belongs to
get_artifactGet artifact
Read-onlyIdempotent
Inspect

Fetch one artifact's metadata + a long-lived signed serving url (open it to view the screenshot/video).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesArtifact id (from list_artifacts)

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
kindYes
roleYes
captionYes
issueIdYes
createdAtYes
criterionYes
expiresAtYes
projectIdYes
sandboxIdYes
sessionIdYes
sizeBytesYes
contentTypeYes
traceViewerUrlYes
criterionPassedYes
get_billingGet workspace credits
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

get_environmentGet preview environment detail
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesEnvironment id (from list_environments)

Output Schema

ParametersJSON Schema
NameRequiredDescription
environmentYes
get_missionGet mission detail
Read-onlyIdempotent
Inspect

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 as sandboxId for the proof). view='full' adds its stages, events, stats and the plan/review/QA outcomes. pauseSource 'checkpoint:' means a checkpoint holds it: resume_mission approves that stage. Requires the missions:read scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNosummary (default) for the state, runs and proof run; full for every stage, event and outcomesummary
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
orgSlugNoNarrow an issue id to one org
projectIdNoNarrow an issue id that two projects share
get_noticesGet workspace notices
Read-onlyIdempotent
Inspect

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, an action URL to hand to a person. A notice the caller dismissed is left out. Check it before dispatching work.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

get_projectGet project
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject UUID

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
slugYes
orgIdYes
statusYes
scmRepoYes
trackerYes
scmOwnerYes
autoMergeYes
createdAtYes
issueCodeYes
trackerTeamIdYes
llmConnectorIdYes
scmConnectorIdYes
trackerProjectIdYes
trackerConnectorIdYes
missingConnectorKindsNo
defaultSandboxTemplateIdYes
get_sandbox_build_logRead a sandbox build's log
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoReturn chunks after this sequence number (default 0)
buildIdYesBuild id (tbd_...)
templateIdYesSandbox id (sbt_...)
get_sandbox_capacityRead how many agents are running
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
orgIdNoRequired only for a caller in several orgs
get_scheduled_taskGet scheduled task
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduledTaskIdYesScheduled task id, e.g. from list_scheduled_tasks
get_setup_progressGet setup progress
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextYes
orgIdYes
groupsYes
guidesYes
completeYes
totalCountYes
activeGroupYes
firstMissionYes
reachedCountYes
activeGroupProgressYes
healthzAPI health probe
Read-onlyIdempotent
Inspect

Returns the upstream API status, environment, and version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

inspect_missionInspect mission
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-199 or WEB-42
orgSlugNoNarrow an ambiguous issue code to one org
sectionsNoComma-separated section filter (default all): taskState,retryReason,provenance,…
projectIdNoScope to a specific project id
list_agent_runsList agent runs
Read-onlyIdempotent
Inspect

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, nextCursor is set: pass it back as cursor, with the same filters, for the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoOnly the runs of this agent role
limitNoMax results (default 50). Narrow with projectId, issueId, role or status before raising it.
cursorNonextCursor from the previous page; omit for the newest runs
statusNoFilter by how the run stands: running, completed (finished), stopped (ended on purpose before it finished), failed, or stale (closed without a report)
issueIdNoOnly the runs of this mission, by its issue id, e.g. SHIP-412
projectIdNoFilter to one project id

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
nextCursorYes
list_artifactsList artifacts
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50). Narrow with issueId or sandboxId before raising it.
issueIdNoFilter to one issue (e.g. SHIP-133)
projectIdNoFilter to one project id
sandboxIdNoFilter to ONE agent run's artifacts (e.g. the mission's proofRunSandboxId)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
nextCursorYes
list_billing_ledgerList workspace credit ledger
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoEntries per page, 1-100 (default 50).
cursorNonextCursor from the previous page; omit for the newest entries.
list_credit_offersList credit packs, the monthly plans and Enterprise
Read-onlyIdempotent
Inspect

List what SHIP sells: the credit packs (credits, the tax-inclusive price in US dollars 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), plus the trial size. The same catalog the pricing page shows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_environmentsList preview environments
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50). Narrow with issueId, projectId or status before raising it.
statusNoFilter by lifecycle status
issueIdNoFilter to one issue id
projectIdNoFilter to one project id

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
nextCursorYes
list_mcp_bindingsList the org's MCP bindings
Read-onlyIdempotent
Inspect

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 project's full detail.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_mcp_serversList a project's MCP servers
Read-onlyIdempotent
Inspect

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), and the NAMES of the credential fields set (never values). Also reports whether the file could be read (configStatus).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id, e.g. from list_projects
list_missionsList missions
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (default 25). Narrow with projectId, activity or search before raising it.
offsetNoRows to skip, for the next page
searchNoMatch the issue id, title, owner or repository
activityNoFilter by what the mission does now
projectIdNoFilter to one project id
list_orgsList every org (cross-tenant)
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-100 (API default 50)
cursorNoOpaque page cursor, echoed back as nextCursor by a prior call
list_projectsList projects
Read-onlyIdempotent
Inspect

List the projects accessible to the calling principal. Returns id, slug, name, status, createdAt for each.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
cursorNoOpaque pagination cursor from a previous call

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
nextCursorYes
list_sandbox_registriesList private registries
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_sandbox_startersList sandbox starters
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_sandbox_templatesList custom sandboxes
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_sandbox_template_versionsList a sandbox's versions
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesSandbox id (sbt_...)
list_scheduled_task_runsList a scheduled task's run history
Read-onlyIdempotent
Inspect

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 mission state for that. Newest first; when older runs exist, pass nextCursor back as cursor for the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRuns per page, 1-200 (default 50)
cursorNonextCursor from the previous page; omit for the newest runs
scheduledTaskIdYesScheduled task id
list_scheduled_tasksList scheduled tasks
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoOnly the scheduled tasks of this project
list_scheduled_task_templatesList scheduled task templates
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

merge_missionMerge a mission's pull request
DestructiveIdempotent
Inspect

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. Answers 409 with the reason when the pull request cannot merge. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
pause_missionPause a mission
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
refresh_mcp_server_toolsRefresh an MCP server's tool list
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id, e.g. from list_projects
serverNameYesServer name as the repository's MCP file declares it (see list_mcp_servers)
request_more_creditsAsk for more creditsInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesWhat the credits are for.
resume_missionResume a missionInspect

Continue a paused mission. When a checkpoint holds it (get_mission shows pauseSource 'checkpoint:'), 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
run_scheduled_taskRun a scheduled task nowInspect

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 scope — the same authorization starting a mission by hand requires, because it is the same act.

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduledTaskIdYesScheduled task id to fire
save_sandbox_registryStore a private registry credential
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesRegistry host or URL, e.g. npm.pkg.github.com
schemeYes
secretYesToken or password
usernameNoRequired for basic
save_sandbox_templateCreate or update a sandboxInspect

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 the size bound.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoRequired when creating
sizeNoA tier, or { vcpu, memoryMib, diskMb } within 1-4 vCPU, >=3072 MiB per vCPU, <=12288 MiB, 8000-20000 MB
starterIdNoCreate from a starter's definition and size
dockerfileNo
templateIdNoSandbox id (sbt_...)
send_mission_instructionSend a follow-up instruction to a missionInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesWhat the agents should do. Travels verbatim into the prompt
kindNofollow_up (default) dispatches the builder; note records context and dispatches nothing
issueIdYesIssue id the mission is tracked under, e.g. SHIP-244 or GH-1280
set_agents_overrideSet a per-issue agents-override for one role
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesThe role this override entry patches
sizeNoContainer size for this role on this mission
modelNo
effortNo
harnessNo
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-353 or WEB-42
sandboxNoSandbox name or id this role starts in for this mission (beats ship.yml and the project default)
rejectOnNoReview rejection threshold — only meaningful on the reviewer role
projectIdYesProject id the mission belongs to
promptRefNoGit ref for promptPath — only meaningful alongside promptPath.
baseBranchNoOverride the pipeline's fork/target branch for this mission
checkpointNoPause the pipeline after this role's stage completes
promptModeNoHow this prompt relates to the repo's own .ship/agents/<role>.md (or ship.yml-pointed) layer. replace (default) makes this the role's only role-prompt layer; extend resolves the repo's layer first and appends this content after it, as a separately attributed span. Only meaningful with promptContent or promptPath. NOTE: the merge is per FIELD, and prompt is one field — a later call that sets a new promptContent/promptPath without repeating promptMode replaces the whole stored prompt, reverting to replace.
promptPathNoRepo-relative path to an L2 prompt file. Without promptRef this is the SHIP-347 pointer form (resolved at the pinned base branch); with promptRef it's a path+ref experiment resolved at that ref.
promptContentNoInline prompt-experiment body, capped at 30,000 characters. Mutually exclusive with promptPath.
set_mcp_config_pathSet a project's MCP file path
Idempotent
Inspect

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); list_mcp_servers reports which one applies as configPathSource. Requires the config:write capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id, e.g. from list_projects
configPathYesRepository-relative path, or null
set_mission_auto_mergeTurn auto-merge on or off for one mission
DestructiveIdempotent
Inspect

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. Requires the missions:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue merges the pull request once it is ready; false leaves the merge to a person
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
set_mission_dispositionRecord why a mission ended
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
dispositionYesproduct, probe, superseded or takeover; null clears a disposition set by mistake
supersededByNoThe issue id of the mission that replaced this one, for disposition superseded only
start_credit_checkoutStart buying credits or a monthly plan
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
offerYesA pack, team or team_credits, from list_credit_offers.
quantityNoCredits for team_credits, within the range list_credit_offers gives; omit for a pack or a plan.
startNowYesRecords the buyer's own consent to start the credits at once, during the withdrawal period, against this text: "Start my credits now, so they can be used during the 14-day withdrawal period. If I withdraw, I pay for the credits I used; I lose the right to withdraw once all the credits I am buying are used." The server refuses the request while it is false.
teamPlanNoThe plan to start, for offer team only: starter or scale, from list_credit_offers.
idempotencyKeyNoReuse on retry to get the same page back.
start_mcp_server_oauthStart OAuth for a remote MCP serverInspect

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 expires (expiresAt). An agent cannot complete the consent itself. Requires config:write.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoRequested scope; defaults to the server's own hint
returnToNoConsole path to land on after consent, e.g. /projects/<id>
projectIdYesProject id, e.g. from list_projects
serverNameYesServer name as the repository's MCP file declares it (see list_mcp_servers)
start_missionStart a missionInspect

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:run token scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
planNoHand-off plan markdown, for startAt='builder'
agentsNoPer-role harness/model override for THIS mission only; overrides ship.yml without changing it
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-244 or WEB-42
startAtNoPipeline stage to enter at; omit for the default full run starting at the planner
prNumberNoExisting open PR number, required for startAt='reviewer' or startAt='qa'
projectIdYesProject id the mission belongs to
stop_agent_runStop an agent run
DestructiveIdempotent
Inspect

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/{issueId}/stop.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxIdYesAgent run id: the run's sandbox id, from list_agent_runs
stop_missionStop a mission
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
unarchive_missionUnarchive a mission
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe mission's issue id: a Linear key or a GitHub Issues id, e.g. SHIP-412
unbind_mcp_serverRemove an MCP server binding
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id, e.g. from list_projects
serverNameYesServer name as the repository's MCP file declares it (see list_mcp_servers)
update_projectChange a project's settings
DestructiveIdempotent
Inspect

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 agents start in (null for the platform base). repoFullName and linearTeamKey connect the project to another repository or Linear team through the organization's existing connections. Change only what a person asked for. Answers the project as it now stands. Requires the projects:admin scope and the config:write capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoA new name
statusNoactive, paused or archived
autoMergeNotrue merges a ready pull request without a person
issueCodeNoA GitHub Issues project's issue id prefix, 2-5 characters; only new ids use it
projectIdYesProject id, from list_projects
repoFullNameNoowner/repo of the repository to connect, through the organization's GitHub connection
linearTeamKeyNoThe key of the Linear team to connect, e.g. ENG
defaultSandboxTemplateIdNoA sandbox id (sbt_...) from list_sandbox_templates, or null for the platform base
update_scheduled_taskUpdate a scheduled task
DestructiveIdempotent
Inspect

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 https://letsship.ai/docs/api. Requires the config:write capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
timeNo24-hour wall-clock time in `timezone`, e.g. '09:00'.
labelsNoTracker label names put on every issue this scheduled task files (replaces the list; [] clears it). The label must ALREADY exist in the project's tracker team — the platform attaches labels but cannot create them, so a name the workspace does not have is dropped.
promptNoReplaces the issue description verbatim
enabledNoSet false to pause the schedule without deleting the scheduled task
weekdayNoDay of week — required when interval is 'weekly'.
intervalNoFire cadence. 'weekly' requires weekday; 'monthly' requires dayOfMonth.
timezoneNoIANA timezone id, e.g. 'Europe/Amsterdam'.
dayOfMonthNoDay of month, 1-28 — required when interval is 'monthly' (capped at 28 so every month has the day).
scheduledTaskIdYesScheduled task id to update
skipIfPreviousOpenNo
update_team_subscriptionChange the monthly plan subscription
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
planNoThe plan from the next renewal on: starter or scale, from list_credit_offers.
cancelAtPeriodEndNotrue ends the subscription at the end of the paid month; false resumes it.
watch_agent_runWatch an agent run
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoThe cursor from an earlier result. Only the events after it are sent
sandboxIdYesAgent run id: the run's sandbox id, from list_agent_runs or get_mission
maxSecondsNoThe longest time to wait, in seconds (default 300, at most 600)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoWhat to do next, when the run is still running
endedYesTrue when the run is no longer running
stageYesThe stage of the run's mission when the call returned
cursorYesThe id of the last event. Give it as since to continue
eventsYesThe last 20 events at most, oldest first
reasonYesWhy the call returned: the run ended, its mission moved to another stage, or maxSeconds passed
statusYesThe status of the run when the call returned
sandboxIdYes
whoamiIdentify the calling principal
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
roleYes
orgIdYes
scopesYes
userIdYes
projectIdYesThe project this credential is bound to, or null when it is org-wide. A bound token can read and act only on that project, and on nothing org-wide - so a caller can see the boundary it works within rather than discovering it through a 404.
capabilitiesYes
principalTypeYesagent: a self-registered agent nobody has claimed yet. It has no user, org, role or scopes, and reaches only /me and /scopes until a person claims it.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 71 tool updates
    • First observedactivate_sandbox_template_version
    • First observedapprove_mission_ceiling
    • First observedarchive_mission
    • First observedbind_mcp_server
    • First observedbuild_sandbox_template
    • First observedclear_agents_override
    • First observedcreate_mission
    • First observedcreate_scheduled_task
    • First observeddecline_mission
    • First observeddelete_sandbox_registry
    • First observeddelete_sandbox_template
    • First observeddelete_scheduled_task
    • First observeddestroy_environment
    • First observeddismiss_notice
    • First observedget_agent_run
    • First observedget_agent_run_logs
    • First observedget_agents_override
    • First observedget_artifact
    • First observedget_billing
    • First observedget_environment
    • First observedget_mission
    • First observedget_notices
    • First observedget_project
    • First observedget_sandbox_build_log
    • First observedget_sandbox_capacity
    • First observedget_scheduled_task
    • First observedget_setup_progress
    • First observedhealthz
    • First observedinspect_mission
    • First observedlist_agent_runs
    • First observedlist_artifacts
    • First observedlist_billing_ledger
    • First observedlist_credit_offers
    • First observedlist_environments
    • First observedlist_mcp_bindings
    • First observedlist_mcp_servers
    • First observedlist_missions
    • First observedlist_orgs
    • First observedlist_projects
    • First observedlist_sandbox_registries
    • First observedlist_sandbox_starters
    • First observedlist_sandbox_template_versions
    • First observedlist_sandbox_templates
    • First observedlist_scheduled_task_runs
    • First observedlist_scheduled_task_templates
    • First observedlist_scheduled_tasks
    • First observedmerge_mission
    • First observedpause_mission
    • First observedrefresh_mcp_server_tools
    • First observedrequest_more_credits
    • First observedresume_mission
    • First observedrun_scheduled_task
    • First observedsave_sandbox_registry
    • First observedsave_sandbox_template
    • First observedsend_mission_instruction
    • First observedset_agents_override
    • First observedset_mcp_config_path
    • First observedset_mission_auto_merge
    • First observedset_mission_disposition
    • First observedstart_credit_checkout
    • First observedstart_mcp_server_oauth
    • First observedstart_mission
    • First observedstop_agent_run
    • First observedstop_mission
    • First observedunarchive_mission
    • First observedunbind_mcp_server
    • First observedupdate_project
    • First observedupdate_scheduled_task
    • First observedupdate_team_subscription
    • First observedwatch_agent_run
    • First observedwhoami

Publisher details

Operator
SHIP
Operator website
https://letsship.ai
Vendor relationship
First-party
Restrictions
Unknown

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.