国际象棋MCP服务器

一个允许用户与大型语言模型(LLM)下国际象棋的模型上下文协议(MCP)服务器,支持新游戏创建、移动验证和游戏状态查看。

  • by minghuig
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 minghuig/llm-chess-mcp-server

使用说明

国际象棋MCP服务器

一个模型上下文协议(MCP)服务器,允许您与LLM下棋。公平的警告:他们不是很擅长(可以在完整的游戏中摸索,但对于普通的人类玩家来说,要击败他们是相当微不足道的),而且这个服务器并没有针对他们的国际象棋表现进行优化。使用Python构建 python-chess 用于国际象棋逻辑和移动验证的库。

特性

  • 新名称:开始一场新的国际象棋比赛
  • make_move:通过自动验证采取行动(支持UCI和SAN表示法)
  • get_game_state:查看当前棋盘,包括排名/档案标签、捕获的棋子、最后一步、回合、游戏状态和FEN符号

安装

  1. 安装依赖项:
pip install -r requirements.txt

用法

运行服务器

直接运行服务器:

python chess_server.py

使用Claude Desktop进行配置

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "chess": {
      "command": "python",
      "args": ["/Users/minghuiguo/Documents/ai_chess_mcp_server/chess_server.py"]
    }
  }
}

确保更新路径以匹配您的实际安装目录。

下棋

配置后,您可以与Claude互动下棋:

对话示例:

You: Let's play chess! Start a new game.
Claude: [calls new_game tool]

You: I'll play e4
Claude: [calls make_move with "e4"]

You: What's the current board state?
Claude: [calls get_game_state]

移动符号

服务器接受两种格式的移动:

  1. UCI符号: e2e4, g1f3, e1g1 (用于铸造)
  2. 标准代数符号(SAN): e4, Nf3, O-O (用于铸造)

工具

新名称

以标准起始位置开始新的国际象棋游戏。

参数:无

退货:带有初始板状态的确认消息

make_move

在确认合法后下象棋。

参数:

  • move (string):UCI或SAN格式的移动

退货:成功消息,更新了电路板状态,如果移动非法,则出错

get_game_state

返回游戏的当前状态。

参数:无

退货:

  • 带有排名/文件标签的Unicode棋子可视化
  • 每侧捕获的碎片(显示在板的上方和下方)
  • 最后一步(SAN表示法)
  • 当前回合(白/黑)
  • 游戏状态(进行中/检查/检查/平局)
  • FEN符号(用于位置分析)

实现细节

  • 存储在内存中的单个全局游戏
  • 游戏重置时 new_game 被称为
  • 用途 python-chess 用于所有国际象棋逻辑和验证
  • 支持标准国际象棋规则,包括投掷、中途和升级