一个模型上下文协议(MCP)服务器,通过统一的工具接口为AI代理提供多种经典游戏、Gymnasium环境和棋盘游戏的访问。
# 克隆仓库
git clone https://github.com/itsish/mcp-games-public
cd mcp-games-public
# 安装依赖
pip install -r requirements.txt
# 运行服务器
python -m src.main
在你的claude_desktop_config.json中添加:
{
"mcpServers": {
"mcp-games": {
"command": "python",
"args": ["-m", "src.main"],
"cwd": "/path/to/mcp-games-public"
}
}
}
npx @modelcontextprotocol/inspector python -m src.main
list_games - 列出所有可用的游戏start_game - 开始一个新的游戏实例get_game_state - 获取当前游戏状态并进行可视化渲染reset_game - 将游戏重置到初始状态end_game - 结束并清理游戏实例cartpole_move_left - 向左移动小车cartpole_move_right - 向右移动小车cartpole_get_state - 获取小车位置、速度、杆角度mountaincar_accelerate_left - 向左加速汽车mountaincar_accelerate_right - 向右加速汽车mountaincar_coast - 不加速滑行breakout_start - 开始新的Breakout游戏breakout_move - 移动挡板(向左/向右/停留)breakout_get_state - 获取游戏状态和视觉帧blackjack_start - 开始新的二十一点游戏blackjack_hit - 抽另一张牌blackjack_stand - 保留当前手牌blackjack_get_state - 获取当前手牌和庄家可见的牌tictactoe_start - 开始新的Tic-Tac-Toe游戏tictactoe_place - 在位置放置X或Otictactoe_get_state - 获取棋盘状态frozenlake_move_up - 向上移动玩家frozenlake_move_down - 向下移动玩家frozenlake_move_left - 向左移动玩家frozenlake_move_right - 向右移动玩家chess_move - 进行国际象棋移动(例如,“e2e4”)chess_get_legal_moves - 获取当前位置的所有合法移动chess_analyze_position - 获取位置分析和评估connectfour_start - 开始新的四子连线游戏connectfour_drop_piece - 在列中放下棋子(0-6)connectfour_get_state - 获取棋盘状态和视觉connectfour_get_valid_moves - 获取有效列列表connectfour_undo_move - 撤销最后一步connectfour_get_winner - 检查游戏是否有赢家pettingzoo_chess_start - 开始PettingZoo国际象棋游戏pettingzoo_chess_move - 使用动作索引进行移动pettingzoo_chess_get_state - 获取棋盘观察pettingzoo_chess_get_legal_actions - 获取合法动作索引# 开始一个游戏
response = await start_game(game_type="CartPole-v1", player_name="AI_Agent")
# 获取视觉状态
state = await cartpole_get_state(game_id=response.game_id)
# 返回带有当前帧的base64 PNG图像的状态
# 进行移动
result = await cartpole_move_right(game_id=response.game_id)
# 对于国际象棋
await chess_move(game_id=chess_id, move="e2e4")
legal_moves = await chess_get_legal_moves(game_id=chess_id)
所有游戏支持响应中的可视化渲染:
requirements.txt获取包依赖MIT许可证
欢迎贡献!请随意:
对于问题或疑问,请在GitHub上打开一个issue。