使用说明
国际象棋引擎MCP服务器
模型上下文协议(MCP)服务器为AI助手提供专业级的国际象棋分析,使用 鳕鱼 (α-β)和可选 莉拉国际象棋零/Lc0 (神经网络)。两个引擎共享相同的工具界面,并在配置Lc0时并排运行。
特性
Stockfish工具(始终可用)
| 工具 | 说明 |
|---|---|
sf_analyse_position |
分析任何位置(FEN→ 评估+最佳移动+顶线) |
sf_analyse_game |
完整游戏分析(PGN→ 逐个移动评估,准确率%,错误计数) |
sf_lookup_opening |
按名称或ECO代码搜索打开的数据库 |
sf_identify_opening |
从移动或PGN中识别开口 |
sf_generate_puzzle |
从位置生成战术谜题 |
Lc0工具(启用时 LC0_WEIGHTS_PATH 已设置)
| 工具 | 说明 |
|---|---|
lc0_analyse_position |
用Lc0神经网络分析位置 |
lc0_analyse_game |
使用Lc0评估的完整游戏分析 |
lc0_generate_puzzle |
使用Lc0的评估生成战术谜题 |
快速开始
选项1:Docker(推荐)
# Published image (Stockfish + Lc0 + Maia-1900 baked in; linux/amd64 + arm64)
docker run -i ghcr.io/alegerber/stockfish-lc0-mcp:latest
# …or build it yourself — Stockfish only
docker build -t stockfish-lc0-mcp .
docker run -i stockfish-lc0-mcp
# With Lc0 (mount weights file)
docker run -i \
-e LC0_WEIGHTS_PATH=/weights/lc0.pb.gz \
-v /path/to/weights:/weights \
stockfish-lc0-mcp
# Or with docker compose
docker compose up --build
选项2:npm(npx)
先决条件:Node.js 22+和本地安装的Stockfish——请参阅下面的安装命令 选项3npm包确实如此 不 捆绑引擎——Docker镜像就是这么做的。
npx stockfish-lc0-mcp
选项3:本地Node.js(源代码)
先决条件:Node.js 22+(CI在LTS 22、24、26上测试),安装Stockfish二进制文件。
# Install Stockfish
# macOS: brew install stockfish
# Ubuntu: sudo apt install stockfish
# Windows: download from https://stockfishchess.org/download/
# Install dependencies and build
npm install
npm run build
# Run (Stockfish only)
npm start
# Run with Lc0
LC0_WEIGHTS_PATH=/path/to/lc0.pb.gz npm start
配置
鱼类环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
STOCKFISH_PATH |
stockfish |
Stockfish二进制文件的路径 |
STOCKFISH_THREADS |
2 |
CPU线程数 |
STOCKFISH_HASH |
128 |
哈希表大小(MB) |
Lc0环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
LC0_WEIGHTS_PATH |
(未设置) | 通往a的道路 .pb.gz 权重文件-- 需要启用Lc0 |
LC0_PATH |
lc0 |
Lc0二进制文件的路径 |
LC0_BACKEND |
(自动) | Lc0后端: cuda, metal, cpu等等。 |
LC0_THREADS |
2 |
Lc0的CPU线程数 |
LC0_HASH |
128 |
Lc0的哈希表大小(MB) |
注: 这
depthLc0工具的参数通过指数表在内部映射到节点计数(深度1处有100个节点→ 1 000 000 因为MCTS深度与α-β深度不可比。
Claude桌面集成
添加到您的 claude_desktop_config.json:
Docker(仅限Stockfish)
{
"mcpServers": {
"chess": {
"command": "docker",
"args": ["run", "-i", "--rm", "stockfish-lc0-mcp"]
}
}
}
Docker(Stockfish+Lc0)
{
"mcpServers": {
"chess": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "LC0_WEIGHTS_PATH=/weights/lc0.pb.gz",
"-v", "/path/to/weights:/weights",
"stockfish-lc0-mcp"
]
}
}
}
npm(npx)
需要本地安装的Stockfish(请参阅 快速开始).集 STOCKFISH_PATH 显式:GUI启动的客户端(例如macOS上的Claude Desktop)不会继承您的shell PATH,所以光秃秃的 stockfish 即使查找失败 brew install stockfish 成功。
{
"mcpServers": {
"chess": {
"command": "npx",
"args": ["-y", "stockfish-lc0-mcp"],
"env": {
"STOCKFISH_PATH": "/opt/homebrew/bin/stockfish"
}
}
}
}
本地Node.js
{
"mcpServers": {
"chess": {
"command": "node",
"args": ["/path/to/stockfish-lc0-mcp/dist/index.js"],
"env": {
"STOCKFISH_PATH": "stockfish",
"STOCKFISH_THREADS": "2",
"STOCKFISH_HASH": "256",
"LC0_PATH": "lc0",
"LC0_WEIGHTS_PATH": "/path/to/lc0.pb.gz"
}
}
}
}
使用示例
鳕鱼
“分析此位置:rnbqkbnr/ppppppp/8/8/4P3/8/PPP1PPP/rnbqkbnr b KQkq-0 1”
“回顾这个游戏:1。e4 e5 2。Qh5 Nc6 3。Nf3 g6 4。Qh4 Be7。.."
“什么是任性的女王袭击?”
“什么是1。e4 e5 2。Nf3 Nc6 3。Bc4?"
“从这个位置创建一个战术谜题:[FEN]”
Lc0
“神经网络对这个位置有什么看法?”
“用Lc0分析这款游戏,并与Stockfish进行比较:1。e4 e5。.."
“在此位置使用Lc0查找战术:[FEN]”
建筑
src/
├── index.ts # MCP server entry, tool registration (Stockfish + Lc0)
├── types.ts # TypeScript interfaces (UciEngine, UciLine, UciScore, …)
├── constants.ts # Thresholds, defaults, LC0_DEPTH_TO_NODES mapping
├── schemas/
│ └── index.ts # Zod input validation schemas
├── services/
│ ├── engine.ts # BaseUciEngine, StockfishEngine, Lc0Engine
│ ├── chess-utils.ts # chess.js wrapper (PGN/FEN/SAN/openings)
│ └── formatting.ts # Markdown output formatting
└── tools/
├── analyse-position.ts # Single position analysis
├── analyse-game.ts # Full game analysis + accuracy model
├── openings.ts # Opening lookup & identification
└── puzzle.ts # Tactic puzzle generation
两台发动机均执行 UciEngine 接口,在工具层可互换——所有工具函数都接受 UciEngine 参数,所以 sf_* 和 lc0_* 工具与不同的引擎实例共享相同的逻辑。
发展
npm install # Install dependencies
npm run build # Compile TypeScript → dist/
npm test # Run unit tests (Vitest, 150+ tests)
npm run lint # ESLint
许可证
麻省理工学院