Skip to main content
Glama
eschatus

beyond-mcp

by eschatus

beyond-mcp

MCP-сервер D&D Beyond: листы персонажей, статблоки монстров, списки участников кампаний, живая лента бросков игрового журнала и опциональная запись в листы. Извлечён из roll20-dm-mcp согласно его issue #171, чтобы DDB работал за собственным MCP-стыком — gem dm-whisper и Claude Code выбирают его через конфиг, рядом с взаимозаменяемыми серверами VTT-примитивов (сегодня roll20-dm-mcp, позже forge-mcp/ddb-maps-mcp).

Этот сервер ничего не знает ни о Roll20, ни о каком-либо VTT и никогда не открывает браузер. Чтение всегда вклчено; запись — по выбору (DDB_WRITES=enabled).

Ранее назывался ddb-mcp; переименован, чтобы избежать коллизии с несвязанным публичным ddb-mcp/ddb-mcp. Старые URL репозитория перенаправляют.

Инструменты

Инструмент

Описание

ddb_ping

Рукопожатие: {pon, server, version, capabilities}. Вызывайте при подключении, чтобы проверить минимальную версию (semver) и увидеть, какие возможности (writes/rollPump/partySnapshot) предостavлены этим инстансом.

ddb_get_character

Лист персонажа по числовому id — компактный снимок HP/AC/состояний; full:true добавлет разобранный лист характеристик (характеристики, спасброски, навыки, инициалива).

ddb_get_monster

Монстр из компендиума по имени или id — компактный снимок HP/AC/CR; full:true возвращает весь статблок.

ddb_list_campaigns

Все кампании, в которых состоит аккаунт, с ид.

ddb_list_campaign_characters

Список {id, name} участников кампании.

start_ddb_roll_pump

Подписаться на WebSocket игрового журнала кампании; захватывать выполненные броски костей в ограниченный буфер. По умолчанию пропускает броски, перенесённые через Beyond20 (режим gap-fill).

ddb_poll_rolls

Выгрузка захваченных бросков на оснove курсора (сырое сообщение + однострочная сводка). Потребители зеркалят фактические значения костей — никогда не перебрасывают.

stop_ddb_roll_pump / ddb_roll_pump_status

Остановить поток / проверить состояние подключения (CONNECTED / RETRYING, количество сбоев, последняя ошибка).

Имена инструментов и стандатные формы вывода совпадают с тем, что предостavлял roll20-dm-mcp, поэтому сушествующие клиенты мигрируют, просто указав на этот сервер. Поток бросков отличается намеренно: он буферизует вместo публикации в Roll20 — gem вычитывает его и переносит броски через post_roll_as_character из roll20-dm-mcp.

Инструменты записи (по выбору — DDB_WRITES=enabled)

Чтение доступно всегда; эти инструменты изменения регистрируются только когда в развёртывании задано DDB_WRITES=enabled, поэтому установки на этапе подготовки и по умолчанию остаются только для чтения. Они — примитивы: выполняют ровно то изменение, которое запрошено для любого переданного им id персонажа, без какой-либо политики о том, кто владеет листом. Поскольку HP персонажей в DDB также управляется Beyond20 и собственными правками игрока, записи конкурируют с ними (последний записавший выигрывает) и предназначены как намеренные действия Мастера.

Инструмент

Описание

ddb_set_hp

Установить текущие и/или временные HP по абсолютному значению (ограничено до [0, max]).

ddb_apply_condition / ddb_remove_condition

Добавить/удалить состояние 5e по имени (для истощения требуется уровень).

Related MCP server: DM20 Protocol

Аутентификация

Для чтения аутентификация выполняется с помощью cookie CobaltSession от D&D Beyond (обменивается на кратковременный JWT; см. docs/ddb-browserless-protocol.md). Cookie расходуется, а не собирается: передайте DDB_COBALT в переменных окружения или укажите DDB_DATA_DIR на каталог, куда gem записывает ddb-cobalt.json. Отсутствующий или истёкший cookie ⇒ каждая операция чтения громко завершается ошибкой с инструкциями по повторному сбору.

Конфигурация

Переменная окружения

Значение

DDB_COBALT

Значение cookie CobaltSession (перекрывает файл данных).

DDB_DATA_DIR

Каталог, содержащий ddb-cobalt.json и кэши. Укажите на каталог данных gem (ROLL20_DATA_DIR из roll20-dm-mcp), чтобы совместно использовать собранный cookie. По умолчанию ./data.

DDB_CAMPAIGN_ID

Кампания по умолчанию для ddb_list_campaign_characters / start_ddb_roll_pump.

DDB_WRITES

Установите enabled, чтобы зарегистрировать инструменты записи (по умолчанию: только чтение).

DDB_HTTP_PORT / DDB_HTTP_HOST / DDB_MCP_TOKEN

Только для HTTP-входа (по умолчанию 39210 / 127.0.0.1 / автогенерируется в .env).

Запуск

npm install
npm run build
npm start            # stdio MCP server (Claude Code .mcp.json, gem supervised spawn)
npm run serve        # HTTP MCP server on /mcp + rolls SSE on /events (bearer-authed)

Claude Code .mcp.json:

{
  "mcpServers": {
    "ddb": { "command": "node", "args": ["E:/personalProjects/beyond-mcp/dist/index.js"] }
  }
}

Разработка

npm test             # vitest run
npx vitest run src/bridge/ddb-gamelog.test.ts   # one file
npm run lint
npm run dev          # tsx watch, stdio

Node 20+, TypeScript (NodeNext ESM), vitest — те же соглашения, что и в roll20-dm-mcp.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Connects Claude Desktop to Foundry VTT for AI-powered campaign management, enabling natural language interaction with game data including quest creation, character management, compendium searches, and dice rolling. Provides 20 MCP tools for seamless integration between Claude and your tabletop RPG sessions.
    66
  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive MCP server for managing AI-assisted Dungeons & Dragons campaigns, featuring tools for character sheets, combat tracking, and world-building. It enables players and DMs to interact with 5e game mechanics and query personal PDF rulebooks using RAG capabilities.
    97
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides Claude direct access to D\&D Beyond accounts to manage characters, campaigns, and sourcebook content. It enables users to search for spells and monsters, retrieve character data, and read owned digital books through an authenticated session.
    5

View all related MCP servers

Related MCP Connectors

  • D&D 5e MCP — wraps the D&D 5th Edition API (free, no auth)

  • Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.

  • MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2

View all MCP Connectors

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/eschatus/beyond-mcp'

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