一个通过Model Context Protocol(MCP)协议让AI与Stockfish国际象棋引擎通信的服务器。因为显然我们需要让硅基主宰者更容易地访问国际象棋引擎。

🧠⚡🖥️ 你的大型语言模型在思考,Stockfish在计算,而你假装理解了那一系列15步的战术序列。
这创建了一个连接AI系统和Stockfish国际象棋引擎的桥梁,通过MCP协议实现。它可以处理多个并发会话,因为你的AI可能希望同时分析十七个位置,而你还在试图弄清楚为什么你的马被挂了。
基于mark3labs/mcp-go构建。因为重新发明轮子是那些时间太多的人做的事情。
| 命令 | 描述 |
|---|---|
uci | 初始化UCI模式下的引擎 |
isready | 检查引擎是否准备好。返回readyok |
position startpos | 设置棋盘到初始位置 |
position fen [FEN] | 使用FEN表示法设置位置 |
go | 启动引擎以计算最佳走法 |
go depth [n] | 搜索深度为n半着。例如:go depth 1 0 |
go movetime [ms] | 思考固定的时间,单位为毫秒。例如:go movetime 1000 |
stop | 停止当前搜索 |
quit | 关闭会话 |
git clone https://github.com/sonirico/mcp-stockfish
cd mcp-stockfish
make install
# 默认模式(stdio,因为我们是老派)
mcp-stockfish
# 自定义Stockfish路径(针对特殊雪花)
MCP_STOCKFISH_PATH=/your/special/stockfish mcp-stockfish
# HTTP模式(针对web规模人群)
MCP_STOCKFISH_SERVER_MODE=http mcp-stockfish
MCP_STOCKFISH_SERVER_MODE: "stdio" 或 "http"(默认:"stdio")MCP_STOCKFISH_HTTP_HOST: HTTP主机(默认:"localhost")MCP_STOCKFISH_HTTP_PORT: HTTP端口(默认:8080)MCP_STOCKFISH_PATH: Stockfish二进制文件路径(默认:"stockfish")MCP_STOCKFISH_MAX_SESSIONS: 最大并发会话数(默认:10)MCP_STOCKFISH_SESSION_TIMEOUT: 会话超时时间(默认:"30m")MCP_STOCKFISH_COMMAND_TIMEOUT: 命令超时时间(默认:"30s")MCP_STOCKFISH_LOG_LEVEL: 调试、信息、警告、错误、致命MCP_STOCKFISH_LOG_FORMAT: json、控制台MCP_STOCKFISH_LOG_OUTPUT: 标准输出、标准错误command: 要执行的UCI命令session_id: 会话ID(可选,如果没有提供,我们会生成一个){
"status": "success|error",
"session_id": "some-uuid",
"command": "你请求的内容",
"response": ["Stockfish说了什么"],
"error": "出了什么问题(如果有)"
}
会话按预期工作:
{
"mcpServers": {
"chess": {
"command": "mcp-stockfish",
"env": {
"MCP_STOCKFISH_LOG_LEVEL": "info"
}
}
}
}
make deps # 获取依赖项
make build # 构建项目
make test # 运行测试(当它们存在时)
make fmt # 使其美观
由Stockfish提供动力,这是一个比我们两个加起来都强的国际象棋引擎。由真正懂国际象棋的人创建,而不是这个包装器。
感谢:
MIT - 随意使用,但出了问题别怪我。