Skip to main content
Glama
pmhw

MCP Lottery Demo

by pmhw

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
NameRequiredDescriptionDefault
countNo骰子数量,默认为1
sidesNo骰子面数,默认为6

Implementation Reference

  • 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,
          },
        ],
      };
    }
  • 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,
          },
        },
      },
    },
  • 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,
          },
        ],
      };
    }
  • 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,  // 返回工具列表
      };
    });

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pmhw/McpDemo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server