Skip to main content
Glama

dnd-beyond-mcp

A Model Context Protocol (MCP) server that lets Claude read your D&D Beyond characters and campaigns. It uses Playwright to authenticate with Wizards ID and access your account data.

Prerequisites

  • Node.js 18+

  • A D&D Beyond account

Related MCP server: Cloudflare Playwright MCP

Installation

git clone <repo>
cd dnd-beyond-mcp
npm install
npx playwright install chromium
npm run build

Claude Desktop setup

Add the following to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Restart Claude Desktop after editing the config.

First-time login

The first time you use the server, ask Claude to run ddb_login. A Chromium browser window will open — sign in with your Wizards ID account. Once complete, the session is saved to ~/.config/dnd-beyond-mcp/session.json and reused automatically in all future sessions.

Available tools

Tool

Description

ddb_login

Open browser and log in via Wizards ID

ddb_status

Check if the current session is active

ddb_list_characters

List all characters on your account

ddb_get_character

Get a full character sheet (by ID or name)

ddb_get_campaign

Get campaign details and roster (by campaign ID)

Example prompts

  • "List my D&D Beyond characters"

  • "Show me the character sheet for Aldric"

  • "What spells does my wizard have prepared?"

  • "Who's in campaign 12345678?"

Session persistence

The Playwright storage state (cookies + localStorage) is saved to ~/.config/dnd-beyond-mcp/session.json after a successful login. Subsequent sessions load this file automatically — no re-login needed unless the session expires.

Running in Cowork / remotely

This server runs locally and requires a real browser for the login flow. It is not directly compatible with Claude.ai's Cowork remote execution environment without additional infrastructure (an HTTP transport + ngrok tunnel, or a deployed server with pre-baked session cookies).

dnd-beyond-mcp

Available Tools

5 tools
ddb_get_campaignA

Get campaign details and member roster for a D&D Beyond campaign.

Inputs: campaignId (required).

ddb_get_characterB

Get the full character sheet for a D&D Beyond character by ID or name.

Inputs: characterId, name.

ddb_list_charactersA

List all characters in your D&D Beyond account (name, ID, level, race, class).

Inputs: no named parameters.

ddb_loginA

Open a browser and log into D&D Beyond via Wizards ID. Run once — the session is saved to disk and reused automatically on all future calls.

Inputs: no named parameters.

ddb_statusA

Check whether the D&D Beyond session is active. Run ddb_login first if this reports not logged in.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clear, distinct purpose: login, status check, list characters, get character details, and get campaign details. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    All tools follow the consistent prefix 'ddb_' and verb_noun pattern (e.g., ddb_get_campaign, ddb_list_characters). Even login and status fit the pattern without underscore, maintaining uniformity.

    Tool Count5/5

    With 5 tools covering authentication, status, listing, and detailed retrieval, the count is well-scoped for a focused D&D Beyond integration. It is neither too sparse nor overwhelming.

    Completeness4/5

    The tool set provides a solid read-only surface: login, session check, character listing, character details, and campaign details. Missing write operations (e.g., create/update character) but covers the core retrieval needs for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers