Mindsweeper Mcp

Mindsweeper Mcp

🚀 扫雷MCP服务器

这是一个模型上下文协议(MCP)服务器,提供扫雷游戏功能。用户可以创建自定义大小的扫雷棋盘,并通过AI助手来玩经典的扫雷游戏。

✨ 主要特性

  • 自定义棋盘大小:可创建任意大小(最大50x50)的扫雷棋盘。
  • 灵活的地雷数量:可设置任意数量的地雷(在合理范围内)。
  • 多局游戏:管理多个并发的游戏棋盘。
  • 可视化显示:以ASCII艺术形式展示游戏棋盘。
  • 游戏状态跟踪:检测胜负并记录游戏时间。
  • 格子操作:翻开格子、标记或取消标记疑似地雷。

📦 安装指南

  1. 克隆或下载此仓库。
  2. 安装依赖项:
    npm install
    
  3. 编译TypeScript代码:
    npm run build
    
  4. 启动服务器:
    npm start
    

📚 详细文档

可用工具

create_board

创建一个具有自定义尺寸和地雷数量的新扫雷棋盘。

参数

  • id(字符串):棋盘的唯一标识符。
  • width(数字):列数(1 - 50)。
  • height(数字):行数(1 - 50)。
  • mineCount(数字):要放置的地雷数量。

示例

创建一个10x10的棋盘,包含15个地雷,ID为 "game1"

reveal_cell

翻开棋盘上的一个格子。如果是地雷,游戏结束;如果是空的,相邻格子可能会自动翻开。

参数

  • boardId(字符串):棋盘的ID。
  • x(数字):列坐标(从0开始)。
  • y(数字):行坐标(从0开始)。

示例

翻开棋盘 "game1" 上位置为 (5, 3) 的格子

flag_cell

标记或取消标记一个格子为疑似地雷。

参数

  • boardId(字符串):棋盘的ID。
  • x(数字):列坐标(从0开始)。
  • y(数字):行坐标(从0开始)。

示例

标记棋盘 "game1" 上位置为 (2, 7) 的格子

get_board

显示棋盘的当前状态。

参数

  • boardId(字符串):要显示的棋盘的ID。

list_boards

列出所有活跃的游戏棋盘及其状态。

参数:无

delete_board

删除一个游戏棋盘。

参数

  • boardId(字符串):要删除的棋盘的ID。

游戏符号

  • . = 未翻开的格子
  • F = 标记的格子
  • * = 地雷(游戏结束时显示)
  • 1 - 8 = 相邻8个格子中的地雷数量
  • (空格) = 周围没有地雷的空格子

示例游戏流程

  1. 创建棋盘
    create_board with id="easy", width=9, height=9, mineCount=10
    
  2. 开始翻开格子
    reveal_cell on board="easy" at x=4, y=4
    
  3. 标记疑似地雷
    flag_cell on board="easy" at x=0, y=0
    
  4. 检查棋盘状态
    get_board for boardId="easy"
    
  5. 继续游戏,直到获胜或踩到地雷!

游戏规则

  • 目标:翻开所有不包含地雷的格子。
  • 获胜条件:翻开所有非地雷格子。
  • 失败条件:翻开包含地雷的格子。
  • 数字:显示相邻8个格子中的地雷数量。
  • 标记功能:标记你怀疑包含地雷的格子(防止意外翻开)。
  • 自动翻开:当你翻开一个空格子(周围没有地雷)时,所有相邻格子会自动翻开。

开发相关

项目结构

src/
├── index.ts          # 主要的MCP服务器实现
└── minesweeper.ts    # 核心游戏逻辑和类型

脚本命令

  • npm run build - 将TypeScript编译为JavaScript。
  • npm run dev - 开发时的监听模式。
  • npm start - 运行编译后的服务器。

与AI助手集成

此MCP服务器可以与支持模型上下文协议的AI助手集成,如Claude Desktop。AI可以帮助你:

  • 创建具有最佳地雷分布的棋盘。
  • 提供战略建议。
  • 分析棋盘模式。
  • 同时跟踪多局游戏。

📄 许可证

本项目采用MIT许可证,你可以根据需要自由使用和修改!

  • 0 关注
  • 0 收藏,34 浏览
  • system 提出于 2025-10-07 04:00

相似服务问题

相关AI产品