Stockfish协议服务

一个通过MCP协议连接AI系统与Stockfish国际象棋引擎的服务,支持多并发会话和完整的UCI命令。

  • by sonirico
  • Go
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 sonirico/mcp-stockfish

使用说明

mcp鱼🐟

一个模型上下文协议服务器,让你的AI与Stockfish对话。因为显然我们需要让我们的硅霸主更容易使用国际象棋引擎。

🧠⚡🖥️ Stockfish计算出,你的法学硕士认为,你假装理解了由此产生的15步战术序列。

这是什么?

这通过MCP协议在人工智能系统和Stockfish国际象棋引擎之间建立了一座桥梁。它可以处理多个并发会话,因为你的AI可能想同时分析17个位置,而你还在弄清楚你的骑士为什么上吊。

建立在 mark3labs/mcp go因为重新发明轮子是为时间太多的人准备的。

特性

  • 🔄 并发会话:运行多个Stockfish实例,而不会让CPU哭泣
  • ⚡ 全面的UCI支持:所有你需要的命令,没有你不需要的
  • 🎯 实际上有效:与你上一个副项目不同,这个项目有适当的错误处理
  • 📊 JSON一切:因为显然我们不能再只使用纯文本了
  • 🐳 Docker就绪:容器化,当您不可避免地破坏本地设置时

支持的UCI命令♟️

命令 描述
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 关闭会话

快速开始

安装

git clone https://github.com/sonirico/mcp-stockfish
cd mcp-stockfish
make install

用法

# 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

配置⚙️

环境变量

服务器配置

  • 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:stdout、stderr

刀具参数

  • command:要执行的UCI命令
  • session_id:会话ID(可选,如果没有,我们会补一个)

响应格式

{
  "status": "success|error", 
  "session_id": "some-uuid",
  "command": "what you asked for",
  "response": ["what stockfish said"],
  "error": "what went wrong (if anything)"
}

会话管理

会话会按照您的期望进行:

  • Spawn Stockfish按需加工
  • 在命令之间保持UCI状态
  • 完成后(或他们超时时)进行清理
  • 执行限制,这样你就不会自己动手

整合

克劳德桌面

{
  "mcpServers": {
    "chess": {
      "command": "mcp-stockfish",
      "env": {
        "MCP_STOCKFISH_LOG_LEVEL": "info"
      }
    }
  }
}

发展

make deps     # Get dependencies
make build    # Build the thing
make test     # Run tests (when they exist)
make fmt      # Make it pretty

鸣谢🐟

由...驱动 长筒鱼,比我们俩加起来还要强大的象棋引擎。由真正了解国际象棋的人创建,不像这个包装器。

多亏了

许可证

麻省理工学院-你想做什么就做什么,只要它坏了就别怪我。