About dice-roller
dice-roller is an MCP server for tabletop gaming and random choices. It handles standard dice notation, D&D stat generation, coin flips, and random selection through dedicated tools.
Key features
- 01Standard dice notation and modifiers
- 02Keep highest or lowest rolls
- 03D&D ability score generation
- 04Single or repeated coin flips
- 05Random selection from options
- 06Percentile dice rolls
Use cases
- 01Roll dice during tabletop sessions
- 02Generate D&D 5e character stats
- 03Resolve a choice among several options
- 04Run repeated rolls and inspect statistics
MCP support
Exposes dice-rolling, D&D stat, coin-flip, random-picker, and percentile tools to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP 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)
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.