Docs menu

Docs ▸ Agents

MCP server and Claude Code plugin

npx gameshipper mcp serves every command as an MCP tool over stdio: gameshipper_status, gameshipper_init, gameshipper_play, gameshipper_build, gameshipper_check, gameshipper_publish and gameshipper_ci_init. Inputs are the command's flags in camelCase (appId, bundleId, target: ["mac"], screenshot: [5, 10]), and dir picks the game folder (by default, the folder the server started in, or its --dir). dir and steamSdk are relative to the server's folder; init's icon, keyArt, logo, entry and outputDir to the game folder. Each tool runs the CLI with --json and returns its result as structured content: { ok, data, errors[], warnings[], logPath }, marked as a tool error when ok is false. A smoke run's result leaves out its list of events (data.smoke.summary.eventsLeftOut counts them; data.smoke.eventsLog has them all), and every error's and warning's message, those inside data too (each publish destination's), is cut to 300 characters around "… (see the log) …", so it stays small. The CLI's own result and the run log keep all of it. Long builds send progress notifications, a cancelled call stops its command and everything it started, and calls that change the same game folder run one at a time (a waiting call's progress says so).

  • gameshipper_play opens the game window for you and returns at once. With smoke: true it runs the game briefly and returns every problem it found.
  • gameshipper_publish is a separate step: the server tells agents to call it only when you ask, because it uploads to your store accounts, itch.io makes uploads public at once if the game's page is, and butler's saved itch.io login is used without asking. It never prompts: a missing Steam or itch.io login comes back as STEAM_LOGIN_REQUIRED or ITCH_LOGIN_REQUIRED, whose fix is the command the human runs once in their own terminal. GITHUB_TOKEN must be set where the server runs.
  • The server never asks for, accepts or stores passwords, tokens or 2FA codes.

Claude Code:

claude mcp add gameshipper -- npx -y gameshipper mcp

Cursor and other MCP clients (mcp.json):

{ "mcpServers": { "gameshipper": { "command": "npx", "args": ["-y", "gameshipper", "mcp"] } } }

The Claude Code plugin adds the MCP server and a ship-web-game skill that teaches Claude the loop: check the state, set up, smoke-test, fix, build and check, and publish when you ask.

/plugin marketplace add gameshipper/gameshipper
/plugin install gameshipper@gameshipper

Without the plugin, copy plugin/skills/ship-web-game/SKILL.md from the Gameshipper repository to .claude/skills/ship-web-game/SKILL.md in your game folder, and add the MCP server as shown above.