D&D Beyond MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DDB_NO_SANDBOX | No | Set to 1 to disable Chromium sandboxing. Required in some container/CI environments. | |
| DDB_CHARACTER_CACHE_TTL | No | Character sheet cache lifetime in seconds. Lower values give fresher HP/spell slot data during live play at the cost of more API calls. | 60 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ddb_loginA | Launch a browser and log into D&D Beyond. A Chrome window will open for you to complete login — it closes automatically once your session is saved. After that, character tools work without any browser. |
| ddb_close_browserA | Close the background browser window if one is open. Useful after running ddb_navigate, ddb_interact, or ddb_get_page. |
| ddb_clear_cacheA | Wipe in-process caches so the next call re-fetches from D&D Beyond. Use this when search results look like the SRD/Open5e fallback (e.g. 2024 cantrips missing from spell results) after you've logged in — the partial compendium build is cached for up to 5 minutes and this forces an immediate retry. cache='spells' (default) clears just the spell/reference compendium; 'all' wipes every cache. |
| ddb_list_charactersA | List all characters in your D&D Beyond account, including their ID, level, race, and class. Requires login — run ddb_login first if you haven't already. |
| ddb_get_character_rawA | Returns raw 300–500 KB character JSON. Requires confirm_large_response: true. Use ddb_get_character instead for all normal use. Requires login — run ddb_login first if you haven't already. |
| ddb_download_characterA | Download a character's full JSON data to a local file. Requires login — run ddb_login first if you haven't already. |
| ddb_get_characterA | Parse and display a character sheet. Use sections to reduce output: summary (vitals+stats), combat (adds actions/weapons), spells (spellcasting only), inventory, features, concentration, notes (backstory, traits, bonds), or full (default). Requires login — run ddb_login first if you haven't already. |
| ddb_character_lookupA | Look up the full description of a spell, feat, class feature, subclass feature, racial trait, background feature, or equipped item by name. Supports partial and fuzzy name matching (e.g. 'cutting' finds Cutting Words, 'sheild' finds Shield). Accepts either a numeric character_id or a character_name. Requires login — run ddb_login first if you haven't already. |
| ddb_search_monstersA | Search the D&D Beyond monster compendium by name, CR, type, or size. Returns a summary list. Use ddb_get_monster for the full stat block. Requires login. |
| ddb_get_monsterA | Get the full stat block for a specific monster from the D&D Beyond compendium. Searches by name (partial match). Requires login. |
| ddb_get_campaignA | Fetch campaign information including player characters from a D&D Beyond campaign. Requires login — run ddb_login first if you haven't already. |
| ddb_list_campaignsA | List all D&D Beyond campaigns you are part of (as DM or player). Requires login — run ddb_login first if you haven't already. |
| ddb_get_partyA | Fetch a compact summary of every character in a campaign. Returns HP, AC, initiative, passive scores, ability scores, and skills for the whole party in one call. Requires login — run ddb_login first if you haven't already. |
| ddb_navigateA | Navigate to any D&D Beyond URL and return the page's text content. Only dndbeyond.com URLs are allowed. The browser stays open after this call for follow-up ddb_interact or ddb_get_page calls. Call ddb_close_browser when finished. |
| ddb_interactA | Interact with the currently loaded D&D Beyond page by clicking, filling a form field, or taking a screenshot. The 'click' and 'fill' actions require confirm_click / confirm_fill: true — safety gates to prevent prompt injection on rendered DDB pages from triggering unintended state changes (deleting a character, leaving a campaign, posting to a forum). Screenshots are unguarded — they are read-only. |
| ddb_get_pageA | Return the text content of the currently loaded page in the browser. The browser stays open — call ddb_close_browser when finished. |
| ddb_search_siteB | Search D&D Beyond for spells, monsters, magic items, races, classes, or feats. |
| ddb_list_libraryA | List all books and sourcebooks you own in your D&D Beyond library. Requires login — run ddb_login first if you haven't already. |
| ddb_read_bookA | Read a D&D Beyond book. Accepts either a slug (e.g. dnd/phb-2024) or a plain title (e.g. "Player's Handbook" or "monster manual") — the server resolves titles against your library automatically. Specify chapter_slug for a chapter, query to jump to a heading, and max_chars to control response size. Requires login — run ddb_login first if you haven't already. |
| ddb_get_conditionA | Look up the rules text for a D&D condition (Blinded, Charmed, Frightened, Grappled, etc.). No login required. |
| ddb_search_spellsA | Search the full D&D Beyond spell compendium by name, level, school, concentration, or ritual. First call builds the compendium (slow); subsequent calls are instant. Requires login. |
| ddb_get_spellA | Get the full description of any spell in the D&D Beyond compendium by name. Not limited to a character's known spells. Requires login. |
| ddb_search_equipmentA | Search the D&D Beyond item/equipment compendium by name, rarity, or type. Covers mundane weapons (Longsword, Shortbow), armour (Plate, Chain Mail), adventuring gear, and magic items. Filter by rarity='common' to see only mundane equipment. Requires login. |
| ddb_get_equipmentA | Get the full stats and description of any item or equipment in the D&D Beyond compendium by name. Works for mundane weapons (e.g. 'Longbow'), armour (e.g. 'Plate'), adventuring gear, and magic items. Requires login. |
| ddb_search_racesA | Search all D&D Beyond races and subraces (including homebrew). Not character-specific. Requires login — run ddb_login first if you haven't already. |
| ddb_search_classesA | Search all D&D Beyond classes with hit die, spellcasting, and subclasses. Requires login — run ddb_login first if you haven't already. |
| ddb_search_backgroundsA | Search all D&D Beyond backgrounds (including homebrew). Requires login — run ddb_login first if you haven't already. |
| ddb_search_featsA | Search feats by name or prerequisite text. Requires login — run ddb_login first if you haven't already. |
| ddb_search_class_featuresA | Search class features by name, class, or level gained. Requires login — run ddb_login first if you haven't already. |
| ddb_search_racial_traitsA | Search racial traits by name or race. Requires login — run ddb_login first if you haven't already. |
| ddb_search_rulesA | Search the SRD rules sections by keyword. Searches across section names and full content — e.g. 'grapple' finds the Attacking section (which covers grapple rules) and the Conditions section (which has the Grappled condition). Returns a list of matching sections with their slugs. Use ddb_get_rules to read the full text of a section. No login required. |
| ddb_get_rulesA | Get the full SRD rules text for a topic by section name or slug. Covers all core 5e rules: Spellcasting, Abilities, Attacking, Combat Sequence, Actions in Combat, Damage and Healing, Conditions, Movement, Multiclassing, Rest, Saving Throws, Environment, Traps, Diseases, Madness, Poisons, Weapons, Armor, and more. Use query to jump to a specific topic within a long section. For non-SRD rules or more detail, use ddb_read_book. No login required. |
| ddb_rate_encounterA | Rate the difficulty of a D&D encounter. Defaults to 2024 XDMG rules (Low/Moderate/High, no multiplier). Set rules_edition to '2014' for the classic DMG XP threshold method (Easy/Medium/Hard/Deadly with encounter multiplier). Monsters are looked up in the compendium automatically — supply 'cr' directly for homebrew. |
| ddb_encounter_crA | Given a party and a target difficulty, returns the CR to aim for — broken down by encounter shape (solo boss, duo, squad, horde). Defaults to 2024 XDMG rules; set rules_edition to '2014' for classic DMG. No monster lookup required. Use with ddb_rate_encounter to verify a specific monster list. |
| ddb_roll_treasureA | Generate a treasure reward using the 2024 XDMG treasure tables (default). Provide either a CR directly or a list of monster names — CR is resolved automatically via fuzzy name matching. treasure_type 'hoard' makes one roll using the highest CR and includes magic items (requires character_level); 'individual' rolls once per monster and sums the results. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/iamjameslennon/ddb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server