minesweeper-mcp
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-mcpstart a new game for user u_abcd1234"
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 (stdio)
Rails 8 で動く Minesweeper Web/API を操作する stdio MCP server です。
Claude Code / Claude Desktop などの MCP Host からツールとして呼び出します。
起動:
npx minesweeper-mcp(公開後)通信: stdio(stdout は MCP プロトコル専用 / ログは stderr のみ)
操作: Rails の REST API に対して
start/open/flag/chord/endを呼ぶ
API: minesweeper-for-ai
Quick Start
1) 必要要件
Node.js 22+(推奨: 24+)
Rails 側の Web/API が起動していること
2) 環境変数
MINESWEEPER_BASE_URL(必須):https://example.com(末尾スラッシュなし推奨)MINESWEEPER_BEARER_TOKEN(操作系に必須): Rails 側で発行した token
例:
export MINESWEEPER_BASE_URL="https://example.com"
export MINESWEEPER_BEARER_TOKEN="xxxxxx"3) ローカル起動(開発中)
npm install
npm run build
node dist/index.js詳細: docs/development.md
Related MCP server: Angular Bootstrap MCP Server
MCPの設定方法(Host側)
MCP Host(Claude Desktop / Claude Code など)の設定ファイルに、stdioサーバとして登録します。
ローカルで動かす場合は dist/index.js を指定し、環境変数を渡してください。
ローカル開発(distを直接起動)
{
"mcpServers": {
"minesweeper": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/minesweeper-mcp/dist/index.js"],
"env": {
"MINESWEEPER_BASE_URL": "http://localhost:3000",
"MINESWEEPER_BEARER_TOKEN": "YOUR_TOKEN"
}
}
}
}公開後(npxで起動)
{
"mcpServers": {
"minesweeper": {
"command": "npx",
"args": ["-y", "github:geeknees/minesweeper-mcp"],
"env": {
"MINESWEEPER_BASE_URL": "https://example.com",
"MINESWEEPER_BEARER_TOKEN": "YOUR_TOKEN"
}
}
}
}設定ファイルの場所や再読み込み方法は、使用しているMCP Hostのドキュメントに従ってください。
Docs
MCP tool reference:
docs/tools.mdDevelopment guide:
docs/development.mdRails API overview:
docs/api.mdBackground article:
docs/minesweeper-mcp-article.md
License
MIT
Available Tools
7 toolsgame_chordC
Chord a cell in a game.
| Name | Required | Description | Default |
|---|---|---|---|
| public_id | Yes | ||
| x | Yes | ||
| y | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. It fails to explain what chording does (reveal adjacent cells), that it requires correct flag counts, or that it can end the game. No behavioral traits disclosed.
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 single sentence is appropriately brief, but its extreme minimalism (five words) leaves it empty rather than concise. No structural issues, but every sentence does not earn its place due to lack of substance.
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?
With three undocumented parameters, no annotations, no output schema, and multiple sibling tools, the description should explain game mechanics, prerequisites (e.g., requiring placed flags), and parameter meanings. It provides none of this.
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?
With 0% schema coverage, the description must compensate for all three parameters. It implies x/y locate a 'cell' but completely fails to explain 'public_id' or coordinate system conventions (0-indexed vs 1-indexed).
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?
Uses the specific verb 'chord' and mentions the resource 'cell', but 'chord' is unexplained jargon assuming Minesweeper domain knowledge. Distinguishes from siblings by specific terminology, but unclear to agents unfamiliar with the mechanic.
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 provided on when to use this versus game_flag or game_open, no preconditions mentioned (e.g., required game state), and no alternatives suggested. The description states only what the tool does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_endC
End a game.
| Name | Required | Description | Default |
|---|---|---|---|
| public_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but discloses no behavioral traits. It does not clarify if ending is destructive (deletes data), reversible, idempotent, or what happens to game state post-invocation.
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 three-word description is efficiently structured with no redundancy, but extreme brevity results in under-specification rather than effective conciseness—it wastes no words while failing to communicate necessary information.
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?
Incomplete for a lifecycle management tool: no output schema exists (so return values should be described), the single parameter lacks documentation in both schema and description, and behavioral side effects are omitted despite zero annotation coverage.
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 coverage is 0% and the description completely fails to mention the 'public_id' parameter or explain what identifier is required (game ID? user ID?), leaving the agent without semantic guidance for the single required input.
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 'End a game.' restates the tool name 'game_end' with minimal expansion (tautology). While it identifies the resource (game), it fails to distinguish from siblings like game_open or clarify what 'ending' entails (termination vs. archival vs. deletion).
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 provided on when to invoke this tool versus alternatives (e.g., when to use game_end vs. game_open), nor any prerequisites (e.g., game must be active) or post-conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_flagC
Toggle a flag on a cell.
| Name | Required | Description | Default |
|---|---|---|---|
| public_id | Yes | ||
| x | Yes | ||
| y | Yes |
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. While 'toggle' correctly implies the action is reversible, it fails to disclose error conditions, return values, or whether flagging affects game completion state.
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 four-word sentence is efficient but under-delivers given the complete lack of schema documentation. It is appropriately front-loaded but sacrifices necessary detail for 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?
Inadequate for a 3-parameter mutation tool with no annotations or output schema. Missing critical context: what flagging represents (mine marking), valid coordinate ranges, and the meaning of public_id.
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 coverage is 0%, requiring the description to compensate. While 'cell' implies x and y are coordinates, it doesn't explain the public_id parameter (likely game session ID) or coordinate system origin (0-indexed vs 1-indexed).
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 provides a specific verb (toggle) and clear resource (flag on a cell), making the core action understandable. However, it assumes familiarity with grid-based games and doesn't explicitly distinguish this from the 'game_open' sibling tool (which likely reveals cells).
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?
Provides no guidance on when to use flagging versus opening cells, or prerequisites like game state. In the context of sibling tools like 'game_open' and 'game_chord', the absence of usage differentiation is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_openC
Open a cell in a game.
| Name | Required | Description | Default |
|---|---|---|---|
| public_id | Yes | ||
| x | Yes | ||
| y | Yes |
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, yet it fails to explain what occurs when opening a cell (reveal content, potential game over, cascading reveals), authentication requirements, or error conditions. Only the barest action verb is provided.
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 at five words, and while front-loaded with the verb, it sacrifices necessary context. Every word earns its place, but appropriate sizing for this complexity would require additional sentences to cover parameters and behavior.
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 three parameters with zero schema descriptions, no annotations, and no output schema, the description is insufficient. It lacks explanation of the game state interactions, return values, error states, and coordinate system details that would enable correct agent usage.
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 0%, requiring the description to compensate. While 'cell' implies x and y are coordinates, the description offers no guidance on the public_id parameter's semantics, value format, or the coordinate system origin. It only partially compensates for the schema's lack of documentation.
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 states the action ('Open') and resource ('cell'), but remains vague about the game mechanics (likely Minesweeper given siblings like game_chord and game_flag). It fails to distinguish from similar interaction tools like game_flag or game_chord, leaving the agent unclear on the specific game action semantics.
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 game_flag (marking mines) or game_chord (clearing adjacent cells). There are no prerequisites, conditions, or workflow hints to help the agent select appropriately from the sibling game tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_stateC
Fetch the public state for a game.
| Name | Required | Description | Default |
|---|---|---|---|
| public_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. While 'Fetch' implies a read-only operation, the description fails to specify the return structure, potential error states (e.g., game not found), rate limits, or what distinguishes 'public' from potentially private game data.
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?
Single sentence is appropriately front-loaded with no wasted words. However, extreme brevity contributes to information gaps given the lack of supporting documentation in schema or annotations.
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 zero schema coverage, no annotations, and no output schema, the description is insufficient. It omits critical details such as parameter semantics, the specific properties of the returned game state, and behavioral constraints expected of a data-retrieval tool.
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 0%, requiring the description to compensate. Although the parameter name 'public_id' and phrase 'for a game' together imply this is a game identifier, the description lacks explicit confirmation of what the ID represents, its expected format, or how to obtain it.
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?
States the basic action (fetch) and target (public state for a game) but 'public state' remains vague regarding what specific data is returned. Does not explicitly differentiate from sibling tools like user_games or clarify if this retrieves ongoing game status versus historical data.
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?
Provides no guidance on when to use this tool versus alternatives like user_games or game_open. No mention of prerequisites (e.g., does the game need to be active?) or typical usage patterns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_gamesC
List public games for a user slug.
| Name | Required | Description | Default |
|---|---|---|---|
| user_slug | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to provide safety hints, the description carries full behavioral burden. It only discloses the 'public' visibility filter, omitting pagination behavior, error handling (e.g., invalid slug), authentication requirements, and return structure.
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?
Extremely brief at six words. While efficient, the brevity is insufficient to cover behavioral transparency and parameter gaps given the complete lack of annotations and schema descriptions.
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?
Covers the basic operation for a single-parameter query tool, but remains incomplete regarding error scenarios, response format, and the distinction between 'public' and private games.
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 coverage is 0% with no parameter descriptions. The description adds semantic meaning by identifying the parameter as a 'user slug' (vs an ID or username), but provides no format constraints, examples, or validation rules to fully compensate for the schema gap.
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?
States a specific verb (List), resource (public games), and scope (for a user slug). Distinguishes implicitly from sibling game-operation tools (game_chord, game_end) by focusing on user-centric game retrieval, though lacks explicit 'use this when' differentiation.
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 on when to use this versus user_start or game_state. No mention of prerequisites (e.g., whether the user must exist) or workflow position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_startC
Start a new game for a user slug.
| Name | Required | Description | Default |
|---|---|---|---|
| user_slug | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, yet the description fails to disclose mutation behavior details: what 'starting' creates (game ID? session?), side effects, idempotency, or return values. Agent cannot infer safety profile or state changes.
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?
Extremely concise at 8 words/1 sentence. Front-loaded with verb and object, though brevity becomes a liability given the lack of structured metadata (annotations/schema descriptions) that would compensate.
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?
Insufficient for a lifecycle tool (creates/initializes) with no output schema. Omits return structure, relationship to game_end/game_state siblings, and whether the started game becomes immediately playable or requires additional setup via game_chord/game_open.
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?
With 0% schema description coverage, the description must compensate but only mentions 'user slug' without explaining what a slug is (format, constraints, source), valid values, or whether it refers to an existing user record versus a display name.
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?
States the core action (Start) and resource (new game) but uses awkward phrasing ('for a user slug'). Does not distinguish from sibling tools like game_open or clarify if this initializes the game lifecycle vs other entry points.
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?
Provides no guidance on when to use this tool versus alternatives (game_open), prerequisites for the user_slug parameter, or when the operation might fail (e.g., if a game is already active).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity: chord, end, flag, open, state, list games, and start game are all unique actions in the Minesweeper domain. The descriptions clearly differentiate between game manipulation actions (chord, flag, open), game lifecycle actions (end, start), and query actions (state, list).
All tools follow a perfectly consistent verb_noun pattern with 'game_' or 'user_' prefixes indicating the resource type. The naming is systematic and predictable: game_chord, game_end, game_flag, game_open, game_state, user_games, user_start. This consistency makes the tool set easy to understand and navigate.
With 7 tools, this is well-scoped for a Minesweeper game server. Each tool earns its place by covering essential operations: starting/ending games, cell interactions (open, flag, chord), state retrieval, and game listing. The count is neither too thin nor bloated, perfectly matching the domain's requirements.
The tool surface provides complete coverage for Minesweeper gameplay. It includes all core operations: starting a game (user_start), ending it (game_end), cell interactions (open, flag, chord), state monitoring (game_state), and discovery (user_games). There are no obvious gaps—agents can fully manage the game lifecycle and player interactions 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 MCP server built for developers enabling Git based project management with project and personal…
Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityFmaintenanceA TypeScript-based MCP server that enables testing of REST APIs through Cline. This tool allows you to test and interact with any REST API endpoints directly from your development environment.193101MIT
- AlicenseNot gradedqualityDmaintenanceA TypeScript-based MCP server that provides backend API handling and facilitates communication between microservices. Features an organized structure with controllers, routes, and models for easy extensibility and maintenance.2251MIT
- FlicenseNot gradedqualityDmaintenanceA TypeScript MCP server implementation using Express.js that provides basic tools like echo, time retrieval, and calculator functionality. Features session management, RESTful API endpoints, and Server-Sent Events for streamable communication.
- 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
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/geeknees/minesweeper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server