sonirico/mcp-stockfish
简介
mcp-stockfish 是一个将 AI 助手与顶级国际象棋引擎 Stockfish 连接的 MCP 服务端。它让 LLM 不再仅凭概率预测走法,而是能实时调用专业的棋谱分析能力。无论是分析复杂局面、验证战术正确性,还是在对局中寻求最优解,开发者只需将其接入支持 MCP 的客户端(如 Claude Desktop),即可让 AI 拥有一个“专业棋手”的插件大脑。该工具配置简单,适合棋类爱好者或希望在 AI 应用中集成精准博弈分析的开发者。
核心亮点
- 将 AI 聊天能力与 Stockfish 专业引擎深度结合
- 实时分析棋局,提供客观且精准的最优走法
- 通过 MCP 标准协议实现快速部署与跨平台接入
- 消除 LLM 在复杂棋局中的幻觉,确保走法合法
完整文档
mcp-stockfish 🐟
一个让你的 AI 与 Stockfish 对话的 Model Context Protocol 服务器。显然,我们需要让这些硅基主宰们更方便地使用国际象棋引擎。
!Claude Desktop with mcp-stockfish
> 🧠⚡🖥️ *你的 LLM 在思考,Stockfish 在计算,而你则在假装能看懂随之而来的 15 步战术序列。*
这是什么?
它通过 MCP 协议在 AI 系统和 Stockfish 国际象棋引擎之间建立了一座桥梁。它支持多个并发会话,因为当你在苦思为什么你的马被白吃时,你的 AI 可能想同时分析 17 个局面。
基于 mark3labs/mcp-go 构建。因为重新造轮子是时间太多的人干的事。
功能特性
- 🔄 并发会话:运行多个 Stockfish 实例而不会让你的 CPU 崩溃
- ⚡ 全面支持 UCI:提供所有你需要的命令,剔除所有不需要的
- 🎯 真正可用:与你的上一个侧边项目不同,这个项目有完善的错误处理
- 📊 全 JSON 化:因为显然我们现在不能只使用纯文本了
- 🐳 支持 Docker:容器化部署,以防你不可避免地搞坏本地环境
支持的 UCI 命令 ♟️| Command | Description |
| -------------------- | ------------------------------------------------------------------------------ | |uci | 以 UCI 模式初始化引擎 |
| isready | 检查引擎是否就绪。返回 readyok |
| position startpos | 将棋盘设置为初始位置 |
| position fen [FEN] | 使用 FEN 记法设置位置 |
| go | 启动引擎计算最佳走法 |
| go depth [n] | 搜索 n 层深度。示例:go depth 10 |
| go movetime [ms] | 在固定的毫秒时间内思考。示例:go movetime 1000 |
| stop | 停止当前搜索 |
| quit | 关闭会话 |
Quick Start
Installationbashgit clone https://github.com/sonirico/mcp-stockfish
cd mcp-stockfish
make install
### 使用方法bash# Default mode (stdio, because we're old school)
mcp-stockfish
With custom Stockfish path (for the special snowflakes)
MCP_STOCKFISH_PATH=/your/special/stockfish mcp-stockfish
HTTP mode (for the web-scale crowd)
MCP_STOCKFISH_SERVER_MODE=http mcp-stockfish
## 配置 ⚙️
环境变量
bash
git clone https://github.com/sonirico/mcp-stockfish
cd mcp-stockfish
make installbash
# Default mode (stdio, because we're old school)
mcp-stockfish
With custom Stockfish path (for the special snowflakes)
MCP_STOCKFISH_PATH=/your/special/stockfish mcp-stockfish
HTTP mode (for the web-scale crowd)
MCP_STOCKFISH_SERVER_MODE=http mcp-stockfish#### Server 配置
MCP_STOCKFISH_SERVER_MODE: "stdio" 或 "http" (默认值: "stdio")
MCP_STOCKFISH_HTTP_HOST: HTTP 主机 (默认值: "localhost")
MCP_STOCKFISH_HTTP_PORT: HTTP 端口 (默认值: 8080)
#### Stockfish 🐟 配置
MCP_STOCKFISH_PATH: Stockfish 二进制文件路径 (默认值: "stockfish")
MCP_STOCKFISH_MAX_SESSIONS: 最大并发会话数 (默认值: 10)
MCP_STOCKFISH_SESSION_TIMEOUT: 会话超时时间 (默认值: "30m")
MCP_STOCKFISH_COMMAND_TIMEOUT: 命令超时时间 (默认值: "30s")
#### 日志
MCP_STOCKFISH_LOG_LEVEL: debug, info, warn, error, fatal
MCP_STOCKFISH_LOG_FORMAT: json, console
MCP_STOCKFISH_LOG_OUTPUT: stdout, stderr
工具参数
command: 要执行的 UCI 命令
session_id: 会话 ID (可选,若不提供则自动生成)
响应格式json{
"status": "success|error",
"session_id": "some-uuid",
"command": "what you asked for",
"response": ["what stockfish said"],
"error": "what went wrong (if anything)"
}
## 会话管理
json
{
"status": "success|error",
"session_id": "some-uuid",
"command": "what you asked for",
"response": ["what stockfish said"],
"error": "what went wrong (if anything)"
}Session 的功能符合预期:
- 根据需求启动 Stockfish 进程
- 在命令之间保持 UCI 状态
- 在结束(或超时)时进行清理
- 强制执行限制,防止出现 fork-bomb
集成
Claude Desktopjson{
"mcpServers": {
"chess": {
"command": "mcp-stockfish",
"env": {
"MCP_STOCKFISH_LOG_LEVEL": "info"
}
}
}
}
## 开发bashmake deps # Get dependencies
make build # Build the thing
make test # Run tests (when they exist)
make fmt # Make it pretty
## Credits 🐟
json
{
"mcpServers": {
"chess": {
"command": "mcp-stockfish",
"env": {
"MCP_STOCKFISH_LOG_LEVEL": "info"
}
}
}
}bash
make deps # Get dependencies
make build # Build the thing
make test # Run tests (when they exist)
make fmt # Make it pretty由 Stockfish 提供支持,这个 chess engine 比我们两个加起来还要强。由真正懂 chess 的人创建,不像这个 wrapper。
感谢:
- Stockfish team,感谢他们制作了如此出色的 chess engines
- MCP SDK for Go,感谢它处理 protocol,让我无需操心
- 咖啡
License
MIT - 随你怎么用,但坏了别赖我。