骰子滚动服务

一个强大的MCP服务器,用于RPG游戏中的骰子滚动,支持简单滚动、详细分析、批量滚动和高级骰子机制。

  • by saidsurucu
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 saidsurucu/d20-mcp

使用说明

🎲 d20-mcp(注:d20通常指二十面骰子,在此可能是一个特定游戏或系统中的术语,mcp可能指某种角色、模式或配置,具体含义需根据上下文确定,此处直译为“二十面骰子-mcp”)

土耳其(Türkiye) 点击此处获取土耳其语版README

一个用于角色扮演游戏(RPG)中掷骰子的强大MCP(模型上下文协议)服务器。构建于 FastMCP 和 d20库此服务器为Claude及其他MCP客户端带来了全面的骰子机制。

非常适合《龙与地下城》(D&D)、《开拓者》(Pathfinder)以及任何使用标准骰子记法的桌面角色扮演游戏!

✨ 特点/功能

  • 🎯 简易寿司卷快速 1d20+5 即时见效的表达方式
  • 📊 详细分析查看每个骰子掷出的结果,并附带AST(可能是指某种分析或统计技术)的详细分解
  • ⚡ 批量滚动高效地滚动多个表达式
  • ✅ 语法验证在滚动之前检查表达式
  • 🎮 高级机制保留/舍弃,重新掷骰,爆炸骰(即掷出最大值时可继续掷并累加),等等
  • **🤖 优化后的大型语言模型(LLM)**用于人工智能理解的全面工具描述

🚀 快速入门

轻松设置(远程MCP)

使用d20-mcp的最快方法——无需安装!

  1. 打开Claude桌面版
  2. 首选 设置 → 连接器
  3. 点击 添加自定义连接器
  4. 输入网址: https://d20-mcp.fastmcp.app/mcp

注远程MCP支持目前正处于测试阶段,适用于Claude Pro、Max、Team和Enterprise用户。

本地安装(替代方案)

对于使用uvx的本地安装:

uvx --from git+https://github.com/saidsurucu/d20-mcp d20-mcp

Claude 桌面配置(本地)

把这个加到你的(清单/列表/计划等)里 claude_desktop_config.json:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json Windows(视窗操作系统): %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "d20-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/saidsurucu/d20-mcp",
        "d20-mcp"
      ]
    }
  }
}

完全重启Claude桌面应用(退出后重新打开),然后寻找🔨锤子图标!

📸 截图

🎮 使用示例

安装完成后,尝试在Claude上使用这些提示:

基本滚动

Roll 1d20+5 for my attack

角色创建

Roll 6 sets of 4d6kh3 for ability scores

战斗

Roll attack (1d20+7) and damage (2d8+4) for my greatsword

凭借优势

Roll 2d20kh1+5 for my Perception check with advantage

复杂表达式

Roll (1d4+1)*2 for Magic Missile damage

🛠️ 可用工具

roll

快速掷骰,即时返回总和及格式化结果。非常适合标准游戏玩法。

用于攻击检定、能力检定、伤害、豁免检定

roll_detailed

带有AST(抽象语法树)结构的全面分解,展示单个芯片的值和操作。

用于角色创建,复杂滚动(或复杂操作)的调试,透明度

roll_batch

在一次操作中滚动多个不同的表达式。

用于战斗回合,所有属性值掷骰决定,团队检定

validate_syntax

验证表达式,不进行滚动(无随机性)。

用于测试复杂表达式,用户输入验证

📝 支持的骰子表示法

基本

  • 1d20 - 掷一个20面骰子
  • 3d6 - 掷三个六面骰子
  • d20 - 等同于1d20(掷一个20面骰子)

保留/删除

  • 4d6kh3 - 保留最高的3个
  • 4d6kl1 - 保留最低的1个
  • 4d6p1 - 去掉最低的1个(分数/成绩等)

重新掷骰(或重新尝试)

  • 1d20rr<10 - 重新掷直到≥10
  • 1d20ro1 - 重新掷一次1

爆炸骰子

  • 1d6e - 在最大值时爆炸
  • 1d6e6 - 在6时爆炸

最小值/最大值

  • 1d20mi10 - 至少10
  • 1d20ma20 - 最多20

算术

  • 1d20+5 - 加法
  • 2d6-1 - 减法
  • 3d6*2 - 乘法
  • (1d4+1)*2 - 括号

高级

  • 2d20kh1+5 - 在Dungeons & Dragons(龙与地下城)中的优势
  • 2d20kl1+2 - 缺点
  • 8d6 [fire] - 标注的损伤(带 allow_comments)

🎯 常见的角色扮演游戏(RPG)应用场景

《龙与地下城》第五版角色创建

Roll me 6 ability scores using 4d6 keep highest 3

以优势发起攻击

I have advantage on this attack. Roll 2d20kh1+8

暴击

I crit! Roll 4d6+2d6+5 for my sneak attack damage

多次保存

Roll saves for 4 party members: 1d20+5, 1d20+2, 1d20+7, 1d20+3

🔧 开发

本地测试

# Clone the repository
git clone https://github.com/saidsurucu/d20-mcp.git
cd d20-mcp

# Run with uv
uv run server.py

# Or with Python directly (after installing dependencies)
python server.py

项目结构

d20-mcp/
├── server.py          # Main MCP server with 4 tools
├── pyproject.toml     # Project configuration
├── README.md          # English documentation
├── README.tr.md       # Turkish documentation
└── LICENSE            # MIT License

🤝 贡献(或“参与贡献”)

欢迎投稿!请随时:

  • 报告错误
  • 建议新功能
  • 提交拉取请求
  • 改进文档

📄 许可证

MIT 许可证 - 详见 许可证 详情请见文件。

🙏 致谢

构建于:

📚 了解更多


为TTRPG(桌面角色扮演游戏)社区用心打造