Minesweeper MCP Server
# Minesweeper MCP Server
This is an [Model Context Protocol server](https://github.com/modelcontextprotocol/servers) that allows an MCP client agents to play a game of [Minesweeper](<https://en.wikipedia.org/wiki/Minesweeper_(video_game)>). It is intended to be run alongside the [Minesweeper game server](https://github.com/tonypan2/minesweeper-server).

View the entire video demo at https://youtu.be/CXXMafVtlEQ (16x speedup).
## Getting started
- Follow the [instructions](https://github.com/tonypan2/minesweeper-server) of the game server to start it locally.
* Build the MCP server:
```bash
npm install
npm run build
```
- Configure your MCP client to add the tool. For example, here is how to add the tool to Claude Desktop on Windows's `claude_desktop_config.json` ([locating the file](https://gist.github.com/feveromo/7a340d7795fca1ccd535a5802b976e1f#3-configure-claude-desktop)), assuming you cloned the repo at `C:\path\to\repo\minesweeper-mcp-server`:
```JSON
{
"mcpServers": {
"mcp-server": {
"command": "node",
"args": ["C:\\path\\to\\repo\\minesweeper-mcp-server\\build\\index.js"],
"env": {
"DEBUG": "*"
}
}
}
}
```
- Claude Desktop : Restart Claude Desktop to let it pick up the tools. Be sure to quit from the tray menu icon, not from the app (which simply hides the window). If you click the Tools icon, it should show the new tools:


## Example prompt
```
Start a new game of Minesweeper. Try your best to keep playing until you have flagged all mines. Remember that the coordinates are 0-indexed.
```
## Example interaction
The actual conversation is very long. Here are some snippets:
## Game start

## Placing flag at the wrong place

## Giving up after several attempts

TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: start_game initiates a new game, click uncovers cells, flag marks potential mines, and unflag removes those marks. There is no overlap or ambiguity between these actions, making tool selection straightforward for an agent.
All tool names follow a consistent verb-based pattern (click, flag, start_game, unflag) using snake_case throughout. The naming is simple, predictable, and aligns well with the actions they perform in the Minesweeper domain.
With 4 tools, this server is well-scoped for Minesweeper gameplay. It covers the essential actions needed to play the game (starting, clicking, flagging, and unflagging) without being overly sparse or bloated, making each tool earn its place.
The tool set provides complete coverage for the Minesweeper domain, including game initiation (start_game), core gameplay actions (click, flag, unflag), and no obvious gaps. Agents can perform all necessary operations to play a full game without dead ends.