Token导航 LogoToken导航TokenDH.com
Chess MCP (General Jerel) logo
运维云端stdio官方级别未说明来源级核验

Chess MCP (General Jerel)

MCP Server

一个基于OpenAI Apps SDK构建的ChatGPT国际象棋应用,支持通过对话进行国际象棋对弈,包含交互式棋盘、AI对手建议和Stockfish引擎分析等功能。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
PythonCursor云端部署Cursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jerelvelarde

提供方

jerelvelarde

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 main.py

详细介绍

国际象棋MCP应用程序

使用OpenAI Apps SDK构建的ChatGPT国际象棋应用程序,允许您通过与交互式棋盘小部件的对话下棋。

现在遵循OpenAI Apps SDK最佳实践!

特性

  • 🎮 使用代数符号(e4、Nf3、O-O等)下棋
  • 📊 ChatGPT中的交互式棋盘小部件
  • 🤖 AI对手建议(ChatGPT可以玩招式)
  • 🔍 Stockfish引擎分析集成
  • 📝 移动历史跟踪
  • ✅ 完整的移动验证和游戏状态管理
  • 📋 游戏状态和玩家信息显示
  • 🧩 配对1个战术谜题(简单、中等、困难)

建筑

  • 后端:使用FastMCP和Python象棋的Python MCP服务器
  • 前端:使用chess.js+React棋盘的React组件
  • 构建系统:Vite提供最佳开发体验
  • 整合:带有适当钩子的OpenAI Apps SDK模式

项目结构

ChessMCP/
├── server/
│   ├── main.py              # Python MCP server (renamed from server.py)
│   └── requirements.txt     # Python dependencies
├── src/
│   ├── chess-board/         # Chess board component
│   │   └── index.tsx
│   ├── types.ts             # Shared TypeScript types
│   ├── use-openai-global.ts # Hook for window.openai access
│   ├── use-widget-state.ts  # Hook for widget state
│   └── use-widget-props.ts  # Hook for tool props
├── assets/                  # Build output (generated by Vite)
│   └── chess-board.html
├── vite.config.mts          # Vite configuration
├── package.json             # Root dependencies
├── tsconfig.json            # TypeScript config
└── README.md

安装

先决条件

  • Python 3.8+
  • Node.js 18+
  • Stockfish象棋引擎(可选,用于分析)

设置步骤

  1. 安装Python依赖项:
cd server
pip3 install -r requirements.txt
  1. 安装Stockfish (可选,用于发动机分析):
# macOS
brew install stockfish

# Ubuntu/Debian
sudo apt-get install stockfish
  1. 安装Node.js依赖项:
npm install
  1. 构建前端组件:
npm run build

这会产生 assets/chess-board.html 由服务器加载。

  1. MCP服务器已配置 在你的 ~/.cursor/mcp.json:
{
  "mcpServers": {
    "chess": {
      "command": "python3",
      "args": ["/path/to/ChessMCP/server/main.py"],
      "env": {
        "PYTHONPATH": "/path/to/ChessMCP/server"
      }
    }
  }
}

开发工作流程

一次构建(生产)

npm run build

开发模式(热重载)

# Terminal 1: Start Vite dev server
npm run dev

# Terminal 2: Start Python server
cd server
python3 main.py

为已建资产提供服务(用于测试)

npm run serve

本地测试(不需要ChatGPT!)

选项1:直接本地测试仪(推荐)

直接下棋,无需服务器/Outh:

python3 chess_local_test.py

命令:

♟️  > move e4
♟️  > move e5
♟️  > status
♟️  > stockfish
♟️  > puzzle medium

📖 请参阅: 位置_测试.md

选项2:HTTP客户端

通过HTTP进行测试(需要服务器运行):

# Terminal 1: Start server
cd server && python3 main.py

# Terminal 2: Start client
python3 chess_client.py

📖 请参阅: CLIENT_USAGE.md

使用ChatGPT进行测试

国际象棋MCP服务器现在包括 Google OAuth 2.1身份验证 用于安全的ChatGPT集成!

📖 快速入门: OAUTH_QUICK_START.md (5分钟)\ 📖 详细设置: GOOGLE_OAUTH_SETUP.md (一步一步)\ 📖 下一步: NEXT_STEPS.md (现在该怎么办)\ 📖 故障排除: CHATGPT_CONNECTOR_TROUBESHOTING.md

快速启动:

# 1. Set up Google OAuth credentials (see GOOGLE_OAUTH_SETUP.md)
# 2. Create server/.env with credentials

# Terminal 1: Start server
cd server
pip3 install -r requirements.txt
python3 main.py

# Terminal 2: Expose with ngrok
ngrok http 8000

# Update server/.env with ngrok URL, restart server

# Then add connector in ChatGPT Settings > Connectors
# URL format: https://YOUR-SUBDOMAIN.ngrok-free.app (no /mcp suffix)

用法

开始游戏

在ChatGPT中,通过第一步开始下棋:

ChessMCP e4

Let's play chess! I'll start with e4

交互式棋盘将显示您的移动。

采取行动

只需在代数符号中键入您的移动:

Nf3
e5
Bc4
Nc6

支持的符号:

  • 基本动作: e4, Nf3, d5
  • 捕获: exd5, Nxf7
  • 铸造: O-O (国王), O-O-O (答案)
  • 典当促销: e8=Q, a1=N
  • 检查: Qh5+
  • 核对: Qf7#

附加命令

检查游戏状态:

chess_status
What's the current status?

加载拼图:

Show me a chess puzzle
Give me a hard puzzle

获取发动机分析:

Ask Stockfish for the best move

重置游戏:

chess_reset
Let's start a new game

MCP工具

服务器公开了五个工具:

chess_move

  • 输入: move (字符串)-代数记数法
  • 输出:更新了FEN、移动历史、游戏状态的棋盘状态
  • 小部件:渲染交互式棋盘

chess_stockfish

  • 输入: depth (int,默认值:15)-分析深度
  • 输出:最佳移动、评估、主要变化
  • 小部件可访问:可以从小部件UI调用

chess_reset

  • 输入:无
  • 输出:重置确认
  • 小部件:显示新的起始位置

chess_status

  • 输入:无
  • 输出:游戏状态、当前回合、玩家姓名、移动次数、最近移动
  • 使用:检查游戏进度和谁在移动

chess_puzzle

  • 输入: difficulty (字符串:“易”、“中”、“难”)
  • 输出:带提示的一对一拼图位置
  • 小部件:显示棋盘上的拼图位置
  • 使用:练习战术模式和对垒识别

React Hooks(应用程序SDK模式)

该组件使用OpenAI Apps SDK挂钩来实现干净、反应式的代码:

useOpenAiGlobal(key)

被动访问window.openai属性:

const theme = useOpenAiGlobal("theme");
const displayMode = useOpenAiGlobal("displayMode");

useToolOutput()

获取当前工具输出:

const toolOutput = useToolOutput();
// Returns: { fen, move, status, turn }

useToolResponseMetadata()

获取工具响应元数据:

const metadata = useToolResponseMetadata();
// Returns: { move_history_list, legal_moves, etc. }

useWidgetState(defaultState)

跨会话持久化组件状态:

const [widgetState, setWidgetState] = useWidgetState({
  lastDepth: 15,
  analysisVisible: false
});

构建系统(Vite)

为什么选择Vite?

  • ⚡️ 开发过程中快速更换热模块
  • 📦 优化生产构建
  • 🎯 开箱即用的TypeScript支持
  • 🔧 更好的错误消息
  • 🎨 用于调试的源映射

构建输出

该构建创建了一个HTML文件,其中包含:

  • 捆绑的React组件
  • 所有JavaScript依赖项
  • 内联CSS
  • 天桥运行时的适当结构

配置

vite.config.mts 对于构建配置。设置:

  1. 捆绑包 src/chess-board/index.tsx
  2. 包括所有依赖项
  3. 用具有适当结构的HTML包装
  4. 输出到 assets/chess-board.html

服务器架构

资源处理

服务器遵循Apps SDK模式:

# Load HTML from assets
@lru_cache(maxsize=None)
def load_widget_html(component_name: str) -> str:
    html_path = ASSETS_DIR / f"{component_name}.html"
    return html_path.read_text(encoding="utf8")

# Proper MIME type
MIME_TYPE = "text/html+skybridge"

# Resource registration
@mcp._mcp_server.list_resources()
async def list_resources() -> List[types.Resource]:
    return [types.Resource(...)]

# Resource handler
async def handle_read_resource(req) -> types.ServerResult:
    html = load_widget_html("chess-board")
    return types.ServerResult(types.ReadResourceResult(...))

工具元数据

所有工具都包含适当的元数据:

{
    "openai/outputTemplate": "ui://widget/chess-board.html",
    "openai/widgetAccessible": True,
    "openai/resultCanProduceWidget": True,
    "openai/toolInvocation/invoking": "Making move...",
    "openai/toolInvocation/invoked": "Move played"
}

故障排除

小部件未渲染

  1. 确保组件已构建: npm run build
  2. 验证 assets/chess-board.html 存在
  3. 检查服务器日志是否有错误

未找到Stockfish

更新中的路径 server/main.py:

STOCKFISH_PATH = "/path/to/stockfish"

构建错误

如果发生TypeScript错误:

npm run typecheck

服务器无法启动

确保所有Python依赖项都已安装:

cd server
pip3 install -r requirements.txt

此版本的新变化

✨ 重组项目

  • 从移动 web/src/ 目录
  • 根水平 package.jsonvite.config.mts
  • 正确的Apps SDK项目结构

🎣 React挂钩

  • useOpenAiGlobal 用于反应式窗口.openai访问
  • useWidgetState 用于持久状态管理
  • useToolOutputuseToolResponseMetadata 用于道具

⚡ Vite构建系统

  • 将esbuild替换为Vite
  • 开发中的热模块更换
  • 更好的TypeScript支持
  • 更快的构建

🏗️ 服务器改进

  • 从以下位置加载适当的资源 assets/
  • 正确的MIME类型(text/html+skybridge)
  • 更好的错误处理
  • 用于开发的CORS中间件

📝 更好的类型

  • 全面的TypeScript类型
  • Apps SDK兼容接口
  • 国际象棋特定类型定义

贡献

您可以通过以下方式增强应用程序:

  • 开局分析和残局表库
  • 多个游戏会话
  • PGN进口/出口
  • 时间控制
  • 在线多人游戏
  • 更多拼图类型

许可证

MIT许可证-随意使用和修改!

资源

目录标签

目录标签

PythonCursor云端部署国际象棋本地部署AI对弈交互式棋盘棋局分析战术谜题

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP