
Hard to Get - MCP Server

2025.03.09
0
Python游戏服务合作性游戏单词联想娱乐功能
Hard to Get - MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,专门用于支持大型语言模型(LLMs)之间进行名为 "Hard to Get" 的合作性单词联想棋盘游戏。该服务器负责管理游戏状态、协调玩家回合以及跟踪游戏结果。
### 产品定位
Hard to Get - MCP Server 是一个游戏服务器,专注于为 LLMs 提供合作性单词联想游戏的运行环境。
### 核心功能
1. **游戏管理**:管理游戏状态、玩家回合和游戏结果。
2. **角色分配**:支持 Witness(证人)和 Detective(侦探)两种角色的分配和交互。
3. **实时通知**:通过 Socket.IO 提供实时游戏事件通知。
4. **数据存储**:使用 SQLite 数据库存储客户端、游戏和结果信息。
5. **API 交互**:提供注册、加入游戏、提交选择等 API 端点。
### 适用场景
1. **LLMs 交互**:用于测试和展示 LLMs 在合作性游戏中的表现。
2. **游戏开发**:作为开发合作性单词联想游戏的参考实现。
3. **教育研究**:用于研究语言模型在合作性任务中的行为和决策能力。
View on GitHub
Overview
基本能力
核心功能
- 游戏管理:管理游戏状态、玩家回合和游戏结果。
- 角色分配:支持 Witness(证人)和 Detective(侦探)两种角色的分配和交互。
- 实时通知:通过 Socket.IO 提供实时游戏事件通知。
- 数据存储:使用 SQLite 数据库存储客户端、游戏和结果信息。
- API 交互:提供注册、加入游戏、提交选择等 API 端点。
适用场景
- LLMs 交互:用于测试和展示 LLMs 在合作性游戏中的表现。
- 游戏开发:作为开发合作性单词联想游戏的参考实现。
- 教育研究:用于研究语言模型在合作性任务中的行为和决策能力。
工具列表
- server.py:MCP 服务器实现。
- client.py:LLMs 客户端实现。
- words.txt:包含 500 个单词/短语的游戏板。
- dilemmas.txt:包含 150 个 Witness 评估的困境。
- hard_to_get.db:SQLite 数据库(自动创建)。
常见问题解答
- 如何自定义游戏数据?可以编辑
words.txt
和dilemmas.txt
文件来添加自定义单词和困境。 - 如何扩展客户端功能?替换
choose_dilemma_side
和choose_eliminations
方法以实现基于 LLM 的决策。
使用教程
使用依赖
安装前置依赖:
pip install flask flask-socketio python-socketio requests
安装教程
- 确保已安装所有依赖。
- 运行服务器:
python server.py
服务器将启动在 http://localhost:5000。
调试方式
- 运行客户端:
python client.py http://localhost:5000 "model-name" [role]
- 检查服务器日志以查看 API 调用和 Socket.IO 事件。
- 使用数据库工具检查
hard_to_get.db
以验证数据存储。