五子棋MCP服务器
五子棋(Five-in-A-Row)游戏服务器,使LLM能够通过模型上下文协议(MCP)进行游戏。具有智能威胁分析和战略行动建议功能。
特性
- 15x15标准板:经典五子棋游戏
- MCP工具集成:通过MCP工具完全控制游戏
- 威胁分析:检测四分球、四分球闭合、三分球和间隙模式
- 移动建议:基于战术分析的优先级移动建议
- 多模型支持:通过OpenRouter与任何LLM(Gemini、Grok、Kimi等)合作
- CLI和GUI:命令行和图形界面
- 双人模式:观看两位LLM相互竞争
建筑
src/
├── game/
│ ├── gomoku.py # Core game logic
│ └── patterns.py # Pattern detection engine
├── mcp_server/
│ └── server.py # FastMCP server with game tools
├── prompts/
│ ├── system_prompt.py # AI player system prompt
│ └── user_prompt.py # Turn prompt template
├── agents.py # LLM Agent for tool interactions
├── manager.py # Game state coordinator
├── cli.py # Command-line interface
└── gui.py # Graphical interface安装
环境设置 uv
uv sync
uv pip install -e .OpenRouter API密钥
export OPENROUTER_API_KEY="YOUR_API_KEY"跑
uv run src/cli.py # Command-line interface (PvE or AI vs AI)
uv run src/gui.py # Graphical interface (PvE or AI vs AI)双人模式(LLM vs LLM)
可以观看两个LLM相互凹陷的对决。
从CLI:
uv run src/cli.py
# Select "2. Two Player 모드 (AI vs AI)"在GUI中:
uv run src/gui.py
# Open http://localhost:8000
# Select "⚔️ AI vs AI" mode
# Choose models for Black and White
# Click "게임 시작"运作原理
- MCP服务器公开游戏工具:
set_stone,analyze_threats,get_suggested_moves等等。 - LLM代理接收当前游戏状态和回合提示
- 代理通过以下方式分析威胁
analyze_threats()并通过以下方式获得排名get_suggested_moves() - 根据优先级(阻挡对手四人>制造自己的威胁>战略定位),特工放置一块石头
- 模式检测器评估:Open-4、Closed-4、Open-3、Closed-3、间隙模式
威胁优先级
| 优先级 | 威胁类型 | 描述 |
|---|---|---|
| 10 | 获胜 | 连续完成5项 |
| 9 | 四挡 | 阻止对手的开放/封闭四挡 |
| 8 | 创建四个 | 创建一个开放的四个 |
| 7 | 封锁开放-3 | 阻止对手的开放3 |
| 6 | 创造开放3 | 用开放3建立压力 |
| 3-5 | 战略 | 中心控制,模式扩展 |
示例游戏
- 双子座-2.5-flash
- grok4快
- kimi-k2思考
MCP配置
添加到MCP客户端配置中:
{
"mcp-gomoku": {
"command": "uv",
"args": [
"--directory",
"/path/to/gomoku-mcp-server/",
"run",
"src/server.py"
]
}
}可用的MCP工具
| 工具 | 说明 |
|---|---|
restart() | 将游戏重置为初始状态 |
visualize() | 基于文本的电路板表示 |
get_state() | 完整游戏状态 |
set_stone(x, y, turn) | 放置一块石头 |
get_valid_moves() | 空缺职位列表 |
get_turn() | 当前转弯状态 |
analyze_threats() | 两名玩家的威胁分析 |
get_suggested_moves(count) | 优先级排序的移动建议 |
