roll_dice
Roll dice with customizable sides and quantities for random number generation in games, simulations, or decision-making scenarios.
Instructions
投掷骰子,支持自定义面数和数量
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 骰子数量,默认为1 | |
| sides | No | 骰子面数,默认为6 |
Implementation Reference
- src/server.js:179-216 (handler)Handler for roll_dice tool: validates sides and count parameters, generates random dice rolls from 1 to sides for specified count, computes total if multiple, formats and returns text content.case 'roll_dice': { // 投骰子工具:模拟投掷骰子 const { sides = 6, count = 1 } = args; // 参数验证 if (sides < 2) { throw new Error('骰子面数至少为2'); } if (count < 1) { throw new Error('骰子数量至少为1'); } // 执行投骰子逻辑 const results = []; let total = 0; for (let i = 0; i < count; i++) { // 生成 1 到 sides 之间的随机数 const roll = Math.floor(Math.random() * sides) + 1; results.push(roll); total += roll; } // 根据骰子数量格式化输出 const resultText = count === 1 ? `🎲 投掷结果:${results[0]}` : `🎲 投掷结果:${results.join(', ')}\n📊 总计:${total}`; return { content: [ { type: 'text', text: resultText, }, ], }; }
- src/server.js:78-96 (schema)Input schema for roll_dice tool defining properties sides (number, default 6) and count (number, default 1).{ name: 'roll_dice', description: '投掷骰子,支持自定义面数和数量', inputSchema: { type: 'object', properties: { sides: { type: 'number', description: '骰子面数,默认为6', default: 6, }, count: { type: 'number', description: '骰子数量,默认为1', default: 1, }, }, }, },
- src/server-http.js:109-141 (handler)Handler for roll_dice tool in HTTP server: identical logic to stdio version, validates parameters, rolls dice, formats result.case 'roll_dice': { const { sides = 6, count = 1 } = args; if (sides < 2) { throw new Error('骰子面数至少为2'); } if (count < 1) { throw new Error('骰子数量至少为1'); } const results = []; let total = 0; for (let i = 0; i < count; i++) { const roll = Math.floor(Math.random() * sides) + 1; results.push(roll); total += roll; } const resultText = count === 1 ? `🎲 投掷结果:${results[0]}` : `🎲 投掷结果:${results.join(', ')}\n📊 总计:${total}`; return { content: [ { type: 'text', text: resultText, }, ], }; }
- src/server-http.js:36-52 (schema)Input schema for roll_dice tool in HTTP server: properties sides (number, default 6) and count (number, default 1).name: 'roll_dice', description: '投掷骰子,支持自定义面数和数量', inputSchema: { type: 'object', properties: { sides: { type: 'number', description: '骰子面数,默认为6', default: 6, }, count: { type: 'number', description: '骰子数量,默认为1', default: 1, }, }, },
- src/server.js:118-122 (registration)Registration of tools list handler which includes roll_dice in the tools array.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools, // 返回工具列表 }; });