返回市场
角色扮演游戏-MCP服务器

角色扮演游戏-MCP服务器

作者:Mnehmos23 星标更新:2025-11-14

项目介绍

🎯 RPG MCP 服务器 - 高级 D&D 5e 战斗与游戏状态管理

最先进的用于AI驱动的D&D体验的MCP服务器套件! 特点包括3D空间战斗、ASCII战场可视化以及完整的角色管理。

🚀 最新重大更新

🗺️ 新功能:ASCII战场可视化

📍 **战场地图** (X→, Y↓):

 0│· · · · · · · · · · · · · · · 
 1│· · · · · · · · · · · · · · · 
 2│· · · · · · · · █ · · · · · · 
 3│· · · · · · · · █ · · · · · · 
 4│· · · · · ≡ ≡ · █ · · · · · · 
 5│· · · · · ≡ L · █ · · · · · · 
 6│· · · K · · · · · · · · · · · 
 7│· · · · · · · · · · · · · · · 
 8│· · · · · · · · · · · · S · · 
 9│· · · · · · · · · · · · · · · 
  └0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 

**图例**:█=墙,■=柱子,≡=楼梯,字母=生物

⚔️ 新功能:3D空间战斗引擎

  • 高度系统:楼梯、柱子、飞行生物
  • 视线:射线投射并计算遮挡
  • 反击:移动验证
  • 侧翼检测:战术位置加成
  • 区域效果目标:法术几何和目标定位

🧠 新功能:可读战术智能

🎯 **利拉·斯威夫特箭** 站在坐标(6,5,5)处的楼梯上。

⚔️ **可见敌人**: 
  凯尔·铁盾(近距离25英尺)- 清晰射击,
  石像鬼(中距离38英尺)- 清晰射击

🏃 **移动选项**:柱子(32英尺远),墙(12英尺远)

🔧 增强功能

  • 修正骰子记号2d20kh1(优势)和2d20kl1(劣势)
  • 完整的回合管理:行动、额外行动、移动、反应
  • 增强的库存:完全物品管理,包括装备状态
  • 怪物/NPC系统:基于模板的生物创建
  • 故事与任务管理:进度跟踪和目标
  • 错误修复:战场初始化现在保留生物

🏗️ 项目架构

  • game-state-server/:基于SQLite的持久化角色表单、库存、遭遇
  • combat-engine-server/:高级3D空间战斗,包含D&D 5e机制

🎮 关键特性

📊 完整的角色管理

  • 角色表单:完整的D&D 5e属性(力量、敏捷、体质、智力、感知、魅力)
  • 库存系统:物品、装备、数量、装备状态
  • 世界状态:位置跟踪、NPC关系、环境数据
  • 故事进度:章节/检查点跟踪,带有叙事总结

⚔️ 高级战斗系统

  • 3D战场:X、Y、Z定位,地形特征
  • 回合管理:先攻顺序,行动经济跟踪
  • 空间智能:距离计算,移动验证
  • 战术分析:侧翼、掩护、高度优势检测
  • 视觉战斗地图:ASCII战场可视化

🎲 D&D 5e机制

  • 完整的骰子系统:所有标准骰子,包括优势/劣势
  • 战斗动作:攻击掷骰、伤害、豁免掷骰、法术效果
  • 移动规则:速度限制、反击、困难地形
  • 区域效果:具有适当几何形状的法术(球形、锥形、直线)

🛠️ 前置条件

需要安装Roo代码:

  • VS Code Marketplace安装
  • 或通过CLI:code --install-extension RooVeterinaryInc.roo-cline
  • 配置AI提供商(OpenAI、Anthropic等)
  • 访问Roo代码文档获取设置详情

🚀 快速设置

1. 安装并构建服务器

# 游戏状态服务器
cd game-state-server
npm install && npm run build

# 战斗引擎服务器  
cd ../combat-engine-server
npm install && npm run build

2. 配置环境(可选)

在每个服务器目录中创建.env文件:

game-state-server/.env:

DATABASE_PATH=./data/my_rpg.db
PORT=3001

combat-engine-server/.env:

PORT=3002

3. 启动服务器

# 终端1
cd game-state-server && npm start

# 终端2  
cd combat-engine-server && npm start

4. 配置Roo代码MCP设置

添加到你的mcp_settings.json(通常位于%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json):

{
  "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", "remove_item", "update_item",
        "save_world_state", "get_world_state", "update_world_state",
        "create_npc", "create_npc_group", "get_npc", "list_npcs", "update_npc", "remove_npc",
        "create_encounter", "add_to_encounter", "get_encounter_state", "get_active_encounter",
        "start_turn", "end_turn", "next_turn", "consume_action", "end_encounter", "apply_damage",
        "save_story_progress", "add_quest", "get_active_quests", "update_quest_state", "assign_quest_to_character"
      ]
    },
    "r-战斗引擎": {
      "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", "roll_check", "attack_roll", "initiative_roll", "damage_roll", "saving_throw",
        "use_reaction", "use_legendary_action", "trigger_lair_action", "execute_multiattack",
        "initialize_battlefield", "place_creature", "move_creature", "check_line_of_sight",
        "get_area_effect_targets", "get_tactical_summary", "check_flanking", "check_height_advantage",
        "describe_battlefield", "describe_detailed_tactical_situation", "generate_battlefield_map",
        "get_combat_log", "clear_combat_log"
      ]
    }
  }
}

📝 注意:用实际路径替换PATH_TO_YOUR_PROJECT(例如,C:/projects/rpg-mcp-servers)。

🎯 使用示例

创建一个角色

// 创建一个新的D&D角色,带有完整属性
create_character({
  name: "利拉·斯威夫特箭",
  class: "游侠", 
  stats: { strength: 14, dexterity: 18, constitution: 16, intelligence: 12, wisdom: 15, charisma: 10 }
})

设置3D战斗

// 初始化战场,带有地形
initialize_battlefield({
  width: 15, height: 12,
  terrain: [
    { type: "墙", position: {x: 8, y: 2, z: 0}, dimensions: {width: 1, height: 4, depth: 5} },
    { type: "楼梯", position: {x: 5, y: 4, z: 0}, dimensions: {width: 2, height: 2, depth: 5} }
  ]
})

// 在3D空间放置生物
place_creature({
  creature_id: "游侠利拉", name: "利拉·斯威夫特箭",
  x: 6, y: 5, z: 5, size: "中型", speed: 30, reach: 5
})

// 获取战术情况
describe_detailed_tactical_situation({ creature_id: "游侠利拉" })

生成视觉地图

// 创建ASCII战场可视化
generate_battlefield_map()

高级战斗机制

// 使用优势掷骰
roll_dice({ notation: "2d20kh1+5", reason: "优势攻击" })

// 检查视线和遮挡
check_line_of_sight({ from_creature: "游侠利拉", to_creature: "哥布林1" })

// 验证移动和反击
move_creature({ creature_id: "战士凯尔", target_x: 10, target_y: 8, speed: 25 })

🔧 高级特性

🎲 骰子系统

  • 标准D&D记号:1d20+53d61d8+3
  • 优势/劣势:2d20kh1+52d20kl1+5
  • 临界命中:自动伤害加倍
  • 自定义修饰符:情境加成

⚔️ 战斗机制

  • 先攻:自动回合顺序管理
  • 行动经济:行动、额外行动、移动、反应
  • 反击:移动验证和触发
  • 区域效果:法术目标定位,带有几何计算
  • 遮挡与隐蔽:视线计算,部分遮挡

🗺️ 空间智能

  • 3D定位:完整的X、Y、Z坐标系统
  • 地形特征:墙、柱子、楼梯、坑洞、门
  • 移动验证:路径寻找,避开障碍物
  • 战术分析:侧翼、高度优势、范围计算

🎮 与AI地牢集成

完美适用于与AI地牢实验的集成:

  1. 为DM AI创建自定义Roo代码模式
  2. 利用MCP工具以保持一致的机制
  3. 跨游戏会话维护持久状态
  4. 生成战术描述以供AI叙述整合

🎯 独特之处

  • 视觉战斗地图:ASCII战场,带有地形和生物
  • 真正的3D战斗:高度、飞行、多层遭遇
  • 可读性:战术描述适合AI集成
  • 完整的D&D 5e:完整规则实现,带有持久状态
  • AI优化:专门设计用于LLM驱动的游戏玩法
  • 生产就绪:强大的错误处理和状态管理

🚀 开始使用

准备好创建终极的AI驱动D&D体验了吗?克隆此仓库并按照上述设置说明操作。几分钟内,你将拥有一个完整的RPG系统,带有视觉战斗地图和高级战术智能!


🎲 开启AI驱动的D&D冒险吧! 🐉