Skip to main content
Glama
ddb-mcp
by ddb-mcp

D&D Beyond MCP Server

A Model Context Protocol (MCP) server that gives Claude direct access to your D&D Beyond account — characters, campaigns, sourcebooks, spells, monsters, and more.

Features

Tool

Description

ddb_login

Authenticate with D&D Beyond (Wizards ID). Run once to save your session to disk.

ddb_list_characters

List all characters in your account with ID, level, race, and class.

ddb_get_character

Fetch full character JSON from the D&D Beyond character API.

ddb_download_character

Save a character's full JSON data to a local file.

ddb_list_campaigns

List all campaigns you're part of (as DM or player).

ddb_get_campaign

Fetch campaign details — DM, description, and active characters.

ddb_list_library

List all sourcebooks you own, purchased, or have shared with you.

ddb_read_book

Read content from an owned sourcebook, optionally by chapter slug.

ddb_search

Search for spells, monsters, magic items, races, classes, or feats.

ddb_navigate

Navigate to any D&D Beyond URL and return its text content.

ddb_interact

Click, fill, or screenshot the currently loaded browser page.

ddb_current_page

Return the text content of whatever page is currently loaded.

Prerequisites

Installation

npm install -g github:ddb-mcp/ddb-mcp

This clones the repo, installs dependencies, and builds automatically. Then install the browser:

npx playwright install chromium

Find the install path and register with Claude Code:

npm root -g # outputs something like /usr/local/lib/node_modules
claude mcp add dndbeyond node /usr/local/lib/node_modules/ddb-mcp/dist/index.js

Option B — Clone and build manually

git clone https://github.com/ddb-mcp/ddb-mcp.git cd ddb-mcp npm install npx playwright install chromium

Register with Claude Code:

claude mcp add dndbeyond node /absolute/path/to/ddb-mcp/dist/index.js

Or edit ~/.claude/settings.json manually:

{ "mcpServers": { "dndbeyond": { "command": "node", "args": ["/absolute/path/to/ddb-mcp/dist/index.js"] } } }

Usage

First-time login

The first time you use the server, you need to authenticate:

ddb_login

A browser window (Chrome for Testing) will open and navigate to the D&D Beyond login page. Complete the login using your Wizards ID account. Once you're redirected back to D&D Beyond, your session is automatically saved to ~/.config/ddb-mcp/session.json and reused on all future calls.

You only need to log in once. If your session expires, just run ddb_login again.

Example prompts

List your characters:

List all my D&D Beyond characters

Get full character data:

Get the full character sheet for character ID 140476673

List your campaigns:

What campaigns am I part of on D&D Beyond?

Get campaign details:

Show me the details for campaign 6709239, including all the player characters

Search for spells:

Search D&D Beyond for spells named "Fireball"

Search for monsters:

Find the Beholder stat block on D&D Beyond

Read a sourcebook:

Show me the table of contents for the Player's Handbook
Read the Barbarian class section from the Player's Handbook

Download a character:

Download the character data for Roland Stonehelm to my Downloads folder

Finding character and campaign IDs

  • Character ID: The number in the character URL — dndbeyond.com/characters/140476673

  • Campaign ID: The number in the campaign URL — dndbeyond.com/campaigns/6709239

You can also use ddb_list_characters and ddb_list_campaigns to get IDs without leaving Claude.

Book slugs for ddb_read_book

Use ddb_list_library to get the slug for any book you own. Examples:

Book

Slug

Player's Handbook (2024)

dnd/phb-2024

Dungeon Master's Guide (2024)

dnd/dmg-2024

Monster Manual (2024)

dnd/mm-2024

Player's Handbook (2014)

dnd/phb-2014

To read a specific chapter, pass the chapter path after the book slug:

ddb_read_book("dnd/phb-2024", "character-classes/barbarian")

Session storage

Your session is saved to ~/.config/ddb-mcp/session.json. This file contains browser cookies and local storage from your D&D Beyond login. Keep this file private — it grants access to your account.

To log out or reset your session, delete the file:

rm ~/.config/ddb-mcp/session.json

Development

# Run in development mode (no build step needed) npm run dev # Build npm run build # Watch mode npm run build:watch

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

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/ddb-mcp/ddb-mcp'

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