mcp agent

mcp — SHIP (from the letsship/mcp skill folder)

Illustration · not a resultImage from letsship's README.mdsource ↗

The hosted SHIP MCP server.

by letsship·MIT license·★ 0 Stars on the repo·GitHub ↗

Files of mcp

letsship/main1 file
README.md
Show the full text294 lines

SHIP

SHIP MCP server

MCP Registry Transport Auth Docs Smithery

Assign Linear, Jira or GitHub issues to an AI coding agent team. Its coding agents plan and build each change, run code review and tests, and open a pull request in your GitHub repository. With this MCP server, your assistant can file missions, follow them, send instructions and read the proof of each run.

SHIP runs an agentic SDLC as a headless AI software factory. You operate the whole mission from your coding agent or AI assistant. Start it, send instructions, read its code review and test reports, and approve the pull request. A Planner, a Builder, a Reviewer and a Tester each do one stage, and your CI is a gate between them. Each role runs the coding agent and the model that you choose: Claude Code, Codex, OpenCode, Kilo Code or the pi coding agent.

Install in VS Code Install in VS Code Insiders Add to Cursor

Endpoint

https://mcp.letsship.ai/mcp

The transport is Streamable HTTP. The server is stateless, so a client can reconnect at any time and lose nothing.

Sign in

OAuth 2.1. A client that supports MCP authorization finds the sign-in automatically. If a request needs a token and has no valid token, the server answers 401 with a WWW-Authenticate header. The header points to https://mcp.letsship.ai/.well-known/oauth-protected-resource/mcp. SHIP supports dynamic client registration and client ID metadata documents, so you do not have to register a client first. You approve the sign-in in the SHIP console.

Personal access token. A client without OAuth sends Authorization: Bearer pat_.... Create a token at https://letsship.ai/settings/tokens. Bind it to one project, so that it can reach only that project.

Install

Claude Code

claude mcp add --transport http ship https://mcp.letsship.ai/mcp

Claude and ChatGPT. Add a custom connector with the URL https://mcp.letsship.ai/mcp. Sign in when the app asks.

Cursor. Use the button above, or add this to .cursor/mcp.json:

{
  "mcpServers": {
    "ship": {
      "url": "https://mcp.letsship.ai/mcp"
    }
  }
}

VS Code. Use the buttons above, or add this to .vscode/mcp.json:

{
  "servers": {
    "ship": {
      "type": "http",
      "url": "https://mcp.letsship.ai/mcp"
    }
  }
}

Codex. Add this to ~/.codex/config.toml:

[mcp_servers.ship]
url = "https://mcp.letsship.ai/mcp"

Grok. Open grok.com/connectors. Select New Connector, then Custom. Paste the URL https://mcp.letsship.ai/mcp. Then sign in.

xAI API. Pass the URL as a remote MCP tool, with a token in headers:

{
  "type": "mcp",
  "server_url": "https://mcp.letsship.ai/mcp",
  "server_label": "ship",
  "headers": {
    "Authorization": "Bearer pat_your_token_here"
  }
}

A client that supports only stdio connects through mcp-remote:

{
  "mcpServers": {
    "ship": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.letsship.ai/mcp"
      ]
    }
  }
}

With a token. Add the header to any of the HTTP entries above:

{
  "mcpServers": {
    "ship": {
      "url": "https://mcp.letsship.ai/mcp",
      "headers": {
        "Authorization": "Bearer pat_your_token_here"
      }
    }
  }
}

Tools

Each tool declares readOnlyHint, destructiveHint and openWorldHint. With these hints, your client can run a read-only tool immediately. It can also ask you before it runs a tool that removes or replaces something, or opens a payment page. The scopes of the token decide what each tool can do, and a refusal names the scope that the token does not have.

[!IMPORTANT] start_mission, create_mission and run_scheduled_task start a mission, and each mission start costs one credit. Messages to an active mission are free.

Missions
Tool Kind What it does
start_mission reaches outside SHIP Give an issue that is already in your tracker to the agent team. By default, the mission starts at the Planner. With a plan, it starts at the Builder. With an open pull request, it starts at the Reviewer or the Tester
create_mission reaches outside SHIP Create the issue and start the mission in one call, for work that has no issue yet
send_mission_instruction reaches outside SHIP Tell an active mission what to change, or record a note for the agent that runs next
inspect_mission reads The full record of a mission: its stages, verdicts, provenance and session logs
list_missions reads The missions of your projects, with what each mission does now
get_mission reads One mission: its stage, its review and test results, its pull request, its agent runs and the run with the proof. With view: "full", also its events and the outcome of each stage
pause_mission writes Hold a mission before its next stage. The stage that runs now finishes
resume_mission reaches outside SHIP Continue a paused mission. When a checkpoint holds the mission, this approves the result of that stage
stop_mission removes Stop a mission and every agent run of it. The pull request stays open
approve_mission_ceiling reaches outside SHIP Let a mission continue after it stops at its credit limit. The mission then uses more credits
merge_mission removes Merge the pull request of a mission, with the merge method of the repository. On a merge conflict, SHIP starts the Builder to fix the conflict and merges later
decline_mission removes Close the pull request of a mission without a merge
set_agents_override replaces Change the harness, model, prompt or checkpoint of one role for one mission. The override goes on top of ship.yml and does not change the file
get_agents_override reads Read the override that applies to a mission now
clear_agents_override removes Remove the override, so the mission uses the project's configuration again
set_mission_auto_merge reaches outside SHIP Turn auto-merge on or off for one mission. For that mission, the setting replaces the auto-merge of the project
archive_mission writes Hide a mission from the board and from list_missions. Only an owner or an admin can archive a mission
unarchive_mission writes Show an archived mission on the board again
set_mission_disposition writes Record why a mission ended, for example a test or work that another mission replaced, or clear the value. The delivery statistics use this value
Projects and proof
Tool Kind What it does
list_projects reads The projects that the token can reach
get_project reads The configuration and connections of one project
update_project reaches outside SHIP Change the name, status, auto-merge, issue code, default sandbox or connections of a project
list_artifacts reads The proof that a run produced, such as test traces and screenshots
get_artifact reads One artifact, with a link to open it
Scheduled tasks
Tool Kind What it does
list_scheduled_tasks reads The missions that a project runs on a schedule
get_scheduled_task reads One scheduled task, with its schedule and prompt
create_scheduled_task writes Add a mission that runs on a schedule
update_scheduled_task replaces Change the schedule or prompt of a scheduled task, or disable it
run_scheduled_task reaches outside SHIP Run a scheduled task now, outside its schedule
list_scheduled_task_runs reads What past runs did, and what they cost
list_scheduled_task_templates reads Templates that you can copy to start a scheduled task
delete_scheduled_task removes Delete a scheduled task and its run history. Missions that the task started continue
MCP servers for your agents
Tool Kind What it does
list_mcp_servers reads The servers that the MCP file of a project declares, each with its binding and status
list_mcp_bindings reads Each binding in the projects of your organization, so you can see where each credential is used
bind_mcp_server replaces Choose the agents, transport, approved tools and credential for one server
unbind_mcp_server removes Remove a binding and delete its credential
refresh_mcp_server_tools removes Read the current tool list of the server, so that you can approve tools
start_mcp_server_oauth reaches outside SHIP Get a sign-in link for a remote server, for a person to open in their browser
set_mcp_config_path writes Set a different MCP file for a project, such as .cursor/mcp.json
Agent runs
Tool Kind What it does
list_agent_runs reads Agent runs, live and finished, for one mission, one role or one status
get_agent_run reads The detail and resource use of one run
get_agent_run_logs reads What an agent did inside a run
watch_agent_run reads Wait on one run and follow its events, until the run ends or its mission moves to another stage
stop_agent_run removes Stop the agent in one run before it finishes
Preview environments
Tool Kind What it does
list_environments reads Preview environments that SHIP deployed for open pull requests
get_environment reads One preview environment, with its URL
destroy_environment removes Remove a preview environment early
Credits and notices
Tool Kind What it does
get_billing reads The credit balance, the credit limit for each mission and the recent use. Read it before you send work
list_billing_ledger reads Where the credits went, with the newest entry first
list_credit_offers reads The credit packs and the monthly plans, with their prices
start_credit_checkout reaches outside SHIP Open a payment page for a credit pack, a monthly plan or more credits on a plan, and return its URL
update_team_subscription removes Change the monthly plan from the next renewal, or cancel it at the end of the month that you paid for
request_more_credits reaches outside SHIP Ask for more credits. The answer says who has the request
get_notices reads What needs attention in the workspace, such as a tracker that you must connect again
dismiss_notice writes Close a notice that you can close, such as a low balance
Custom sandboxes
Tool Kind What it does
list_sandbox_templates reads The sandboxes of your organization, with the active version and the latest build of each
list_sandbox_starters reads Sandbox definitions for Python, Java, Go, Rust and Ruby that you can start from
save_sandbox_template writes Create a sandbox or change one. A change makes a new version and starts its build
list_sandbox_template_versions reads Each saved version of a sandbox, with the active version marked
activate_sandbox_template_version writes Make a version the one that missions use from their next run
build_sandbox_template writes Build the active version now
get_sandbox_build_log reads One page of a build log
list_sandbox_registries reads The private package registries that sandboxes install from. A secret is never returned
save_sandbox_registry replaces Store or replace the credential for a registry. The credential never enters a sandbox
get_sandbox_capacity reads How many agents your missions run at once, against the limit of your organization
delete_sandbox_template removes Delete a sandbox. The API refuses a sandbox that an agent or the default of a project uses
delete_sandbox_registry removes Remove the credential of a private registry
Platform operators
Tool Kind What it does
list_orgs reads Each organization on the platform. Only a SHIP operator token can call it
Identity
Tool Kind What it does
whoami reads The principal behind the token and the scopes of the token
get_setup_progress reads What the workspace has set up so far and the next step, as the console's setup checklist shows it
healthz reads The status, environment and version of the API

Example: file a fix and answer the review

  1. Call list_projects to get the project id.
  2. Call create_mission to file the issue and start the mission. Write the acceptance criteria as checkboxes, because the Tester uses them to test the work.
  3. The agents plan the change, build it and open a pull request. Then they wait for your CI, review the change, deploy a preview and test it. This takes tens of minutes, and your assistant does not have to wait.
  4. Call inspect_mission to read the stage and the verdicts. To disagree with a review, call send_mission_instruction with kind: "follow_up". The Builder then works on the pull request again and follows your instruction.

To send feedback, use send_mission_instruction. Do not call start_mission again, because a restart does not take a message.

Troubleshooting

What you see What to do
401 and no sign-in window Your client does not support MCP OAuth. Send a personal access token in the Authorization header.
A tool refuses with a scope name The token does not have that scope. Create a token that has the scope, or ask an owner for a role that allows it.
create_mission refuses with credits_exhausted The workspace has no credits left. get_billing shows the balance.
The tool list is empty, or each tool call gets 401 The client did not finish sign-in. Sign in again from the MCP menu of your client, or remove the server and add it again.
whoami names another project The token is bound to that project. Use a token for the project you want.

Skills for your coding agent

The SHIP skills teach a coding agent to hand work to SHIP from the terminal. To install them, see letsship/skills or run npx skills add https://letsship.ai.

Learn more

License

The files in this repository are under the MIT license. The SHIP service is under the SHIP terms.

1<p align="center"><a href="https://letsship.ai" target="_blank" rel="noopener"><img src="assets/ship.png" alt="SHIP" width="96" height="96"></a></p>
2 
3# SHIP MCP server
4 
5[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-ai.letsship%2Fship-e84826)](https://registry.modelcontextprotocol.io/v0.1/servers/ai.letsship%2Fship/versions/latest)
6[![Transport](https://img.shields.io/badge/transport-Streamable%20HTTP-0f0a07)](https://letsship.ai/docs/mcp)
7[![Auth](https://img.shields.io/badge/auth-OAuth%202.1%20%7C%20token-0f0a07)](https://letsship.ai/docs/mcp#connect-a-client)
8[![Docs](https://img.shields.io/badge/docs-letsship.ai-0f0a07)](https://letsship.ai/docs/mcp)
9[![Smithery](https://smithery.ai/badge/ship/ship)](https://smithery.ai/servers/ship/ship)
10 
11Assign Linear, Jira or GitHub issues to an AI coding agent team. Its coding agents plan and build each change, run code review and tests, and open a pull request in your GitHub repository. With this MCP server, your assistant can file missions, follow them, send instructions and read the proof of each run.
12 
13SHIP runs an agentic SDLC as a headless AI software factory. You operate the whole mission from your coding agent or AI assistant. Start it, send instructions, read its code review and test reports, and approve the pull request. A Planner, a Builder, a Reviewer and a Tester each do one stage, and your CI is a gate between them. Each role runs the coding agent and the model that you choose: Claude Code, Codex, OpenCode, Kilo Code or the pi coding agent.
14 
15[![Install in VS Code](https://img.shields.io/badge/VS%20Code-Install%20SHIP-0098FF)](https://vscode.dev/redirect/mcp/install?name=ship&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.letsship.ai%2Fmcp%22%7D)
16[![Install in VS Code Insiders](https://img.shields.io/badge/VS%20Code%20Insiders-Install%20SHIP-24bfa5)](https://insiders.vscode.dev/redirect/mcp/install?name=ship&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.letsship.ai%2Fmcp%22%7D)
17[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=ship&config=eyJ1cmwiOiJodHRwczovL21jcC5sZXRzc2hpcC5haS9tY3AifQ==)
18 
19## Endpoint
20 
21```text
22https://mcp.letsship.ai/mcp
23```
24 
25The transport is Streamable HTTP. The server is stateless, so a client can reconnect at any time and lose nothing.
26 
27## Sign in
28 
29**OAuth 2.1.** A client that supports MCP authorization finds the sign-in automatically. If a request needs a token and has no valid token, the server answers `401` with a `WWW-Authenticate` header.
30The header points to `https://mcp.letsship.ai/.well-known/oauth-protected-resource/mcp`. SHIP supports dynamic client registration and client ID metadata documents, so you do not have to register a client first. You approve the sign-in in the SHIP console.
31 
32**Personal access token.** A client without OAuth sends `Authorization: Bearer pat_...`. Create a token at https://letsship.ai/settings/tokens. Bind it to one project, so that it can reach only that project.
33 
34## Install
35 
36**Claude Code**
37 
38```bash
39claude mcp add --transport http ship https://mcp.letsship.ai/mcp
40```
41 
42**Claude and ChatGPT.** Add a custom connector with the URL `https://mcp.letsship.ai/mcp`. Sign in when the app asks.
43 
44**Cursor.** Use the button above, or add this to `.cursor/mcp.json`:
45 
46```json
47{
48 "mcpServers": {
49 "ship": {
50 "url": "https://mcp.letsship.ai/mcp"
51 }
52 }
53}
54```
55 
56**VS Code.** Use the buttons above, or add this to `.vscode/mcp.json`:
57 
58```json
59{
60 "servers": {
61 "ship": {
62 "type": "http",
63 "url": "https://mcp.letsship.ai/mcp"
64 }
65 }
66}
67```
68 
69**Codex.** Add this to `~/.codex/config.toml`:
70 
71```toml
72[mcp_servers.ship]
73url = "https://mcp.letsship.ai/mcp"
74```
75 
76**Grok.** Open grok.com/connectors. Select **New Connector**, then **Custom**. Paste the URL `https://mcp.letsship.ai/mcp`. Then sign in.
77 
78**xAI API.** Pass the URL as a remote MCP tool, with a token in `headers`:
79 
80```json
81{
82 "type": "mcp",
83 "server_url": "https://mcp.letsship.ai/mcp",
84 "server_label": "ship",
85 "headers": {
86 "Authorization": "Bearer pat_your_token_here"
87 }
88}
89```
90 
91**A client that supports only stdio** connects through `mcp-remote`:
92 
93```json
94{
95 "mcpServers": {
96 "ship": {
97 "command": "npx",
98 "args": [
99 "-y",
100 "mcp-remote",
101 "https://mcp.letsship.ai/mcp"
102 ]
103 }
104 }
105}
106```
107 
108**With a token.** Add the header to any of the HTTP entries above:
109 
110```json
111{
112 "mcpServers": {
113 "ship": {
114 "url": "https://mcp.letsship.ai/mcp",
115 "headers": {
116 "Authorization": "Bearer pat_your_token_here"
117 }
118 }
119 }
120}
121```
122 
123## Tools
124 
125Each tool declares `readOnlyHint`, `destructiveHint` and `openWorldHint`. With these hints, your client can run a read-only tool immediately. It can also ask you before it runs a tool that removes or replaces something, or opens a payment page. The scopes of the token decide what each tool can do, and a refusal names the scope that the token does not have.
126 
127> [!IMPORTANT]
128> `start_mission`, `create_mission` and `run_scheduled_task` start a mission, and each mission start costs one credit. Messages to an active mission are free.
129 
130### Missions
131 
132| Tool | Kind | What it does |
133| --- | --- | --- |
134| `start_mission` | reaches outside SHIP | Give an issue that is already in your tracker to the agent team. By default, the mission starts at the Planner. With a plan, it starts at the Builder. With an open pull request, it starts at the Reviewer or the Tester |
135| `create_mission` | reaches outside SHIP | Create the issue and start the mission in one call, for work that has no issue yet |
136| `send_mission_instruction` | reaches outside SHIP | Tell an active mission what to change, or record a note for the agent that runs next |
137| `inspect_mission` | reads | The full record of a mission: its stages, verdicts, provenance and session logs |
138| `list_missions` | reads | The missions of your projects, with what each mission does now |
139| `get_mission` | reads | One mission: its stage, its review and test results, its pull request, its agent runs and the run with the proof. With `view: "full"`, also its events and the outcome of each stage |
140| `pause_mission` | writes | Hold a mission before its next stage. The stage that runs now finishes |
141| `resume_mission` | reaches outside SHIP | Continue a paused mission. When a checkpoint holds the mission, this approves the result of that stage |
142| `stop_mission` | removes | Stop a mission and every agent run of it. The pull request stays open |
143| `approve_mission_ceiling` | reaches outside SHIP | Let a mission continue after it stops at its credit limit. The mission then uses more credits |
144| `merge_mission` | removes | Merge the pull request of a mission, with the merge method of the repository. On a merge conflict, SHIP starts the Builder to fix the conflict and merges later |
145| `decline_mission` | removes | Close the pull request of a mission without a merge |
146| `set_agents_override` | replaces | Change the harness, model, prompt or checkpoint of one role for one mission. The override goes on top of `ship.yml` and does not change the file |
147| `get_agents_override` | reads | Read the override that applies to a mission now |
148| `clear_agents_override` | removes | Remove the override, so the mission uses the project's configuration again |
149| `set_mission_auto_merge` | reaches outside SHIP | Turn auto-merge on or off for one mission. For that mission, the setting replaces the auto-merge of the project |
150| `archive_mission` | writes | Hide a mission from the board and from `list_missions`. Only an owner or an admin can archive a mission |
151| `unarchive_mission` | writes | Show an archived mission on the board again |
152| `set_mission_disposition` | writes | Record why a mission ended, for example a test or work that another mission replaced, or clear the value. The delivery statistics use this value |
153 
154### Projects and proof
155 
156| Tool | Kind | What it does |
157| --- | --- | --- |
158| `list_projects` | reads | The projects that the token can reach |
159| `get_project` | reads | The configuration and connections of one project |
160| `update_project` | reaches outside SHIP | Change the name, status, auto-merge, issue code, default sandbox or connections of a project |
161| `list_artifacts` | reads | The proof that a run produced, such as test traces and screenshots |
162| `get_artifact` | reads | One artifact, with a link to open it |
163 
164### Scheduled tasks
165 
166| Tool | Kind | What it does |
167| --- | --- | --- |
168| `list_scheduled_tasks` | reads | The missions that a project runs on a schedule |
169| `get_scheduled_task` | reads | One scheduled task, with its schedule and prompt |
170| `create_scheduled_task` | writes | Add a mission that runs on a schedule |
171| `update_scheduled_task` | replaces | Change the schedule or prompt of a scheduled task, or disable it |
172| `run_scheduled_task` | reaches outside SHIP | Run a scheduled task now, outside its schedule |
173| `list_scheduled_task_runs` | reads | What past runs did, and what they cost |
174| `list_scheduled_task_templates` | reads | Templates that you can copy to start a scheduled task |
175| `delete_scheduled_task` | removes | Delete a scheduled task and its run history. Missions that the task started continue |
176 
177### MCP servers for your agents
178 
179| Tool | Kind | What it does |
180| --- | --- | --- |
181| `list_mcp_servers` | reads | The servers that the MCP file of a project declares, each with its binding and status |
182| `list_mcp_bindings` | reads | Each binding in the projects of your organization, so you can see where each credential is used |
183| `bind_mcp_server` | replaces | Choose the agents, transport, approved tools and credential for one server |
184| `unbind_mcp_server` | removes | Remove a binding and delete its credential |
185| `refresh_mcp_server_tools` | removes | Read the current tool list of the server, so that you can approve tools |
186| `start_mcp_server_oauth` | reaches outside SHIP | Get a sign-in link for a remote server, for a person to open in their browser |
187| `set_mcp_config_path` | writes | Set a different MCP file for a project, such as `.cursor/mcp.json` |
188 
189### Agent runs
190 
191| Tool | Kind | What it does |
192| --- | --- | --- |
193| `list_agent_runs` | reads | Agent runs, live and finished, for one mission, one role or one status |
194| `get_agent_run` | reads | The detail and resource use of one run |
195| `get_agent_run_logs` | reads | What an agent did inside a run |
196| `watch_agent_run` | reads | Wait on one run and follow its events, until the run ends or its mission moves to another stage |
197| `stop_agent_run` | removes | Stop the agent in one run before it finishes |
198 
199### Preview environments
200 
201| Tool | Kind | What it does |
202| --- | --- | --- |
203| `list_environments` | reads | Preview environments that SHIP deployed for open pull requests |
204| `get_environment` | reads | One preview environment, with its URL |
205| `destroy_environment` | removes | Remove a preview environment early |
206 
207### Credits and notices
208 
209| Tool | Kind | What it does |
210| --- | --- | --- |
211| `get_billing` | reads | The credit balance, the credit limit for each mission and the recent use. Read it before you send work |
212| `list_billing_ledger` | reads | Where the credits went, with the newest entry first |
213| `list_credit_offers` | reads | The credit packs and the monthly plans, with their prices |
214| `start_credit_checkout` | reaches outside SHIP | Open a payment page for a credit pack, a monthly plan or more credits on a plan, and return its URL |
215| `update_team_subscription` | removes | Change the monthly plan from the next renewal, or cancel it at the end of the month that you paid for |
216| `request_more_credits` | reaches outside SHIP | Ask for more credits. The answer says who has the request |
217| `get_notices` | reads | What needs attention in the workspace, such as a tracker that you must connect again |
218| `dismiss_notice` | writes | Close a notice that you can close, such as a low balance |
219 
220### Custom sandboxes
221 
222| Tool | Kind | What it does |
223| --- | --- | --- |
224| `list_sandbox_templates` | reads | The sandboxes of your organization, with the active version and the latest build of each |
225| `list_sandbox_starters` | reads | Sandbox definitions for Python, Java, Go, Rust and Ruby that you can start from |
226| `save_sandbox_template` | writes | Create a sandbox or change one. A change makes a new version and starts its build |
227| `list_sandbox_template_versions` | reads | Each saved version of a sandbox, with the active version marked |
228| `activate_sandbox_template_version` | writes | Make a version the one that missions use from their next run |
229| `build_sandbox_template` | writes | Build the active version now |
230| `get_sandbox_build_log` | reads | One page of a build log |
231| `list_sandbox_registries` | reads | The private package registries that sandboxes install from. A secret is never returned |
232| `save_sandbox_registry` | replaces | Store or replace the credential for a registry. The credential never enters a sandbox |
233| `get_sandbox_capacity` | reads | How many agents your missions run at once, against the limit of your organization |
234| `delete_sandbox_template` | removes | Delete a sandbox. The API refuses a sandbox that an agent or the default of a project uses |
235| `delete_sandbox_registry` | removes | Remove the credential of a private registry |
236 
237### Platform operators
238 
239| Tool | Kind | What it does |
240| --- | --- | --- |
241| `list_orgs` | reads | Each organization on the platform. Only a SHIP operator token can call it |
242 
243### Identity
244 
245| Tool | Kind | What it does |
246| --- | --- | --- |
247| `whoami` | reads | The principal behind the token and the scopes of the token |
248| `get_setup_progress` | reads | What the workspace has set up so far and the next step, as the console's setup checklist shows it |
249| `healthz` | reads | The status, environment and version of the API |
250 
251## Example: file a fix and answer the review
252 
2531. Call `list_projects` to get the project id.
2542. Call `create_mission` to file the issue and start the mission. Write the acceptance criteria as checkboxes, because the Tester uses them to test the work.
2553. The agents plan the change, build it and open a pull request. Then they wait for your CI, review the change, deploy a preview and test it. This takes tens of minutes, and your assistant does not have to wait.
2564. Call `inspect_mission` to read the stage and the verdicts. To disagree with a review, call `send_mission_instruction` with `kind: "follow_up"`. The Builder then works on the pull request again and follows your instruction.
257 
258To send feedback, use `send_mission_instruction`. Do not call `start_mission` again, because a restart does not take a message.
259 
260## Troubleshooting
261 
262| What you see | What to do |
263| --- | --- |
264| `401` and no sign-in window | Your client does not support MCP OAuth. Send a personal access token in the `Authorization` header. |
265| A tool refuses with a scope name | The token does not have that scope. Create a token that has the scope, or ask an owner for a role that allows it. |
266| `create_mission` refuses with `credits_exhausted` | The workspace has no credits left. `get_billing` shows the balance. |
267| The tool list is empty, or each tool call gets `401` | The client did not finish sign-in. Sign in again from the MCP menu of your client, or remove the server and add it again. |
268| `whoami` names another project | The token is bound to that project. Use a token for the project you want. |
269 
270## Skills for your coding agent
271 
272The SHIP skills teach a coding agent to hand work to SHIP from the terminal. To install them, see [letsship/skills](https://github.com/letsship/skills) or run `npx skills add https://letsship.ai`.
273 
274## Learn more
275 
276- [What an agentic SDLC is, from issue to verified pull request](https://letsship.ai/blog/agentic-sdlc)
277- [What an AI software factory is, and how to build one](https://letsship.ai/blog/what-is-an-ai-software-factory)
278- [SWE-in-a-team, a coding agent benchmark of 260 missions](https://letsship.ai/blog/swe-in-a-team)
279- [Run the pi coding agent headless](https://letsship.ai/blog/run-pi-coding-agent-headless)
280- [Send a pull request that your coding agent wrote for review and test](https://letsship.ai/platform/agent-to-pr)
281 
282## Links
283 
284- Docs: https://letsship.ai/docs/mcp
285- Registry entry: `ai.letsship/ship` on https://registry.modelcontextprotocol.io
286- A2A agent: https://letsship.ai/docs/a2a
287- Privacy: https://letsship.ai/privacy - Terms: https://letsship.ai/terms
288- Support: https://letsship.ai/support
289- Security reports: support [at] letsship.ai
290 
291## License
292 
293The files in this repository are under the MIT license. The SHIP service is under the [SHIP terms](https://letsship.ai/terms).
294 

Discussion

Alternatives