Minesweeper MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Minesweeper MCP Servercreate a 9x9 board with 10 mines for a quick game"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Minesweeper MCP Server
A Model Context Protocol (MCP) server that provides Minesweeper game functionality. Users can create custom-sized Minesweeper boards and play the classic game through AI assistants.
Features
Custom Board Sizes: Create Minesweeper boards of any size (up to 50x50)
Flexible Mine Count: Set any number of mines (within reasonable limits)
Multiple Games: Manage multiple concurrent game boards
Visual Display: ASCII art representation of the game board
Game State Tracking: Win/loss detection and timing
Cell Operations: Reveal cells, flag/unflag suspected mines
Related MCP server: Minesweeper MCP Server
Installation
Clone or download this repository
Install dependencies:
npm installBuild the TypeScript code:
npm run buildStart the server:
npm start
Available Tools
create_board
Create a new Minesweeper board with custom dimensions and mine count.
Parameters:
id(string): Unique identifier for the boardwidth(number): Number of columns (1-50)height(number): Number of rows (1-50)mineCount(number): Number of mines to place
Example:
Create a 10x10 board with 15 mines, ID "game1"reveal_cell
Reveal a cell on the board. If it's a mine, the game ends. If it's empty, adjacent cells may be automatically revealed.
Parameters:
boardId(string): ID of the boardx(number): Column coordinate (0-based)y(number): Row coordinate (0-based)
Example:
Reveal cell at position (5, 3) on board "game1"flag_cell
Flag or unflag a cell as a suspected mine.
Parameters:
boardId(string): ID of the boardx(number): Column coordinate (0-based)y(number): Row coordinate (0-based)
Example:
Flag cell at position (2, 7) on board "game1"get_board
Display the current state of a board.
Parameters:
boardId(string): ID of the board to display
list_boards
List all active game boards with their status.
Parameters: None
delete_board
Delete a game board.
Parameters:
boardId(string): ID of the board to delete
Game Symbols
.= Hidden cellF= Flagged cell*= Mine (revealed when game ends)1-8= Number of neighboring mines(space) = Empty cell with no neighboring mines
Example Game Flow
Create a board:
create_board with id="easy", width=9, height=9, mineCount=10Start revealing cells:
reveal_cell on board="easy" at x=4, y=4Flag suspected mines:
flag_cell on board="easy" at x=0, y=0Check board status:
get_board for boardId="easy"Continue until you win or hit a mine!
Game Rules
Objective: Reveal all cells that don't contain mines
Winning: Reveal all non-mine cells
Losing: Reveal a cell containing a mine
Numbers: Show count of mines in the 8 adjacent cells
Flagging: Mark cells you suspect contain mines (prevents accidental revelation)
Auto-reveal: When you reveal an empty cell (0 neighbors), all adjacent cells are automatically revealed
Development
Project Structure
src/
├── index.ts # Main MCP server implementation
└── minesweeper.ts # Core game logic and typesScripts
npm run build- Compile TypeScript to JavaScriptnpm run dev- Watch mode for developmentnpm start- Run the compiled server
Integration with AI Assistants
This MCP server can be integrated with AI assistants that support the Model Context Protocol, such as Claude Desktop. The AI can help you:
Create boards with optimal mine distributions
Suggest strategic moves
Analyze board patterns
Track multiple games simultaneously
License
MIT License - feel free to use and modify as needed!
Available Tools
6 toolscreate_boardB
Create a new Minesweeper board with specified dimensions and mine count
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique identifier for the board | |
| width | Yes | Width of the board (number of columns) | |
| height | Yes | Height of the board (number of rows) | |
| mineCount | Yes | Number of mines to place on the board |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool creates a board but lacks details on behavioral traits such as permissions needed, whether the creation is idempotent, error conditions (e.g., invalid mine count relative to board size), or what happens if a board with the same ID exists. This is a significant gap for a creation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with no annotations and no output schema, the description is incomplete. It does not explain what the tool returns (e.g., the created board object or success status), error handling, or important behavioral aspects like idempotency or validation rules, leaving gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds minimal value by mentioning 'dimensions and mine count', which aligns with the schema but does not provide additional syntax, format, or constraints beyond what is already specified in the schema descriptions and bounds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new Minesweeper board') and specifies the resources involved ('with specified dimensions and mine count'). It distinguishes from sibling tools like 'delete_board', 'get_board', and 'list_boards' by focusing on creation rather than deletion, retrieval, or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, constraints, or compare it to sibling tools like 'list_boards' or 'get_board' for context. Usage is implied only by the action of creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_boardC
Delete a Minesweeper board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ID of the board to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Delete' which implies a destructive mutation, but doesn't clarify if this is permanent, requires confirmation, or has side effects (e.g., affecting other tools). More context on behavioral traits is needed for safe use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, clearly front-loading the action and resource. It's appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't address critical aspects like return values, error conditions, or safety warnings, which are essential for a deletion tool in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'boardId' fully documented in the schema. The description doesn't add any meaning beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('a Minesweeper board'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'create_board' or 'get_board' beyond the obvious action difference, missing explicit comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as whether deletion is irreversible or requires specific conditions. The description lacks context about prerequisites or exclusions, leaving usage unclear beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flag_cellC
Flag or unflag a cell on the Minesweeper board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ID of the board | |
| x | Yes | X coordinate (column) of the cell to flag | |
| y | Yes | Y coordinate (row) of the cell to flag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action but doesn't disclose whether flagging is reversible, if it affects game state (like mine detection), what happens if coordinates are invalid, or any error conditions. For a mutation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that directly states the tool's function without any wasted words. It's front-loaded with the core action and resource, making it immediately understandable despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'flag or unflag' means in gameplay terms, what the visual/state change represents, whether there are limitations (like flagging revealed cells), or what the expected outcome is. Given the complexity of game state manipulation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (board ID, x/y coordinates). It doesn't explain coordinate systems, valid ranges beyond the schema's minimum, or how flagging interacts with board state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('flag or unflag') and resource ('a cell on the Minesweeper board'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'reveal_cell' beyond the different verb, missing an opportunity to clarify the distinction between flagging and revealing operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'reveal_cell' or other board manipulation tools. There's no mention of typical Minesweeper gameplay context, such as using flags to mark suspected mines or unflagging when uncertain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_boardC
Get the current state and visual representation of a Minesweeper board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ID of the board to display |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'current state and visual representation,' implying a read-only operation, but doesn't specify critical details like whether it requires authentication, rate limits, error handling (e.g., invalid boardId), or the format of the output (e.g., text, grid, JSON). For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get the current state and visual representation of a Minesweeper board.' It front-loads the core purpose without unnecessary words, making it easy to parse. However, it could be slightly more structured by explicitly separating state retrieval from visual aspects, but overall, it earns its place with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context—no annotations, no output schema, and a simple input schema—the description is incomplete. It covers the basic purpose but lacks details on behavioral traits (e.g., error handling, output format), usage guidelines, and how it fits with sibling tools. For a tool in a Minesweeper game server with multiple interaction options, this leaves too much unspecified, making it inadequate for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'boardId' documented as 'ID of the board to display.' The description adds no additional meaning beyond this, such as examples of valid IDs or constraints. Since the schema already fully describes the parameter, the baseline score of 3 is appropriate—the description doesn't compensate but doesn't need to, given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the current state and visual representation of a Minesweeper board.' It specifies the verb ('Get') and resource ('Minesweeper board'), and while it doesn't explicitly differentiate from siblings like 'list_boards' or 'reveal_cell', the focus on retrieving a specific board's state and visual representation is distinct enough to avoid vagueness. However, it doesn't fully articulate how it differs from potential overlaps (e.g., 'list_boards' might provide summaries vs. this tool's detailed view), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid boardId), exclusions (e.g., not for modifying the board), or comparisons to sibling tools like 'list_boards' (for overviews) or 'reveal_cell' (for interacting with cells). Without such context, users might struggle to select the correct tool in a Minesweeper game scenario, making this inadequate beyond basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_boardsB
List all active Minesweeper boards
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists active boards but doesn't describe what 'active' means, whether the list is paginated, sorted, or includes metadata, or any error conditions. This leaves significant gaps in understanding the tool's behavior beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 params, no output schema, no annotations), the description is minimally adequate but lacks depth. It doesn't explain what 'active' entails, the format of the returned list, or how it differs from siblings like 'get_board'. For a basic tool, it's passable but could be more informative to fully guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is appropriate here, but it could have mentioned implicit constraints (e.g., no filters). Baseline is 4 for zero-param tools, as the schema fully covers the absence of inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all active Minesweeper boards'), providing specific verb+resource pairing. However, it doesn't explicitly differentiate from sibling tools like 'get_board' (which might retrieve a single board), leaving some ambiguity about when to use one versus the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_board' or 'create_board'. The description implies it's for listing active boards but doesn't specify scenarios (e.g., overview vs. detailed view) or exclusions, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reveal_cellC
Reveal a cell on the Minesweeper board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ID of the board | |
| x | Yes | X coordinate (column) of the cell to reveal | |
| y | Yes | Y coordinate (row) of the cell to reveal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose that revealing a mine ends the game, that revealing a numbered cell shows adjacent mines, or that revealing an empty cell triggers cascading reveals. These are essential behavioral traits for a Minesweeper agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's perfectly front-loaded with the core action and resource, making it immediately scannable and appropriately sized for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a game action tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after revealing (game state changes, win/lose conditions, return values), nor does it cover error cases like invalid coordinates or completed boards. Given the complexity of Minesweeper mechanics, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline expectation but not providing extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('reveal') and resource ('a cell on the Minesweeper board'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'flag_cell' which operates on the same resource type, missing the opportunity for full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'flag_cell' for marking mines. It also doesn't mention prerequisites such as needing an existing board (created via 'create_board') or that coordinates must be within board bounds, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
- First observed
create_board - First observed
delete_board - First observed
flag_cell - First observed
get_board - First observed
list_boards - First observed
reveal_cell
TDQS
Each tool has a clearly distinct purpose with no overlap: create_board for initialization, delete_board for removal, flag_cell for marking, get_board for state retrieval, list_boards for enumeration, and reveal_cell for uncovering. The actions and targets are unambiguous, preventing agent misselection.
All tools follow a consistent verb_noun pattern with snake_case (e.g., create_board, flag_cell, get_board). The verbs are clear and descriptive, and there are no deviations in style or convention throughout the set.
With 6 tools, the count is well-scoped for a Minesweeper game server. It covers core operations without bloat, and each tool earns its place by addressing a specific aspect of board management and gameplay.
The toolset provides complete CRUD/lifecycle coverage for the Minesweeper domain: create, list, get, and delete for boards, plus reveal and flag for cell interactions. There are no obvious gaps, enabling agents to handle all essential gameplay workflows without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Games for AI agents. Each game runs inside a single context window.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides a Model Context Protocol interface for HexagonML ModelManager tools, enabling interaction with machine learning model management functionality through natural language.1-
- FlicenseAqualityNot gradedmaintenanceEnables MCP client agents to play the classic Minesweeper game by connecting to a separate Minesweeper game server. Provides tools for starting games, revealing cells, and placing flags through natural language interactions.4-
- FlicenseBqualityDmaintenanceA stdio-based MCP server that enables users to play and manage Minesweeper games through a Rails 8 REST API. It provides tools to start games, track states, and perform actions like opening cells and flagging mines.72-
- FlicenseNot gradedqualityDmaintenanceProvides dice rolling and coin flipping functionality for AI assistants via the Model Context Protocol. It enables users to roll single or multiple dice with configurable sides and perform randomized coin tosses.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vic563/mindsweeper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server