使用说明
国际象棋MCP(模型上下文协议)
使用模型上下文协议(MCP)构建的强大国际象棋引擎和游戏服务器。与人工智能下棋,分析位置,并将象棋功能集成到您的人工智能应用程序中。
🎯 特性
核心象棋引擎
- 完整的国际象棋规则:完成所有国际象棋规则的执行,包括投掷、通行和典当推广
- 移动验证:自动验证所有国际象棋棋步
- 游戏状态跟踪:跟踪检查、核对、相持和平局条件
- 移动历史记录:使用代数符号完成移动历史记录
多种游戏模式
- 人类vs人类:经典双人象棋
- 人类vs人工智能:与电脑对战,难度可调(1-5级)
- AI vs AI:观看AI对战
高级AI功能
- 智能AI引擎:具有alpha-beta修剪的Minimax算法
- 置换表:通过位置缓存将性能提高2-5倍
- 迭代深化:具有最佳时间管理的渐进式深度搜索
- 内存优化:LRU驱逐和受控内存使用
- 5难度级别:从初学者(随机)到专家(深度8)
- 自动播放:AI在人工智能模式下自动响应
- 手动控制:使用
ai人工智能手动移动命令 - 职位分析:AI可以分析位置并建议最佳行动
高级功能
- 职位分析:分析职位并获得最佳行动建议
- FEN支持:使用FEN符号加载和保存位置
- PGN支持:以PGN格式导入和导出游戏
- 移动撤消:撤消移动以探索变化
- 合法移动显示:显示任何职位的所有合法动作
漂亮的UI
- ASCII国际象棋:使用Unicode棋子的清晰易读的棋盘表示
- 颜色编码输出:不同类型的信息有不同的颜色
- 交互式命令:易于使用的命令系统
- 实时状态:实时游戏状态更新
🚀 安装
先决条件
- Node.js 18+
- npm或纱线
设置
# Clone the repository
git clone <repository-url>
cd Chess-MCP
# Install dependencies
npm install
# No build step needed - uses tsx for direct TypeScript execution
📖 用法
交互式CLI模式(建议播放)
立即开始下棋:
# Start the interactive chess interface
npm run cli
# You'll see the chess prompt: chess>
# Type 'help' to see all available commands
作为MCP服务器
国际象棋MCP可以集成到任何兼容MCP的客户端中:
# Run the MCP server directly with tsx
npx tsx src/index.ts
# Or use the npm script
npm start
📚 文档
有关详细文档,请参阅 文档 文件夹:
- 文档概述 -完整的文档索引
- 快速入门指南 -迅速起身并奔跑
- 用户指南 -完整的用户手册
- 开发者指南 -面向开发人员和贡献者
- api参考 -完整的API文件
- 建筑 -系统架构与设计
- 人工智能实施 -国际象棋AI详情
- 测试指导 -测试和质量保证
- 性能指南 -性能优化
- 项目分析 -详细的项目分析
- MCP设置 -模型上下文协议设置
- 酷炫功能 -高级功能展示
🎮 可用命令
基本游戏命令
move <move>-采取行动(例如。,move e2e4,move Nf3)board-显示当前电路板status-显示游戏状态history-显示移动历史记录undo-撤消上次移动reset-重置到起始位置
分析命令
moves <square>-显示正方形的合法移动(例如。,moves e2)all-moves-显示所有合法动作analyze [depth]-分析位置(默认深度:3)
游戏模式命令
mode <type> [ai-level]-设置游戏模式:mode human-vs-human-两名人类玩家mode human-vs-ai 3-对抗AI(1-5级)mode ai-vs-ai 5-观看AI对战
ai-让AI玩一个动作(用于手动控制)
导入/导出命令
fen <position>-FEN的负载位置pgn <game>-从PGN加载游戏save-将当前游戏保存到PGN
🔧 MCP工具
国际象棋MCP为AI集成提供了以下工具:
游戏管理
start_new_game-使用指定模式开始新游戏reset_game-重置到起始位置get_game_status-获取当前游戏状态
移动操作
make_move-下象棋get_legal_moves-获得方块或所有棋子的合法移动undo_move-撤消上次移动
董事会和分析
get_board_state-获取当前板状态analyze_position-分析头寸并提出行动建议get_move_history-获取完整的移动历史记录
AI功能
ai_move-让AI发挥作用load_position-FEN的负载位置save_game-将游戏保存到PGNload_game-从PGN加载游戏
🎯 示例用法
对抗AI
快速入门:
# Start the interactive CLI
npm run cli
# Set up Human vs AI (Level 2 - moderate difficulty)
chess> mode human-vs-ai 2
# Make your first move
chess> move e2e4
# AI automatically responds!
# Continue playing
chess> move g1f3
# AI automatically responds!
# Check the board
chess> board
# See game status
chess> status
AI难度级别:
- 级别1:随机移动(非常适合初学者)
- 2级:基本策略(适合休闲游戏)
- 级别3:中等难度(具有挑战性)
- 级别4:先进的战略(极具挑战性)
- 五级:专家级(极具挑战性)
人工智能手动控制:
# Set mode but control when AI plays
chess> mode human-vs-ai 3
chess> move e2e4
chess> ai # Tell AI to play now
chess> move g1f3
chess> ai # Tell AI to play again
观看AI与AI:
chess> mode ai-vs-ai 3
chess> ai # First AI move
chess> ai # Second AI move
chess> ai # Continue watching...
开始游戏
chess> mode human-vs-ai 3
Game mode set to: human-vs-ai (AI level: 3)
chess> move e2e4
Move e2e4 made successfully!
Chess Board
a b c d e f g h
┌─────────────────┐
8│ ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ │ 8
7│ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ │ 7
6│ · · · · · · · · │ 6
5│ · · · · · · · · │ 5
4│ · · · · ♙ · · · │ 4
3│ · · · · · · · · │ 3
2│ ♙ ♙ ♙ ♙ · ♙ ♙ ♙ │ 2
1│ ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ │ 1
└─────────────────┘
a b c d e f g h
Current turn: Black
AI played: e7e5
分析职位
chess> analyze 4
Position Analysis (Depth: 4):
Evaluation: +0.3
Best moves:
1. Nf3
2. Nc3
3. d4
获得合法行动
chess> moves e2
Legal moves for e2:
1. e3
2. e4
🏗️ 建筑
国际象棋MCP采用模块化架构构建:
ChessEngine:使用chess.js的核心国际象棋逻辑ChessUI:用户界面和显示逻辑ChessAI:采用极小极大算法的AI对手ChessMCPServer:MCP协议实施InteractiveCLI:本地测试接口
🎨 用户体验提示
从用户的角度让它更酷
-
视觉吸引力
- 美丽的Unicode棋子
- 不同信息类型的颜色编码输出
- 干净、可读的电路板布局
-
易用性
- 简单直观的命令
- 有用的错误消息
- 自动完成建议
-
高级功能
- 基于评估分数的职位分析
- 多种AI难度级别
- 游戏导入/导出功能
-
交互式元素
- 实时游戏状态更新
- 用有用的反馈移动验证
- 撤消探索功能
-
教育价值
- 法律行动亮点
- 职位分析说明
- 移动历史跟踪
🔮 未来的增强功能
- web界面:基于浏览器的国际象棋界面
- 打开数据库:内置开本
- 残局桌面:完美的残局
- 联网对战:网络多人游戏
- 锦标赛模式:循环赛
- 拼图模式:国际象棋谜题和战术
- 语音命令:语音控制象棋
- 移动应用程序:iOS/Android国际象棋应用程序
🤝 贡献
欢迎投稿!请随时提交pull请求或打开bug和功能请求的问题。
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙏 致谢
🔧 故障排除
常见问题
“找不到命令:npm”
- 请确保已安装Node.js:
node --version - 从以下位置安装Node.js nodejs.org
“找不到模块”错误
- 跑
npm install安装依赖项 - 跑
npm run build编译TypeScript
交互式CLI未启动
- 使用
npm run cli(不是npm run dev) - 确保你在国际象棋MCP目录中
AI没有响应
- 检查游戏模式:
mode human-vs-ai 2 - 在人类vs人工智能模式下,人工智能会自动响应
- 使用
ai人工智能手动移动命令
移动不起作用
- 检查合法行动:
moves <square> - 使用正确的格式:
move e2e4或move Nf3 - 检查游戏状态:
status
获取帮助
- 类型
help在命令列表的国际象棋CLI中 - 使用
status查看当前游戏状态 - 使用
moves <square>看到法律行动 - 使用
undo如果你犯了错误
下棋快乐! ♔♕♖♗♘♙