article
README
🚀 Roo Code AI地下城的RPG MCP服务器
本项目实现了MCP(模型上下文协议)服务器,用于在Roo Code中创建类似AI地下城风格的角色扮演游戏(RPG)体验。
🚀 快速开始
前提条件
在开始之前,请确保你已经在VS Code环境中安装并配置了Roo Code。Roo Code是一个由人工智能驱动的编码助手,它将与这些MCP服务器进行交互。
- 安装Roo Code:
- 从VS Code市场安装。
- 或者通过命令行界面(CLI)安装:
code --install-extension RooVeterinaryInc.roo-cline
- 配置AI提供商:安装完成后,在Roo Code扩展设置中添加你的AI模型API密钥(例如,OpenAI、Anthropic)。
- 有关Roo Code的更多详细信息,请访问Roo Code网站或官方文档。
设置说明
- 为两个服务器安装依赖项:
cd game-state-server npm install npm run build cd ../combat-engine-server npm install npm run build - 配置MCP服务器:
每个服务器都可以通过环境变量或其各自目录中的
.env文件进行配置。- 游戏状态服务器(game - state - server):
DATABASE_PATH:SQLite数据库文件的路径(例如,./data/game.db)。默认值为./data/game.db。PORT:服务器监听的端口(例如,3001)。默认值为3001。
- 战斗引擎服务器(combat - engine - server):
PORT:服务器监听的端口(例如,3002)。默认值为3002。game - state - server的.env文件示例:
DATABASE_PATH=./data/my_game.db PORT=3001 - 游戏状态服务器(game - state - server):
- 启动MCP服务器:
要运行服务器,请导航到它们各自的目录并使用
npm start或node dist/index.js。 例如:cd game-state-server npm start # 在新的终端中: cd ../combat-engine-server npm start - Roo Code集成:
要在Roo Code中使用这些服务器,你需要在
mcp_settings.json文件中进行配置。该文件通常位于C:\Users\YOUR_USERNAME\AppData\Roaming\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json。 以下是每个服务器的配置示例。将cwd(当前工作目录)路径调整为你克隆或放置rpg - mcp - servers仓库并构建服务器的位置。注意:{ "mcpServers": { // ... 其他服务器 ... "rpg-game-state": { "name": "rpg-game-state-server", "command": "node", "args": [ "dist/index.js" ], "cwd": "PATH_TO_YOUR_PROJECT/rpg-mcp-servers/game-state-server", "enabled": true, "alwaysAllow": [ "create_character", "get_character", "get_character_by_name", "list_characters", "update_character", "add_item", "get_inventory", "save_world_state", "get_world_state", "create_npc", "create_npc_group", "get_npc", "list_npcs", "update_npc", "remove_npc", "save_story_progress", "add_quest", "get_active_quests", "update_quest_state", "assign_quest_to_character" ] }, "rpg-combat-engine": { "name": "rpg-combat-engine-server", "command": "node", "args": [ "dist/index.js" ], "cwd": "PATH_TO_YOUR_PROJECT/rpg-mcp-servers/combat-engine-server", "enabled": true, "alwaysAllow": [ "roll_dice", "attack_roll", "damage_roll", "saving_throw", "get_combat_log", "start_combat", "end_turn", "next_turn" ] } // ... 其他服务器 ... } }- 将
PATH_TO_YOUR_PROJECT替换为你系统上rpg - mcp - servers目录的实际绝对路径。例如,如果你将其克隆到C:\projects\rpg - mcp - servers,那么game - state - server的cwd应为C:/projects/rpg - mcp - servers/game - state - server。 alwaysAllow数组列出了Roo Code每次使用时无需用户明确许可的工具。你可以自定义此列表。start_combat工具已添加到rpg - combat - engine - server的mcp_settings.json示例中。请确保该工具在服务器中实际实现。
- 将
- 为AI地下城主创建自定义模式(例如,在AI地下城实验仓库中使用
dungeon - master - mode.json配置),以便通过Roo与这些服务器进行交互。
使用方法
设置完成后,你可以:
- 创建新角色
- 管理物品栏
- 进行战斗遭遇
- 跟踪故事进度
- 并且所有操作在不同会话之间都能保持持久状态!
✨ 主要特性
- 持久状态:游戏数据存储在SQLite数据库中
- 战斗引擎:完整实现D20系统
- 关注点分离:叙事(AI)与机制(MCP服务器)分离
- 可扩展性:易于添加新功能
🎲 最新更新
- 修复骰子表示法:现在支持
2d20kh1(优势)和2d20kl1(劣势) - 添加
roll_check工具:简化能力/技能检查 - 增强物品栏功能:添加了
remove_item和update_item工具 - 怪物管理:添加了创建、获取、更新和列出NPC/怪物的工具。
- 故事和任务管理:添加了保存故事进度和管理任务的工具。
- 修正优势/劣势规则:正确实现了D&D 5e规则
完整详情请参阅
update - summary.md。
📚 详细文档
项目结构
- game - state - server/:基于SQLite的持久游戏状态管理
- combat - engine - server/:D&D风格的战斗机制和骰子滚动
Scan to contact