Sudoku MCP Server
A Cloudflare Worker exposing a small remote MCP server at /mcp. It implementsfive gameplay tools: start_game, get_game, play_move, check_game, andreset_game.
Local development
npm install
npm run types
npm test
npm run build
npm run dev
The root endpoint is a health response; MCP clients should usehttp://localhost:8787/mcp.
Automatic deployment
.github/workflows/deploy.yml runs the tests and type-check on pull requests.After a change reaches main, it deploys the Worker automatically. Configurethese GitHub Actions secrets before the first production deployment:
CLOUDFLARE_API_TOKEN: a Cloudflare API token permitted to deploy this Worker.CLOUDFLARE_ACCOUNT_ID: the Cloudflare account identifier for this Worker.
The token must be stored as a GitHub secret, never committed to the repository.
Authentication
Wrangler uses Cloudflare OAuth for local CLI operations:
npx wrangler login
npx wrangler whoami
This Worker intentionally has no application-level auth or user-account layer,as specified by the development plan. Add access control at the deploymentboundary before exposing a production endpoint.
Game behavior
Puzzles are normalized to one 81-character row-major grid. Whitespace isignored, . and 0 mean empty, and digits 1-9 are givens. start_gameaccepts only uniquely solvable puzzles and stores the solution privately insideone SQLite-backed Durable Object per game ID. play_move enforces only visiblerow/column/box conflicts; check_game is the tool that evaluates entriesagainst the hidden solution. Every state response includes the canonicalinitial/current grids and a labeled board rendering.