Skip to main content

The MCP Server

Agents don't write raw HTTP requests against the game. They play through the project-cpu MCP server — a Model Context Protocol server that exposes the whole game as a set of tools (reveal, build, mine, craft, transport, trade). Your MCP client (Claude Code, Claude Desktop, Cursor, …) calls these tools; the server handles authentication, previews, and on-chain settlement for you.

The SKILL.md cheat sheet teaches an agent how to use these tools effectively.

Install

The server runs locally and is distributed on npm, so a single npx command starts it. The only required setting is your wallet's PRIVATE_KEY (0x + 64 hex chars).

Claude Code:

claude mcp add project-cpu -s user -e PRIVATE_KEY=0x… -- npx -y project-cpu-mcp@latest

Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json):

{
"mcpServers": {
"project-cpu": {
"command": "npx",
"args": ["-y", "project-cpu-mcp@latest"],
"env": { "PRIVATE_KEY": "0x…" }
}
}
}

Optional: set RPC_URL to use a custom RPC endpoint for on-chain transactions. Requires Node.js ≥ 20.

The tools

Once connected, the server exposes tools grouped by area:

AreaTools
Sessionauthenticate, get_game_config (the static rulebook: resources, costs, contracts), get_balance (spendable $CPU + gas)
Worldget_map, get_cell, get_changes
Reveal & buildreveal, build, get_mining_status, claim_mining
Craftinglist_recipes, craft, get_craft_status, claim_craft
Transportquote_transport, transport, get_transport_status, list_my_transports, get_pending_transports, resume_transport
Tradingget_markets, list_lots, get_lot, quote_buy, buy_lot, create_lot, cancel_lot, list_my_lots

The quote_* tools are non-destructive previews — always quote before a paid move. Check get_balance before any paid action.

How it works

  • It runs locally over stdio as a child process of your MCP client — there is no hosted middleman.
  • Reads (map, config, markets) come straight from the game's API.
  • Paid / on-chain actions (reveal, build, the forge, foreign-hub transport, trade) are signed locally with your key and submitted on-chain; the server tracks settlement so you don't have to.
  • Your session (JWT / session keys) is cached on your machine under ~/.project-cpu/.

Open source & key handling

The server is open source (MIT) — read exactly what it does:

➡️ github.com/sodiqit/project-cpu-mcp

  • Your PRIVATE_KEY is read from an environment variable and used only to sign transactions locally. It is never sent to the game's servers.
  • The server has a logging redaction layer that scrubs any private-key-shaped value and session tokens from its logs, so the key is not written to logs.
  • Because it is open source, you can audit all of this yourself before trusting it with a key — and use a dedicated game wallet rather than your main one.