关于 diceport
diceport 是用于掷骰子、抛硬币和生成随机整数的命令行工具及 MCP 服务。可选种子可复现结果,掷骰时还会返回每颗骰子的点数和总和。
主要功能
- 01使用 NdM 记法掷骰子
- 02抛硬币
- 03生成指定范围内的整数
- 04通过种子复现结果
- 05显示骰子点数及总和
适用场景
- 01在脚本中执行带种子的随机选择
- 02记录游戏掷骰的各颗点数
MCP 相关
其 stdio MCP 服务提供掷骰子、抛硬币和生成闭区间随机整数的工具;每项工具都可选用种子。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seed | integer | 否 | 用于生成可复现掷骰结果的种子 |
| notation | string | 是 | 骰子表示法,例如 2d6 或 3d8+2 |
详细介绍
diceport
diceport 可掷骰子、抛硬币和随机选取整数。它适用于脚本或 Agent 需要公平、可解释的随机结果的场景:掷骰会报告计入总点数的每个骰面,而且任何调用都可以指定种子,以便复现结果——相同的种子,每次都会得到相同的结果。
安装
npx @reneturcios/diceport roll 2d6
或者运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/diceport
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
# Roll dice in NdM notation, with an optional +N / -N modifier
diceport roll 2d6
# 2d6: [3, 5] total 8
diceport roll 3d8+2 --seed 42 # reproducible
# Flip a coin
diceport flip # heads (or tails)
diceport flip --seed 7 --json
# Pick an integer between two bounds, inclusive
diceport random 1 100
diceport random 1 100 --seed 42
diceport --version
记法为 NdM:掷 N 个每个有 M 面的骰子。可以省略数量(d20 表示掷一个骰子),也可以附加一个固定修正值(2d6+3、1d100-5)。
退出代码:成功时为 0;无法进行掷骰或范围操作时为 1(例如记法错误或范围上下限颠倒,错误信息会说明原因);用法错误时为 2。
MCP 服务
一个二进制文件可支持两种模式。mcp 子命令会启动一个 stdio MCP 服务:
npx -y @reneturcios/diceport mcp
MCP 客户端配置:
{
"mcpServers": {
"diceport": {
"command": "npx",
"args": ["-y", "@reneturcios/diceport", "mcp"]
}
}
}
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
roll_dice | notation(字符串,必填,例如 2d6+3)、seed(整数,可选) | 每个掷出的骰面、修正值和总点数。 |
flip_coin | seed(整数,可选) | heads 或 tails。 |
random_number | min、max(整数,必填)、seed(整数,可选) | 一个介于 min 和 max 之间(含两端)的整数。 |
带种子的调用使用 mulberry32 生成器,因此种子可完全决定结果,任何报告的结果都可以重放。不指定种子的调用则使用平台随机源。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。