返回市场
mcp- STOCKFISH

mcp- STOCKFISH

作者:sonirico4 星标更新:2025-06-29

项目介绍

mcp-stockfish 🐟

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

Claude Desktop with mcp-stockfish

🧠⚡🖥️ 你的大型语言模型在思考,Stockfish在计算,而你假装理解了那一系列15步的战术序列。

这是什么?

这创建了一个连接AI系统和Stockfish国际象棋引擎的桥梁,通过MCP协议实现。它可以处理多个并发会话,因为你的AI可能希望同时分析十七个位置,而你还在试图弄清楚为什么你的马被挂了。

基于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 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)

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: 调试、信息、警告、错误、致命
  • 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": "出了什么问题(如果有)"
}

会话管理

会话按预期工作:

  • 按需启动Stockfish进程
  • 在命令之间保持UCI状态
  • 当你完成时清理(或超时时)
  • 执行限制以防止你自我fork-bomb

集成

Claude Desktop

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

开发

make deps     # 获取依赖项
make build    # 构建项目
make test     # 运行测试(当它们存在时)
make fmt      # 使其美观

致谢 🐟

Stockfish提供动力,这是一个比我们两个加起来都强的国际象棋引擎。由真正懂国际象棋的人创建,而不是这个包装器。

感谢:

许可证

MIT - 随意使用,但出了问题别怪我。