Deploy from any MCP client.

Use the Shipem MCP server from Claude Desktop, Cursor, or any client that can run a local stdio server.

Setup — Claude Desktop

Add to your config file:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "shipem": {
      "command": "npx",
      "args": ["-y", "@shipem/mcp"]
    }
  }
}

No Cloudflare env vars are required for the default Shipem flow. Restart the client, then call shipem_login.

Setup — Cursor

Add to .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:

{
  "mcpServers": {
    "shipem": {
      "command": "npx",
      "args": ["-y", "@shipem/mcp"]
    }
  }
}

Setup — Other MCP clients

Any MCP-compatible client works if it can launch a local stdio server with npx -y @shipem/mcp.

First-time login

Say: "Login to Shipem"

shipem_login validates any existing session first. If you are not logged in, it returns a GitHub login URL and polls for up to 60 seconds.

If your client does not complete the login flow automatically, open the returned URL in your browser and retry the deploy or login command.

Example prompts

All MCP tools

Tool Inputs Behavior
shipem_loginpoll?Validates an existing session or returns a GitHub login URL and polls for up to 60 seconds.
shipem_deploydirectory?, skipBuild?, message?Scans, builds, and deploys the target directory. On build failure it tells the client to use shipem_fix.
shipem_fixdirectory?, errorOutput?Runs fix heuristics for build failures and reports whether the build passes after the fix attempt.
shipem_statusdirectory?Reads local deployment state and may include API project info when a Shipem session is available.
shipem_logsdirectory?, projectName?, limit?Returns recent deployment history from the API when logged in, otherwise local history from shipem.json.
shipem_downdirectory?, projectName?Deletes a deployment and clears local deployment state.
shipem_envdirectory?, action?Scans referenced env vars and can generate .env.example with action: "generate-example".
shipem_scandirectory?Detects framework, build command, output directory, deploy target, env vars, and monorepo info.
shipem_initdescription, framework?, name?, directory?Scaffolds a new app and falls back to a minimal static project if external scaffolding fails.
shipem_logoutnoneClears the stored Shipem session and attempts remote logout.

Resources

Limits and URL behavior

Advanced: Direct Cloudflare deploys

If you set these environment variables, shipem_deploy bypasses Shipem-managed deploys and uses Cloudflare Pages directly:

{
  "mcpServers": {
    "shipem": {
      "command": "npx",
      "args": ["-y", "@shipem/mcp"],
      "env": {
        "CLOUDFLARE_API_TOKEN": "your_cf_token",
        "CLOUDFLARE_ACCOUNT_ID": "your_account_id"
      }
    }
  }
}