{
  "name": "Dice Rolling MCP Server",
  "version": "2.0.0",
  "description": "A Model Context Protocol server for rolling dice with advanced notation support",
  "protocol": "MCP 2025-03-26",
  "transports": [
    "http"
  ],
  "endpoints": {
    "mcp": "https://dice.sebz.me/mcp",
    "health": "https://dice.sebz.me/health",
    "info": "https://dice.sebz.me/"
  },
  "capabilities": {
    "tools": [
      "roll"
    ],
    "resources": false,
    "prompts": false,
    "logging": true
  },
  "tools": [
    {
      "name": "roll",
      "description": "Roll dice using advanced notation",
      "examples": [
        "2d6 - Roll two six-sided dice",
        "4d6k3 - Roll 4d6, keep highest 3",
        "d20+5 - Roll d20 and add 5",
        "3d6! - Roll 3d6 with exploding dice",
        "(2d6+3)*2 - Complex mathematical expression",
        "min(2d6, 1d8) - Minimum of multiple dice rolls",
        "max(d20+5, 3d6) - Maximum of expressions"
      ]
    }
  ],
  "usage": {
    "http_transport": {
      "description": "Standard MCP over HTTP (stateless)",
      "endpoint": "https://dice.sebz.me/mcp",
      "method": "POST",
      "content_type": "application/json",
      "note": "Each request is independent, responses are immediate"
    }
  },
  "dice_notation": {
    "basic": "NdX (e.g., 2d6, d20, d%)",
    "fudge": "NdF (FATE dice: -1, 0, +1)",
    "keep_drop": "NdXkY (keep highest Y), NdXdY (drop lowest Y)",
    "exploding": "NdX! (explode on max), NdXeY (explode on Y+)",
    "reroll": "NdXrY (reroll if result ≤ Y)",
    "math": "Full mathematical expressions with +, -, *, parentheses",
    "functions": "min(expr1, expr2, ...) and max(expr1, expr2, ...) for comparing values",
    "limits": {
      "dice_count": "1-1,000",
      "dice_sides": "1-10,000",
      "numbers": "Up to 1,000,000"
    }
  }
}