______________________________________________________________________
标题:神秘谋杀侦探游戏 表情符号🔍 颜色来源:紫色 颜色:红色 sdk:毕业 sdk版本:“6.0.2” app_file:app.py 固定:false 标签:
- mcp在行动轨道创意
- 代理
- 游戏
- 十一实验室
- 文本转语音
- 主控程序
- 声音
- 侦探
- 能动性
______________________________________________________________________
🔍 谋杀神秘侦探游戏
🎉 MCP 1岁生日黑客马拉松参赛作品 --轨道2:MCP在行动(mcp-in-action-track-creative) 🔗 另见: 谋杀之谜MCP服务器 --轨道1:构建MCP一款语音优先的谋杀悬疑游戏 模型上下文协议(MCP)调查犯罪,审问人工智能嫌疑人,并以90年代的点击式冒险风格解决程序生成的谜团。
______________________________________________________________________
📺 演示视频
👉 观看演示视频 *(必须提交)* 视频显示:揭开一个新的谜团,用声音审问嫌疑人,搜索地点,并提出指控。
______________________________________________________________________
🐦 社交媒体
🐦 查看X/Twitter上的公告 *(必须提交)*
______________________________________________________________________
👥 团队
|HuggingFace用户名| |---------------------| |@YOUR_HF.USERNAME|
*(添加所有团队成员HuggingFace用户名)*
______________________________________________________________________
🔌 什么是MCP服务器?
该项目围绕 谋杀之谜MCP服务器 --一个独立的游戏引擎,通过 模型上下文协议.
为什么选择MCP?
MCP(模型上下文协议) 是一个开放标准,允许AI代理以一致的方式使用工具和访问资源。通过将游戏构建为MCP服务器:
- 随时随地玩 --同样的游戏可以在Claude Desktop、Cursor、自定义代理或Gradio UI中运行
- 代理不可知 --任何支持MCP的LLM都可以成为玩游戏的“侦探”
- 可组合 --工具如
interrogate_suspect和search_location可以与其他MCP服务器混合使用 - 关注点分离 --游戏逻辑与UI完全解耦
MCP服务器的功能
MCP服务器(murder-mystery-mcp/)手柄 所有游戏逻辑:
| 责任 | 它是如何运作的 |
|---|---|
| 神秘一代 | 创建独特的受害者、嫌疑人、动机和遭遇图 |
| 嫌疑人审讯 | 管理情绪状态、对话记忆和角色内反应 |
| 线索发现 | 跟踪已搜索的位置和找到的内容 |
| RAG存储器 | 在所有对话中进行语义搜索,以发现矛盾 |
| 指控验证 | 检查玩家是否正确识别了凶手 |
| 图像生成 | 创建20世纪90年代冒险游戏风格的肖像和场景 |
如何使用
选项1:Gradio UI(此项目)
- UI调用MCP工具来启动游戏、审问嫌疑人等。
- 语音输入被转录并作为问题发送
- ElevenLabs TTS会回复回复
选项2:克劳德桌面
- 将MCP服务器添加到您的Claude Desktop配置中
- 自然聊天: *“开始神秘游戏”*, *“跟管家谈谈”*
- Claude使用MCP工具玩游戏
选项3:任何MCP客户端
- 用任何语言构建自己的客户端
- 通过stdio连接并以编程方式调用工具
______________________________________________________________________
🏆 黑客马拉松赛道
这是a的一部分 两个项目提交:
| 轨道 | 项目 | 描述 |
|---|---|---|
| 轨道1:构建MCP | 神秘谋杀案 | 配备所有游戏工具的独立MCP服务器 |
| 轨道2:MCP在行动 | 这个项目 | 使用MCP服务器的Gradio UI |
轨道1:构建MCP→ 独立存储库
这 谋杀之谜MCP服务器 是作为MCP工具的完整游戏引擎:
| 类别 | 工具/资源 |
|---|---|
| 游戏流程 | start_game, get_game_state, interrogate_suspect, search_location, make_accusation |
| 调查 | search_memory, find_contradictions, get_cross_references, get_timeline |
| 图像 | generate_portrait, generate_scene, generate_title_card |
| 资源 | mystery://state, mystery://suspects, mystery://clues, mystery://timeline |
在Claude Desktop中使用它 完全通过聊天玩游戏!
轨道2:MCP在行动——这个项目
Gradio谋杀神秘应用 是一个完整的AI代理应用程序,它:
- 🎙️ 语音优先游戏 ElevenLabs TTS适用于所有角色
- 🕵️ 自主主体 策划审讯、线索发现和指控
- 🧠 RAG供电存储器 发现可疑陈述中的矛盾
- 🎨 MCP驱动的图像生成 通过图像生成器MCP服务器
- 📊 可视化案例文件 有时间线、线索和嫌疑人档案
______________________________________________________________________
✨ 特性
- 语音优先游戏 --使用麦克风与游戏大师交谈;ElevenLabs TTS会回复回复
- 程序性神秘生成 --每个游戏都会创建一个独特的受害者、嫌疑人、位置、线索和遭遇图
- MCP驱动的游戏引擎 --所有游戏逻辑都作为可组合的MCP工具公开,任何代理都可以使用
- 嫌疑人审讯 --嫌疑人有个性、情绪状态(信任/紧张)和对过去对话的记忆
- RAG内存搜索 --在所有对话和线索中进行语义搜索,以发现矛盾
- 1990年代冒险游戏艺术 --通过HuggingFace以LucasArts复古风格生成的肖像和场景
- 时间线和案例文件 --可视化调查时间表和案件文件,随着您发现线索而更新
______________________________________________________________________
🏗️ 建筑
┌─────────────────────────────────────────────────────────────────────┐
│ MURDER MYSTERY SYSTEM │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────┐ ┌─────────────────────────────┐ │
│ │ Gradio UI │ │ Claude Desktop / Cursor │ │
│ │ (this project) │ │ or any MCP-compatible │ │
│ │ │ │ agent │ │
│ └──────────┬──────────┘ └──────────────┬──────────────┘ │
│ │ │ │
│ │ MCP Protocol │ MCP Protocol │
│ │ (tools + resources) │ (tools + resources)
│ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ MURDER MYSTERY MCP SERVER │ │
│ │ (murder-mystery-mcp/) │ │
│ ├──────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ TOOLS: RESOURCES: │ │
│ │ • start_game • mystery://{id}/state │ │
│ │ • interrogate_suspect • mystery://{id}/suspects │ │
│ │ • search_location • mystery://{id}/clues │ │
│ │ • make_accusation │ │
│ │ • search_memory (RAG) │ │
│ │ • find_contradictions │ │
│ │ • get_timeline │ │
│ │ • generate_portrait │ │
│ │ • generate_scene_image │ │
│ │ • generate_title_card │ │
│ │ │ │
│ │ INTERNALS: │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Mystery │ │ RAG Memory │ │ Emotional │ │ │
│ │ │ Oracle │ │ (per-suspect│ │ Tracker │ │ │
│ │ │ (truth) │ │ partitions)│ │ │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ IMAGE GENERATOR MCP (mcp_servers/image_generator.py) │ │
│ │ • generate_character_portrait │ │
│ │ • generate_scene │ │
│ │ • generate_title_card │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ ELEVENLABS MCP (external: mcp-elevenlabs) │ │
│ │ • get_voices │ │
│ │ • text_to_speech │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘关键设计原则
- MCP优先 --游戏引擎是一个MCP服务器。UI只是一个可能的客户端。
- Oracle模式 --神秘的“真相”(谁有罪,秘密)存在于一个
MysteryOracle面向玩家的代理无法直接访问。 - 分区RAG --每个嫌疑人都有自己的矢量存储分区,以防止信息泄露。
- 情绪状态 --嫌疑人追踪信任和紧张,影响他们的反应。
______________________________________________________________________
🚀 快速开始
先决条件
- Python 3.10+
- API密钥(全部必需):
- 开放人工智能 --神秘生成和LLM响应 - 十一实验室 --角色语音合成 - 抱抱脸 --肖像和场景艺术一代
安装
快速入门(推荐):
# Clone the repository
git clone https://github.com/your-username/murder-mystery.git
cd murder-mystery
# One command to set up everything!
make setup
# Create your .env file with API keys
cp env.example .env
# Edit .env with your API keys (OPENAI_API_KEY, ELEVENLABS_API_KEY, HF_TOKEN)这 make setup 命令将:
- 创建Python虚拟环境
- 安装所有依赖项
- 设置开始所需的一切
手动安装(替代):
如果您更喜欢手动设置:
# Clone both repositories
git clone https://github.com/your-username/murder-mystery.git
git clone https://github.com/your-username/murder-mystery-mcp.git
# Set up the MCP server first
cd murder-mystery-mcp
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp env.example .env
# Edit .env with your OPENAI_API_KEY
# Set up the UI
cd ../murder-mystery
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp env.example .env
# Edit .env with all API keys跑步
选项1:Gradio UI(推荐播放)
cd murder-mystery
# With hot reloading (auto-restarts on file changes)
make dev
# Or run normally
make run
# Or manually
source venv/bin/activate
python app.py
# Open http://localhost:7860 in your browser可用的生成命令:
make setup-设置虚拟环境并安装依赖项make dev-热重新加载运行(监视文件更改)make run-正常运行应用程序make install-安装/更新依赖项(假设venv存在)make clean-删除虚拟环境和缓存文件make check-env-验证.env文件是否具有所需的API密钥
选项2:克劳德桌面(通过聊天播放)
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"murder-mystery": {
"command": "python",
"args": ["/path/to/murder-mystery-mcp/server.py"],
"env": {
"OPENAI_API_KEY": "your-key-here",
"HF_TOKEN": "your-token-here"
}
}
}
}然后在Claude Desktop中,说: *“开始一个新的谋杀神秘游戏”*
______________________________________________________________________
🎮 如何玩
- 输入API密钥 --第一次加载时,转到🔑 “设置”选项卡,然后输入API密钥(或在中进行设置
.env) - 开始新游戏 --点击 “揭开新的神秘面纱” 生成一个新的案例
- 听介绍 --游戏大师介绍受害者和嫌疑人
- 通过说话进行调查 --使用麦克风提问:
- *“告诉我嫌疑犯的情况”* - *“让我和管家谈谈”* - *“在图书馆寻找线索”* - *“马库斯对他的不在场证明说了什么?”*
- 发现矛盾 --使用RAG内存捕捉谎言嫌疑人
- 提出指控 --自信时,用证据指控凶手
赢/输条件
- 赢:用支持性证据正确辨认凶手
- 失去:3项错误指控,你被撤职
______________________________________________________________________
🔧 MCP工具参考
游戏工具
| 工具 | 说明 |
|---|---|
start_game | 开始一个新的谋杀悬疑(可选:时代、语气) |
get_game_state | 获取嫌疑人、线索、位置、进展 |
interrogate_suspect | 向嫌疑人提问 |
search_location | 在某个地点寻找线索 |
make_accusation | 正式指控嫌疑人 |
search_memory | RAG搜索过去的语句 |
find_contradictions | 检测语句中的不一致 |
get_timeline | 获取调查时间表 |
图像生成工具
| 工具 | 说明 |
|---|---|
generate_scene_image | 生成位置艺术品 |
generate_portrait | 生成嫌疑人肖像 |
generate_title_card | 生成神秘标题卡 |
MCP资源
| URI模式 | 描述 |
|---|---|
mystery://{session_id}/state | 当前游戏状态(JSON) |
mystery://{session_id}/suspects | 带有公开信息的嫌疑人名单 |
mystery://{session_id}/clues | 发现线索 |
______________________________________________________________________
📁 项目结构
murder-mystery/ # Gradio UI (this repo)
├── app.py # Main entry point
├── app/
│ ├── main.py # App wiring
│ ├── ui_components.py # Gradio components
│ └── event_handlers.py # UI event handlers
├── services/
│ ├── mcp_client.py # MCP client for game server
│ ├── game_router.py # Routes calls to MCP
│ ├── tts_service.py # ElevenLabs TTS
│ ├── voice_service.py # Voice matching
│ └── image_agent.py # Image MCP client
├── ui/
│ ├── formatters.py # HTML formatting
│ └── styles/ # CSS styling
├── mcp_servers/
│ └── image_generator.py # Standalone image MCP server
└── config/
└── settings.py # Environment config
murder-mystery-mcp/ # Game Engine MCP Server
├── server.py # MCP server with tools
├── game/
│ ├── state.py # Game session state
│ ├── memory.py # Partitioned RAG
│ ├── emotional_tracker.py # Trust/nervousness
│ └── contradiction_detector.py # LLM contradiction detection
├── image_generator.py # Image generation
└── requirements.txt______________________________________________________________________
🔐 API密钥
这三把钥匙都是 必需的 玩:
| 关键 | 环境变量 | 目的 |
|---|---|---|
| OpenAI | OPENAI_API_KEY | 神秘一代,LLM回应 |
| ElevenLabs | ELEVENLABS_API_KEY | 角色语音合成 |
| 拥抱的脸 | HF_TOKEN | 肖像和场景艺术一代 |
产生 .env 通过文件或输入🔑 UI中的“设置”选项卡。
______________________________________________________________________
🎨 定制
神秘设置
开始游戏时,您可以自定义:
- 时代:维多利亚时代、20世纪20年代、赛博朋克、现代等。
- 音调:黑色、舒适、哥特式恐怖、喜剧等。
- 难度:简单、正常、困难(影响RAG提示)
艺术风格
所有生成的图像都使用 1990年代LucasArts点击式冒险游戏 美学(思考 *猴岛的秘密*, *狩魔猎人*).
______________________________________________________________________
🤝 贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 提交拉取请求
______________________________________________________________________
📜 许可证
麻省理工学院
______________________________________________________________________
🙏 致谢
- 语言链/语言图 --代理编排
- Gradio --Web UI框架
- 十一实验室 --语音合成
- 抱抱脸 --图像生成
- 主控程序 --工具组合的模型上下文协议
