mcp-stockfish 是一个 MCP(Model Context Protocol)服务器,旨在让 AI 系统与 Stockfish 国际象棋引擎进行通信。它通过 MCP 协议在 AI 与 Stockfish 之间建立桥梁,使 AI 能够调用 Stockfish 的棋力计算能力。
用途
该项目的主要用途是让 AI 系统(如 LLM)能够访问 Stockfish 国际象棋引擎,进行棋局分析、走法计算等任务。AI 负责思考,Stockfish 负责精确计算。
主要能力
- 并发会话:支持同时运行多个 Stockfish 实例,可处理多个并发分析请求,默认最大会话数为 10。
- 完整 UCI 支持:提供所需的全部 UCI 命令支持。
- 错误处理:具备适当的错误处理机制,保证稳定运行。
- JSON 响应:所有响应采用 JSON 格式。
- Docker 就绪:提供容器化部署支持,便于环境隔离和快速启动。
使用方式
该项目基于 mark3labs/mcp-go 构建,可通过环境变量进行配置:
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:日志级别,可选 debug、info、warn、error、fatal。MCP_STOCKFISH_LOG_FORMAT:日志格式,可选 json、console。MCP_STOCKFISH_LOG_OUTPUT:日志输出位置,可选 stdout、stderr。
工具参数包括:
command:要执行的 UCI 命令。session_id:会话 ID(可选,若未提供则自动生成)。
会话管理功能包括:按需生成 Stockfish 进程、在命令间保持 UCI 状态、任务完成后清理(或超时清理)、限制资源以防进程爆炸。
适用场景
适用于需要将国际象棋引擎能力集成到 AI 系统中的场景,例如 AI 对弈分析、棋局评估、走法建议等。支持多会话并发,适合需要同时分析多个棋局的场景。
限制
依赖 Stockfish 二进制文件及 MCP 协议环境。具体功能和使用细节需参考项目仓库文档,其他限制暂未提供。