ShipEasy

MCP server

Hand the docs and tools to Claude Code, Cursor, Windsurf, or any MCP-compatible AI assistant — and let it do the boring setup for you.

Production readyOn this page · 7 min readUpdated · May 3, 2026Works with · Claude Code · Cursor · Windsurf · any MCP client

ShipEasy ships an MCP (Model Context Protocol) server: @shipeasy/mcp. Plug it into your AI coding assistant and the agent gains a typed toolkit for inspecting and changing your ShipEasy project — plus prompts that walk it through complete onboarding flows.

The MCP server is the same surface as the CLI, exposed as JSON-Schema-typed tools instead of argv. That distinction matters: a typed tool is much harder for an LLM to misuse than a free-form CLI invocation.

Install

The CLI patches the right config file for whichever assistants you use:

zsh
$

shipeasy mcp install

? Which assistants? › Claude Code, Cursor ✔ Wrote ~/.claude/settings.json ✔ Wrote .cursor/mcp.json MCP server registered. Restart your AI assistant to pick it up.

After install, restart your assistant. The new MCP server appears under its tool list as shipeasy.

Manual config

If your client isn't auto-detected, or you prefer to write the config yourself:

~/.claude/settings.json (Claude Code)
{
  "mcpServers": {
    "shipeasy": {
      "command": "npx",
      "args": ["-y", "@shipeasy/mcp@latest"]
    }
  }
}
.cursor/mcp.json (Cursor)
{
  "mcpServers": {
    "shipeasy": {
      "command": "npx",
      "args": ["-y", "@shipeasy/mcp@latest"]
    }
  }
}
.windsurf/mcp.json (Windsurf)
{
  "mcpServers": {
    "shipeasy": {
      "command": "npx",
      "args": ["-y", "@shipeasy/mcp@latest"]
    }
  }
}

For any other MCP-compatible client, write the same block to whatever config file it reads.

The MCP server uses your CLI credentials

There are no environment variables to set. Run shipeasy login once and the MCP server picks up ~/.shipeasy/credentials on every tool call. No second auth flow, no shared tokens, no secrets in mcp.json.

Why typed tools beat free-form

A CLI is great for a human — short flags, terse output, easy to chain. For an LLM, a CLI is a parsing hazard. The agent has to remember the flag spelling, escape JSON correctly, and interpret the textual response.

A typed MCP tool flips that. Each tool is a named function with a JSON-Schema parameter object. The agent sees the schema, fills it, and gets a structured response back. Misuse — wrong types, missing required fields, unsupported flags — is caught at the protocol layer, not by the CLI's argv parser.

That's why the MCP server is the recommended surface for any AI-driven setup. The CLI is for humans and CI.

Tool inventory

The MCP server exposes ~30 tools, grouped by area. The agent sees them as mcp__shipeasy__<name>.

Auth & project

Field
Type
Description
auth_checkrequired
tool
Returns { authenticated, project_id, user_email }.
auth_loginrequired
tool
Triggers shipeasy login — asks the human to click.
auth_logoutrequired
tool
Wipes credentials.
detect_projectrequired
tool
Detects framework, source root, loader script presence, SDK install status.

Inspection

Field
Type
Description
list_resourcesrequired
tool
List flags, configs, experiments, profiles, keys — everything in the project.
get_resourcerequired
tool
Fetch a single resource by name.
get_sdk_snippetrequired
tool
Returns a copy-pasteable SDK init snippet for the detected framework.

Flags & experiments

Field
Type
Description
exp_create_gaterequired
tool
Create a gate.
exp_create_configrequired
tool
Create a dynamic config.
exp_create_experimentrequired
tool
Create an experiment with a universe and group spec.
exp_start_experimentrequired
tool
Move from draftrunning.
exp_stop_experimentrequired
tool
Move to stopped.
exp_experiment_statusrequired
tool
Latest results — lift, p-value, CI per metric per group.

i18n (Polylang)

Field
Type
Description
i18n_discover_siterequired
tool
Read the /.well-known/i18n.json manifest from a deployed site.
i18n_install_loaderrequired
tool
Generate the loader <script> tag and create a client key.
i18n_scan_coderequired
tool
Find candidate translatable strings in source.
i18n_codemod_previewrequired
tool
Dry-run the JSX literal codemod and show diffs.
i18n_codemod_applyrequired
tool
Apply the codemod — wraps JSX literals with t().
i18n_create_profilerequired
tool
Create a locale:env profile.
i18n_create_keyrequired
tool
Create a single key on a profile.
i18n_push_keysrequired
tool
Sync codemod-discovered keys to the dashboard.
i18n_translate_draftrequired
tool
Generate a translation draft via the configured AI provider.
i18n_validate_keysrequired
tool
Fail if any code reference is missing from a profile.
i18n_publish_profilerequired
tool
Push to KV — live in seconds.

Onboarding prompts

The MCP server bundles long-form prompts you can invoke with /mcp:shipeasy:<prompt>:

Practical example

Open Claude Code in a fresh React project and say:

Use the ShipEasy MCP to onboard this project to translations. Use en as the source locale.

The agent will:

Detect the project

Calls mcp__shipeasy__detect_project to learn the framework, source root, and SDK install status.

Check auth

Calls mcp__shipeasy__auth_check. If you're not logged in, prompts you to run shipeasy login in a real terminal.

Install the loader

Calls mcp__shipeasy__i18n_install_loader with the right framework hint. Creates a client key, writes the script tag.

Preview & apply the codemod

Calls mcp__shipeasy__i18n_codemod_preview to show diffs. Asks for your approval. Calls mcp__shipeasy__i18n_codemod_apply.

Push & publish

Calls mcp__shipeasy__i18n_push_keys then mcp__shipeasy__i18n_publish_profile. New copy is live within seconds.

The whole flow takes a few minutes and the only thing you click is the browser confirmation during login. For the canonical step-by-step the agent follows, see LLM Guides → String Manager.

Auth model

The MCP server is launched as a subprocess of your AI assistant. It reads ~/.shipeasy/credentials on every tool call — the same file the CLI writes. There are three implications worth knowing:

  1. One login covers everything. Run shipeasy login once on your machine, and every MCP tool in every assistant is authenticated.
  2. Refresh happens transparently. If the access token has expired, the MCP server refreshes it before the tool call — same behaviour as the CLI.
  3. Tokens never appear in MCP config. Your mcp.json only contains the launcher command. Stealing the config gives an attacker nothing.

Troubleshooting

Tool calls return `not authenticated`

Run shipeasy login in a real terminal. The MCP server reads the same credentials file the CLI writes. If the CLI sees you as logged in (shipeasy whoami) but the MCP server doesn't, your assistant is launching with a stripped env — set HOME explicitly in your mcp.json block.

Tool calls return `project not detected`

Pass an explicit --project <id> to shipeasy login, or set SHIPEASY_PROJECT=<id> before launching your AI assistant. Some agents inherit env from the launcher, others don't.

Tool list is empty after install

Restart the AI assistant. MCP servers are loaded at process start; editing mcp.json while the assistant is running has no effect.

NEXT

Tell the agent who your users are.

The richer your attributes, the more precise your targeting and analysis. Most teams under-invest here on day one and regret it.

Install the MCP
$shipeasy mcp install
Confirm auth
$shipeasy whoami
Was this page helpful?✎ Edit on GitHub

On this page