This server gives Claude dice rolling capabilities through six tools: roll_dice for standard notation like 2d6 or 1d20+5 with keep highest/lowest modifiers, roll_multiple for repeated rolls with statistics, roll_dnd_stats for 4d6 drop lowest ability score generation, flip_coin, pick_random for choosing from comma separated options, and roll_percentile for d100 rolls. Each tool returns structured JSON with the rolls, kept dice, modifiers, and totals. Reach for this when you need tabletop RPG mechanics in your Claude workflow, whether that's generating D&D characters, resolving game actions, or making weighted random decisions. Install via pip and run through stdio transport.
A simple MCP (Model Context Protocol) server for rolling dice. Perfect for tabletop games, random decisions, and more!
2d6, 1d20+5, 3d8-24d6kh3 (keep highest 3) and 2d20kl1 (keep lowest)pip install mcp-dice-roller
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"dice-roller": {
"command": "python",
"args": ["-m", "mcp_dice_roller"]
}
}
}
Add to your VS Code MCP settings:
{
"mcp.servers": {
"dice-roller": {
"command": "python",
"args": ["-m", "mcp_dice_roller"]
}
}
}
Roll dice using standard notation.
roll_dice("2d6") → Roll two 6-sided dice
roll_dice("1d20+5") → Roll d20 and add 5
roll_dice("4d6kh3") → Roll 4d6, keep highest 3
roll_dice("2d20kl1") → Roll 2d20, keep lowest (disadvantage)
Example Response:
{
"notation": "2d6+3",
"rolls": [4, 6],
"kept": [4, 6],
"subtotal": 10,
"modifier": 3,
"total": 13
}
Roll the same dice multiple times with statistics.
roll_multiple("1d20", 5) → Roll d20 five times
Example Response:
{
"notation": "1d20",
"times": 5,
"totals": [15, 8, 20, 3, 12],
"statistics": {
"min": 3,
"max": 20,
"sum": 58,
"average": 11.6
}
}
Generate D&D 5e character ability scores.
Example Response:
{
"method": "4d6 drop lowest",
"stats": [
{"rolls": [4, 3, 5, 6], "kept": [4, 5, 6], "total": 15},
{"rolls": [2, 4, 4, 3], "kept": [3, 4, 4], "total": 11},
...
],
"totals": [15, 11, 14, 13, 10, 16],
"sum": 79
}
Flip a coin.
flip_coin() → Flip once
flip_coin(10) → Flip 10 times
Pick randomly from options.
pick_random("pizza, burger, sushi, tacos")
Example Response:
{
"options": ["pizza", "burger", "sushi", "tacos"],
"selected": "sushi",
"total_options": 4
}
Roll d100 (percentile dice).
Example Response:
{
"tens_die": 7,
"ones_die": 3,
"result": 73
}
# Clone the repository
git clone https://github.com/vandewilly/mcp-dice-roller.git
cd mcp-dice-roller
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
python -m mcp_dice_roller
MCP Name: io.github.vandewilly/dice-roller
This server is published to the MCP Registry.
MIT License - see LICENSE for details.
Vandewilly Silva (@vandewilly)