Skip to main content
Glama
Vic563

Minesweeper MCP Server

by Vic563

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

  1. Clone or download this repository

  2. Install dependencies:

    npm install
  3. Build the TypeScript code:

    npm run build
  4. Start 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 board

  • width (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 board

  • x (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 board

  • x (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 cell

  • F = Flagged cell

  • * = Mine (revealed when game ends)

  • 1-8 = Number of neighboring mines

  • (space) = Empty cell with no neighboring mines

Example Game Flow

  1. Create a board:

    create_board with id="easy", width=9, height=9, mineCount=10
  2. Start revealing cells:

    reveal_cell on board="easy" at x=4, y=4
  3. Flag suspected mines:

    flag_cell on board="easy" at x=0, y=0
  4. Check board status:

    get_board for boardId="easy"
  5. 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 types

Scripts

  • npm run build - Compile TypeScript to JavaScript

  • npm run dev - Watch mode for development

  • npm 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 tools
create_boardB

Create a new Minesweeper board with specified dimensions and mine count

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique identifier for the board
widthYesWidth of the board (number of columns)
heightYesHeight of the board (number of rows)
mineCountYesNumber of mines to place on the board

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesID of the board to delete

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesID of the board
xYesX coordinate (column) of the cell to flag
yYesY coordinate (row) of the cell to flag

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesID of the board to display

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesID of the board
xYesX coordinate (column) of the cell to reveal
yYesY coordinate (row) of the cell to reveal

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 6 tool updates
    • First observedcreate_board
    • First observeddelete_board
    • First observedflag_cell
    • First observedget_board
    • First observedlist_boards
    • First observedreveal_cell

TDQS

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides a Model Context Protocol interface for HexagonML ModelManager tools, enabling interaction with machine learning model management functionality through natural language.
    1
    -
  • F
    license
    A
    quality
    Not graded
    maintenance
    Enables 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
    -
  • F
    license
    B
    quality
    D
    maintenance
    A 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.
    7
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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

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