Documentation

MCP server

Let Claude Code, Cursor and other coding agents generate ShipRust projects as tools over the Model Context Protocol.

What it does

ShipRust runs a Model Context Protocol server at https://shiprust.com/mcp. Connect it to a coding agent and the agent can list your projects, see every generator choice, create a project and fetch the download, all as tools it calls itself instead of HTTP requests you write for it.

The server is the same generator as the site and the JSON API: the same validation, the same lifetime-access check and the same saved projects. Anything you create from an agent appears on your dashboard, and anything you create on the site is visible to the agent.

Connect an agent

For Codex, use the native ShipRust plugin. It bundles this MCP server and the ShipRust skill. The standalone MCP setup is only a fallback when native plugins are unavailable.

Create a personal API key in Settings and export it in the shell your agent runs from. The same variable is used for the connection and for downloading the generated zip.

export SHIPRUST_API_KEY=sr_...

Claude Code registers the server with one command:

claude mcp add --transport http shiprust https://shiprust.com/mcp \
  --header "Authorization: Bearer $SHIPRUST_API_KEY"

To keep the key out of the saved configuration, put the server in a project's .mcp.json instead and let Claude Code expand the variable when it starts:

{
  "mcpServers": {
    "shiprust": {
      "type": "http",
      "url": "https://shiprust.com/mcp",
      "headers": { "Authorization": "Bearer ${SHIPRUST_API_KEY}" }
    }
  }
}

Cursor and other clients with a mcp.json file use the same shape:

{
  "mcpServers": {
    "shiprust": {
      "url": "https://shiprust.com/mcp",
      "headers": { "Authorization": "Bearer sr_..." }
    }
  }
}

Any client that speaks MCP's Streamable HTTP transport and can send a fixed Authorization header works. There is no OAuth sign-in: the API key is the credential, so revoking it in Settings disconnects the agent on its next call.

Tools

ToolWhat it does
get_accountThe account behind the key and whether it has lifetime access. Points to the billing page when it does not.
list_optionsHosting choices, Sentry and PostHog capability keys with descriptions, defaults, limits and the template revision.
list_projectsYour saved projects, newest first, each with its choices and download URL.
create_projectSave a new project. Takes the same fields and defaults as the new-project form; only name is required.
get_projectOne project by id, with its download URL and command.
delete_projectRemove a project from your list. Downloaded code is unaffected. The tool is marked destructive so agents ask first.

Creating and reading a project require lifetime access, exactly like the site and the API. Listing works for every account. Typos are caught: an unknown field or capability key makes the tool fail with a message the agent can act on rather than silently changing the result.

Download the codebase

Generated zips are not sent through the MCP connection. A full Rust project encoded into a tool result would land in the agent's context window, so create_project and get_project return a download_url and a ready-to-run command instead:

curl -fL -o acme-app.zip "https://shiprust.com/api/v1/projects/…/download" \
  -H "Authorization: Bearer $SHIPRUST_API_KEY" && unzip acme-app.zip

The command uses the SHIPRUST_API_KEY variable from the step above, so the agent's shell needs it too. The archive is the same one the site serves. Continue with Download and run your codebase; the generated README.md and AGENTS.md tell the agent how the codebase works.

Your generated project gets one too

Every project generated with Include an MCP server (on by default, alongside the JSON API) ships with its own /mcp endpoint built on the same protocol core: the account tool, the same bearer-key authentication, and a guide for adding product tools. The generated docs/mcp page explains it.

A typical session

Ask the agent for what you want in plain words: "Create a ShipRust project called Acme App with CapRover hosting and Stripe, download it into this folder and start it." A capable agent calls get_account, checks list_options when you asked for anything beyond the defaults, calls create_project, runs the download command, unzips the archive and reads AGENTS.md before touching the code.

Protocol details

The server speaks MCP protocol versions 2025-06-18, 2025-03-26 and 2024-11-05 over the Streamable HTTP transport in its stateless form. Every JSON-RPC message is one POST /mcp answered with JSON; there are no sessions to resume and no server-sent event stream, and GET /mcp returns 405. The server offers tools only, with no resources or prompts.

Failures you can fix are reported inside the tool result with isError: true, the message and the status the JSON API would have sent (402 without lifetime access, 404 for a project that is not yours, 409 for a taken slug, 422 for invalid input). A missing, invalid or revoked key is an HTTP 401. Malformed JSON-RPC is answered with the standard error codes.

Install the agent toolkit

Use the AI agent setup guide for the official skills, client-specific MCP configurations and REST fallback. Your dashboard has a copyable setup prompt.