国际象棋MCP服务器
一个模型上下文协议(MCP)服务器,允许您与LLM下棋。公平的警告:他们不是很擅长(可以在完整的游戏中摸索,但对于普通的人类玩家来说,要击败他们是相当微不足道的),而且这个服务器并没有针对他们的国际象棋表现进行优化。使用Python构建 python-chess 用于国际象棋逻辑和移动验证的库。
特性
- 新名称:开始一场新的国际象棋比赛
- make_move:通过自动验证采取行动(支持UCI和SAN表示法)
- get_game_state:查看当前棋盘,包括排名/档案标签、捕获的棋子、最后一步、回合、游戏状态和FEN符号
安装
- 安装依赖项:
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]移动符号
服务器接受两种格式的移动:
- UCI符号:
e2e4,g1f3,e1g1(用于铸造) - 标准代数符号(SAN):
e4,Nf3,O-O(用于铸造)
工具
新名称
以标准起始位置开始新的国际象棋游戏。
参数:无
退货:带有初始板状态的确认消息
make_move
在确认合法后下象棋。
参数:
move(string):UCI或SAN格式的移动
退货:成功消息,更新了电路板状态,如果移动非法,则出错
get_game_state
返回游戏的当前状态。
参数:无
退货:
- 带有排名/文件标签的Unicode棋子可视化
- 每侧捕获的碎片(显示在板的上方和下方)
- 最后一步(SAN表示法)
- 当前回合(白/黑)
- 游戏状态(进行中/检查/检查/平局)
- FEN符号(用于位置分析)
实现细节
- 存储在内存中的单个全局游戏
- 游戏重置时
new_game被称为 - 用途
python-chess用于所有国际象棋逻辑和验证 - 支持标准国际象棋规则,包括投掷、中途和升级
