使用说明
D&D角色MCP服务器
用于管理《龙与地下城》第5版角色的MCP(模型上下文协议)服务器。此服务器提供用于加载角色、执行掷骰子、技能检查、能力检查、保存投掷和管理角色状态的工具。
服务器使用 dnd53_json_schema 定义用于保存和加载字符。
示例
用户:
我们来玩DND吧。你的角色可以是Thorin。他的角色表在 examples\characters\thorin.json.
LLM玩家:
我很想和你一起玩d&d!让我加载Thorin的角色表,这样我就可以正确地扮演他了。
load_character
Request
{
"file_path": "examples\\characters\\thorin.json"
}
Response
Successfully loaded character: Thorin Ironforge (Level 5)
get_character_info
Request
{}
Response
{
"name": "Thorin Ironforge",
"nickname": null,
"race": "Dwarf",
"level": 5,
"classes": ["Fighter 5"],
"alignment": "lawful good",
"hit_points": { "max": 52, "current": 52 },
"armor_class": 18,
"ability_scores": {
"str": 16, "dex": 10, "con": 16, "int": 12, "wis": 14, "cha": 10
},
"proficiency_bonus": 3
}
杰出的!我已经准备好扮演Thorin Ironforge,一个坚定的5级矮人战士。
调整我闪闪发光的链甲,举起我值得信赖的战锤
“你好,朋友!我是铁山的索林·铁炉堡,是所有威胁这片土地和平的人的无辜者和敌人的坚定捍卫者。我的锤子尝过许多兽人和妖精的血,我的盾牌已经抵挡住了无数对我同伴的打击。”
若有所思地抚摸着我的辫子胡子
“今天我们面临什么样的冒险?你是DM,还是你想让我也扮演这个角色?我已经准备好迎接任何等待我们的故事了!”
DM:
你醒来后发现自己身处一个未知的地方。你似乎在地下一个被发光的蓝色水晶照亮的大洞穴里。你的背包和武器就在你身边,但你不知道它们或你是怎么到这里的。您当前所在的房间只有一个入口。请进行感知检查。
LLM玩家:
索林的眼睛猛地睁开,本能地伸手去拿战锤,看着周围奇怪的环境
“借着莫拉丁的胡子……我在九地狱的哪里?”
他慢慢地坐起来,打量着闪闪发光的水晶洞,他经验丰富的战士本能开始发挥作用
“这些水晶……我以前从未见过这样的水晶。我是怎么带着所有的装备完好无损地来到这里的?”
索林小心地收拾好装备,系上盾牌,举起战锤,然后集中注意力更彻底地检查洞穴
roll_skill_check
Request
{
"skill": "perception"
}
Response
{
"roll_name": "Perception Check",
"d20_roll": {
"result": 18,
"rolls": [18],
"type": "normal",
"used_roll": 18
},
"base_modifier": 5,
"flat_modifiers": [],
"dice_modifiers": [],
"total": 23,
"breakdown": "18 (d20) + 5 (base) = 23",
"skill": "Perception",
"ability": "WIS",
"ability_modifier": 2,
"proficiency_bonus": 3,
"is_proficient": true
}
索林敏锐的眼睛以熟练的精确度扫视着洞穴,他的矮人血统在这些地下深处对他很有帮助。
“嗯……确实不错——总共23个。即使在这个陌生的地方,我的眼睛也一如既往地敏锐。”
他说话声音低沉而谨慎
“这里有些不对劲。这些晶体在蓝光中脉动的方式……几乎有节奏,就像心跳一样。空气的味道也不一样。古老,但并不陈旧。我敢打赌,这里有魔法在起作用。”
朋友,我对这个神秘水晶洞的敏锐感知揭示了什么?我是否发现了入口、隐藏通道、其他生物的迹象或我可能是如何到达这里的线索的任何细节?
特性
- 角色管理:从JSON文件加载并保存D&D 5e字符
- 高级骰子滚动:灵活的修改器系统,支持优势、劣势和自定义修改器
- 技能检查:所有18种D&D 5e技能,包括熟练度和能力修正计算
- 能力检查:使用修饰语直接检查能力得分
- 法术和豁免:在适用的情况下,通过熟练度奖金节省投掷次数
- 攻击骰:武器攻击滚带熟练度加成
- 复杂改性剂:支持骰子修改器(bardic灵感、指导、祝福)和扁平奖金
- 字符信息:访问角色统计数据、法术、装备等
- 热点管理:更新和跟踪角色命中点
修改器系统
服务器使用灵活的修饰符字符串系统,支持:
- 优势/劣势:
"advantage"或"disadvantage" - 扁平改性剂:
"+2","-1","+3" - 骰子修饰剂:
"guidance:1d4","bardic:1d8","bless:1d4" - 组合:
"advantage +2 bardic:1d6 guidance:1d4"
示例:
# Simple advantage
roll_skill_check("perception", "advantage")
# Complex combination
roll_skill_check("athletics", "advantage +2 bardic:1d8 guidance:1d4")
# Multiple dice bonuses
roll_saving_throw("wis", "bless:1d4")
安装
- 安装所需的依赖项:
pip install -r requirements.txt
- 运行服务器:
python main.py
要将服务器与Claude桌面一起使用,请将以下内容添加到Claude_desktop_config.json中
{
"mcpServers": {
"dnd": {
"command": "python",
"args": [
"[Path to server.py]"
]
}
}
}
可用工具
角色管理
load_character(file_path)-从JSON文件加载字符get_character_info()-获取基本字符信息save_character(file_path)-将当前字符保存到JSON文件update_hit_points(new_current)-更新角色的当前命中点
骰子滚动和检查
roll_skill_check(skill, modifiers="")-使用灵活的修饰符滚动技能检查roll_ability_check(ability, modifiers="")-使用灵活的修改器滚动能力检查roll_saving_throw(ability, modifiers="")-使用灵活的修改器进行节省投掷roll_attack(weapon_name="", modifiers="")-用熟练的武器发起攻击list_common_modifiers()-常见D&D修饰符参考create_custom_modifier(name, dice="", flat=0, description="")-创建自定义修改器
字符信息
get_character_spells()-按级别组织所有角色法术get_character_equipment()-获取武器、装备和宝藏list_available_skills()-列出所有D&D 5e技能及其相关能力
使用示例
加载角色
load_character("gandalf.json")
滚动技能检查
# Normal skill check
roll_skill_check("perception")
# Skill check with advantage
roll_skill_check("stealth", "advantage")
# Skill check with disadvantage and flat modifier
roll_skill_check("athletics", "disadvantage -2")
# Complex combination
roll_skill_check("persuasion", "advantage +1 bardic:1d8 guidance:1d4")
滚动能力检查
# Strength check with flat bonus
roll_ability_check("str", "+3")
# Dexterity check with advantage and guidance
roll_ability_check("dex", "advantage guidance:1d4")
滚动保存投掷
# Wisdom saving throw with advantage
roll_saving_throw("wis", "advantage")
# Constitution saving throw with multiple bonuses
roll_saving_throw("con", "bless:1d4 +2")
攻击骰
# Basic weapon attack
roll_attack("Longsword")
# Attack with advantage and bless
roll_attack("Longbow", "advantage bless:1d4")
支持的技能
该服务器支持所有18种D&D 5e技能:
- 力量:田径
- 灵巧:杂技、手滑、潜行
- 智能:阿卡纳,历史,调查,自然,宗教
- 智慧:动物处理、洞察力、医学、感知、生存
- 魅力:欺骗、恐吓、表演、说服
字符JSON格式
字符应按照D&D 5e模式以JSON格式保存。看 gandalf.json 例如字符文件。
必填字段:
player-玩家信息race-角色种族信息
可选字段包括能力分数、课程、技能、法术、装备等。
测试
运行测试脚本以查看服务器的运行情况:
python test_server.py
这将加载甘道夫角色示例,并演示各种服务器功能。
字符类
底层 Character 类提供:
- JSON序列化/反序列化
- 从多类级别计算级别
- 能力修正计算
- 基于级别的熟练度奖金计算
- 全面的字符数据管理
许可证
GNU通用公共许可证 有关详细信息,请参阅LICENSE文件。