MCP Dice Roller 🎲
A simple MCP (Model Context Protocol) server for rolling dice. Perfect for tabletop games, random decisions, and more!
Features
- Standard Dice Notation - Roll any dice using notation like
2d6,1d20+5,3d8-2 - Keep Highest/Lowest - Support for
4d6kh3(keep highest 3) and2d20kl1(keep lowest) - D&D Stat Rolling - Quick character stat generation using 4d6 drop lowest
- Coin Flips - Simple heads or tails
- Random Picker - Choose randomly from a list of options
- Percentile Dice - Roll d100 with tens and ones dice
Installation
pip install mcp-dice-roller
Usage
With Claude Desktop
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"]
}
}
}
With VS Code
Add to your VS Code MCP settings:
{
"mcp.servers": {
"dice-roller": {
"command": "python",
"args": ["-m", "mcp_dice_roller"]
}
}
}
Tools
roll_dice
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_multiple
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
}
}
roll_dnd_stats
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_coin
Flip a coin.
flip_coin() → Flip once
flip_coin(10) → Flip 10 times
pick_random
Pick randomly from options.
pick_random("pizza, burger, sushi, tacos")
Example Response:
{
"options": ["pizza", "burger", "sushi", "tacos"],
"selected": "sushi",
"total_options": 4
}
roll_percentile
Roll d100 (percentile dice).
Example Response:
{
"tens_die": 7,
"ones_die": 3,
"result": 73
}
Development
Setup
# 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
Running Locally
python -m mcp_dice_roller
MCP Registry
MCP Name: io.github.vandewilly/dice-roller
This server is published to the MCP Registry.
License
MIT License - see LICENSE for details.
Author
Vandewilly Silva (@vandewilly)