国际象棋数据服务

通过标准化的MCP接口提供国际象棋玩家数据、游戏记录和其他公共信息访问,支持AI助手搜索和分析国际象棋信息。

  • by pab1it0
  • Python
  • 本地部署
  • 91 星标
  • 更新于
在 GitHub 查看 pab1it0/chess-mcp

使用说明

Chess.com MCP服务器

A. 模型上下文协议 (MCP)服务器。

这通过标准化的MCP接口提供了对Chess.com玩家数据、游戏记录和其他公共信息的访问,允许AI助手搜索和分析国际象棋信息。

https://github.com/user-attachments/assets/3b33361b-b604-465c-9f6a-3699b6907757

特性

  • [x] 访问玩家资料、统计数据和游戏记录
  • [x] 按日期和玩家搜索游戏
  • [x] 检查玩家在线状态
  • [x] 获取俱乐部和冠名球员的信息
  • [x] 无需身份验证(使用Chess.com的公共API)
  • [x] Docker容器化支持
  • [x] 为AI助手提供交互式工具

工具列表是可配置的,因此您可以选择要向MCP客户端提供哪些工具。

用法

Docker(推荐)

最简单的下棋方法 克劳德桌面 正在使用Docker。如果你没有安装Docker,你可以从 Docker官方网站.

编辑您的Claude Desktop配置文件:

  • 雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

然后添加以下配置:

{
  "mcpServers": {
    "chess": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "pab1it0/chess-mcp"
      ]
    }
  }
}

使用UV运行

或者,您可以直接使用UV运行服务器。编辑您的Claude Desktop配置文件(上面列出的位置)并添加服务器配置:

{
  "mcpServers": {
    "chess": {
      "command": "uv",
      "args": [
        "--directory",
        "<full path to chess-mcp directory>",
        "run",
        "src/chess_mcp/main.py"
      ]
    }
  }
}

注意:如果你看到 Error: spawn uv ENOENT 在……里面 克劳德桌面,您可能需要指定到的完整路径 uv 或设置环境变量 NO_UV=1 在配置中。

发展

欢迎投稿!如果您有任何建议或改进,请打开问题或提交拉取请求。

此项目使用 uv 管理依赖关系。安装 uv 按照您平台的说明进行操作:

curl -LsSf https://astral.sh/uv/install.sh | sh

然后,您可以创建一个虚拟环境,并使用以下命令安装依赖项:

uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows
uv pip install -e .

测试

该项目包括一个测试套件,可确保功能并帮助防止回归。

使用pytest运行测试:

# Install development dependencies
uv pip install -e ".[dev]"

# Run the tests
pytest

# Run with coverage report
pytest --cov=src --cov-report=term-missing

可用工具

玩家信息

  • get_player_profile -从Chess.com获取玩家资料
  • get_player_stats -从Chess.com获取玩家的统计数据
  • is_player_online -检查玩家当前是否在Chess.com上在线
  • get_titled_players -从Chess.com获取有头衔的玩家列表

游戏

  • get_player_current_games -在Chess.com上获取玩家正在进行的游戏
  • get_player_games_by_month -从Chess.com获取特定月份的玩家游戏
  • get_player_game_archives -在Chess.com上获取玩家每月可用的游戏档案列表
  • download_player_games_pgn -从Chess.com下载特定月份所有游戏的PGN文件

俱乐部

  • get_club_profile -在Chess.com上获取俱乐部信息
  • get_club_members -在Chess.com上获取俱乐部会员

许可证

麻省理工学院