Hard to Get - MCP Server

Hard to Get - MCP Server

site icon
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

基本能力

核心功能

  1. 游戏管理:管理游戏状态、玩家回合和游戏结果。
  2. 角色分配:支持 Witness(证人)和 Detective(侦探)两种角色的分配和交互。
  3. 实时通知:通过 Socket.IO 提供实时游戏事件通知。
  4. 数据存储:使用 SQLite 数据库存储客户端、游戏和结果信息。
  5. API 交互:提供注册、加入游戏、提交选择等 API 端点。

适用场景

  1. LLMs 交互:用于测试和展示 LLMs 在合作性游戏中的表现。
  2. 游戏开发:作为开发合作性单词联想游戏的参考实现。
  3. 教育研究:用于研究语言模型在合作性任务中的行为和决策能力。

工具列表

  1. server.py:MCP 服务器实现。
  2. client.py:LLMs 客户端实现。
  3. words.txt:包含 500 个单词/短语的游戏板。
  4. dilemmas.txt:包含 150 个 Witness 评估的困境。
  5. hard_to_get.db:SQLite 数据库(自动创建)。

常见问题解答

  1. 如何自定义游戏数据?可以编辑 words.txtdilemmas.txt 文件来添加自定义单词和困境。
  2. 如何扩展客户端功能?替换 choose_dilemma_sidechoose_eliminations 方法以实现基于 LLM 的决策。

使用教程

使用依赖

安装前置依赖:

pip install flask flask-socketio python-socketio requests

安装教程

  1. 确保已安装所有依赖。
  2. 运行服务器:
python server.py

服务器将启动在 http://localhost:5000。

调试方式

  1. 运行客户端:
python client.py http://localhost:5000 "model-name" [role]
  1. 检查服务器日志以查看 API 调用和 Socket.IO 事件。
  2. 使用数据库工具检查 hard_to_get.db 以验证数据存储。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。