Token导航 LogoToken导航TokenDH.com
Dice Rolling MCP Server logo
运维云端未说明官方级别未说明来源级核验

Dice Rolling MCP Server

MCP Server

一个基于TypeScript的模型上下文协议(MCP)服务器,为AI助手提供高级骰子滚动功能,适用于桌面游戏、RPG和需要复杂随机数生成的场景。

工具数

0

提示词数

0

GitHub Stars

8

资源数

0
TypeScriptClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jimmcq

提供方

jimmcq

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

骰子滚动MCP服务器

一个基于TypeScript的全面模型上下文协议(MCP)服务器,为人工智能助手提供高级的掷骰功能。非常适合桌面游戏、角色扮演游戏以及任何需要结合游戏机制进行复杂随机数生成的应用。

问题:大型语言模型实际上无法掷骰子

当你让AI助手“掷骰子”时,它实际上并没有掷出任何东西。大型语言模型是确定性系统,它们根据训练数据中的模式来生成回应。当你要求它掷一个20面骰子时,它可能会回应说“我掷出了14”——但这个数字是通过文本预测生成的,而不是随机数生成。

这引发了几大问题:

  • 没有真正的随机性结果并非真正随机,可能遵循可预测的模式
  • 游戏诚信对于桌面角色扮演游戏而言至关重要,因为公平的骰子掷出会影响游戏进程
  • 模拟精度统计模拟需要恰当的随机数生成
  • 可重复性问题相同的提示可能会产生惊人相似的“随机”结果

解决方案:为人工智能打造真实骰子

这个MCP服务器充当了人工智能助手与实际随机数生成之间的桥梁。可以将其想象为,给你的AI助手提供了一副真实的骰子,而不是让它想象骰子的滚动。

其工作原理如下:

  • AI助手接收骰子表示法(例如,“3d6+2”)
  • MCP服务器解析请求并生成加密安全的随机数
  • 采用了真实的骰子机制(优势、骰子爆炸、重掷等)
  • 向人工智能返回真实的随机结果

结果:人工智能助手现在能够提供具有数学严谨性的真正随机骰子掷出结果,使其适用于实际游戏、模拟以及任何需要真正随机性的应用。

特点/特性

标准骰子表示法

  • 基本卷(或基础卷)1d203d62d10
  • 修饰符1d20+52d6-3
  • 多种骰子类型1d20+2d6+3
  • 百分位数骰子1d% (d100)
  • “Fudge dice”翻译成中文是“骰子(特指用于Fudge角色扮演系统的骰子)”或简化为“Fudge骰子”。在中文语境中,Fudge骰子通常指的是用于Fudge角色扮演游戏系统中的一种特殊骰子,这种骰子用于决定角色的属性、技能检定等游戏机制4dF (命运/骰子系统)

高级力学

  • 优势/劣势2d20kh1 (保留最高值), 2d20kl1 (保留最低值)
  • 掉落机制: 4d6dl1 (去掉最低分), 4d6dh1 (去掉最高分)
  • 爆炸骰子3d6! (重新投掷并加到最大值)
  • 重新掷骰机制4d6r1 (重新掷1次)
  • 成功计数5d10>7 (成功次数≥7)

MCP 工具

search

发现可用的骰子掷骰操作和相关文档。 ChatGPT Connector 兼容性所需。

参数:

  • query (必填):搜索查询以查找相关的掷骰子信息

返回值:

  • content包含搜索结果的JSON idtitle,以及 url 田野(或领域,根据上下文可灵活翻译)
  • structuredContent机器可读的搜索结果,附带相关性评分

fetch

通过ID检索特定骰子掷出主题的详细内容。

参数:

  • id (必填):搜索结果中的主题ID

返回值:

  • content包含完整内容的JSON文档
  • structuredContent元数据和结构化文档信息

dice_roll

使用标准记号执行骰子掷出,可选标签和详细输出。

参数:

  • notation (必填):骰子表示法字符串(例如,“3d6+2”)
  • label (可选):为卷轴添加描述性标签
  • verbose (可选):显示单个骰子的详细分解情况

返回值:

  • content包含掷骰结果和表情符号的可读文本
  • structuredContent完整的卷材数据,包括:

- notation原始骰子表示法 - total最终结果 - rolls带有元数据的单个芯片结果(掉落、爆炸等) - breakdown数学分解字符串 - criticald20骰子投掷中的关键成功/失败判定 - modifier应用的修饰符 - timestamp胶片的ISO时间戳

dice_validate

验证骰子记法而不执行掷骰操作,提供该记法的详细解析。

参数:

  • notation (必填):要验证的骰子表示法字符串

返回值:

  • content可读的人类验证结果
  • structuredContent结构化的验证数据包括:

- valid布尔验证状态 - expression解析后的骰子表达式(如有效) - breakdown骰子和修正值的结构化分析 - error错误消息(如无效)

结构化内容支持

所有工具都返回人类可读的格式以及 content 并且可机器读取 structuredContent 遵循……之后 OpenAI 应用程序开发工具包(SDK) 规格。这使得:

  • 程序化访问 滚动结果和验证数据
  • 组件模板 用于丰富的用户界面渲染(未来增强功能)
  • 与人工智能工作流程的集成 需要结构化数据
  • 高级功能 如滚动历史、统计数据和可视化展示

结构化内容包含每个操作的完整元数据,使其适合在骰子滚动功能之上构建高级应用程序。

远程MCP集成(支持流式HTTP)

这个MCP服务器支持 可流式传输的HTTP传输 用于远程连接,并实现了OpenAI MCP规范,包括所需的功能/要求 search 用于操作发现的工具。

兼容:

  • 克劳德远程MCP连接器 (以及Claude Desktop)
  • ChatGPT 连接器 (目前仅在开发者模式下可用)
  • 任何MCP客户端 支持Streamable HTTP传输

连接端点:

  • 本地开发: http://localhost:3000/mcp
  • 生产https://dice-rolling-mcp.vercel.app/mcp

这个(或“该”) search 并且 fetch 这些工具使Claude和ChatGPT都能自动发现可用的掷骰子操作。

本地MCP集成(STDIO)

对于本地Claude Desktop的集成,请配置您的 claude_desktop_config.json:

{
  "mcpServers": {
    "dice-rolling-remote": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/client-stdio", 
        "connect", 
        "https://dice-rolling-mcp.vercel.app/mcp"
      ]
    }
  }
}

本地安装

git clone https://github.com/jimmcq/dice-rolling-mcp
cd dice-rolling-mcp
npm install
npm run build

使用方法

使用Claude Desktop

添加到您的 claude_desktop_config.json

{
  "mcpServers": {
    "dice-roller": {
      "command": "node",
      "args": ["path/to/dice-rolling-mcp/dist/index.js"]
    }
  }
}

特定平台的示例:

Windows(WSL):

{
  "mcpServers": {
    "dice-roller": {
      "command": "wsl",
      "args": ["node", "/path/to/dice-rolling-mcp/dist/index.js"]
    }
  }
}

macOS/Linux:

{
  "mcpServers": {
    "dice-roller": {
      "command": "node",
      "args": ["/path/to/dice-rolling-mcp/dist/index.js"]
    }
  }
}

独立服务器

npm run start

示例

基本滚动

Human: Roll 3d6+2 for damage
Assistant: You rolled 3d6+2 for damage:
🎲 Total: 13
📊 Breakdown: 3d6:[4,2,5] + 2

优势系统

Human: Roll 2d20kh1+5 for attack with advantage
Assistant: You rolled 2d20kh1+5 for attack with advantage:
🎲 Total: 23
📊 Breakdown: 2d20:[12,18] keep highest + 5

验证

Human: Is "4d6kh3+2d8+5" valid dice notation?
Assistant: ✅ Valid dice notation: 4d6kh3+2d8+5

Breakdown:
• 4d6 (keep highest 3)
• 2d8
• Modifier: +5

发现(远程MCP集成)

Human: What dice operations are available?
Assistant: [Calls search tool with query "dice"]
🎲 Found dice rolling operations:
- Basic Dice Notation: Learn standard XdY format
- D&D Advantage and Disadvantage: 2d20kh1 mechanics
- Combat Roll Examples: Attack, damage, spells
- Ability Score Generation: 4d6kh3 for character stats

建筑学

核心组件

  • 解析器 (src/parser/): 使用基于正则表达式的解析方法对骰子表示法进行分词和解析
  • 滚轮 (src/roller/): 执行骰子表达式,使用加密安全的随机数生成
  • MCP 服务器 (src/index.ts):实现了用于AI助手集成的模型上下文协议
  • 类型系统 (src/types.ts): 所有骰子机制的全面TypeScript定义

关键设计决策

  • 安全使用 Node.js crypto.randomInt() 用于加密安全的随机性
  • 可扩展性模块化架构支持轻松添加新的骰子机制
  • 兼容性ES2022 目标,带回退机制以支持更广泛的 Node.js 版本
  • 类型安全完整的TypeScript实现,带有严格的类型检查

测试

npm test

测试套件涵盖:

  • 为所有支持的机制解析骰子表示法
  • 使用模拟随机数生成进行滚动执行
  • 边缘情况和错误处理
  • MCP协议合规性

发展

项目结构

dice-rolling-mcp/
├── src/
│   ├── index.ts              # MCP server implementation
│   ├── parser/               # Dice notation parser
│   ├── roller/               # Dice rolling engine
│   ├── statistics/           # Statistical analysis tools
│   └── types.ts              # TypeScript definitions
├── __tests__/                # Test suite
├── dist/                     # Compiled JavaScript
└── examples/                 # Usage examples

添加新机制

  1. 延长/扩展 DiceTerm 接口在 types.ts
  2. 更新解析器中的正则表达式 dice-notation-parser.ts
  3. 在(游戏中/系统中)实现该机制 dice-roller.ts
  4. 添加全面测试

配置

该服务器通过(某种方式)支持多种配置选项 DiceRollerConfig 接口:

  • 每次掷骰的最大骰子数量
  • 最大芯片尺寸
  • 随机数源选择
  • 历史记录大小限制

技术规格

  • 语言TypeScript 5.8+
  • 运行时Node.js 18+(已测试版本为 v24.0.2)
  • 协议;议定书MCP(模型上下文协议)2024-11-05
  • OpenAI 兼容性实现了OpenAI MCP规范,满足所需要求 search 工具
  • 运输支持STDIO(本地Claude桌面)+ Streamable HTTP(远程连接)
  • 依赖项最小化(zod,@modelcontextprotocol/sdk,@vercel/mcp-adapter)
  • 模块系统ES 模块
  • 测试框架使用 ts-jest 配置 Jest

安全考虑事项

  • 输入验证防止恶意骰子表达式
  • 资源限制防止通过极大规模的滚动进行拒绝服务攻击(DoS)
  • 密码学安全的随机数生成
  • 无外部网络依赖

链接

作者

吉姆·麦克奎兰

许可证

ISC(Internet Service Center,互联网服务中心)

贡献

欢迎投稿!请确保:

  • 所有测试均通过(npm test)
  • 代码遵循现有的模式和规范
  • 新功能包括适当的测试覆盖率
  • TypeScript 严格模式合规性

目录标签

目录标签

TypeScriptClaude云端部署骰子滚动本地部署随机数生成桌面游戏RPGAI集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP