Skip to main content
Glama

daggerheart-ai

MCP-сервер для семантического поиска по SRD Daggerheart (~790 markdown-файлов + 212 существ бестиария), доступный в Claude Code при подготовке к DnD-сессиям.

Инструменты

  • search_srd — семантический поиск по всем правилам, способностям, классам, снаряжению и лору.

  • get_entry — получение именованной записи по категории + имени (точное или частичное совпадение).

  • query_monsters — фильтрация противников и существ по уровню, роли, тематическому family, диапазону сложности, дальности атаки, ключевому слову и источнику. Окружения бестиария по умолчанию исключены (include_environments для их добавления).

  • list_entries — список всех записей в категории.

Related MCP server: ragi

Как это работает

Контент индексируется один раз в локальную базу данных SQLite (srd.db) с эмбеддингами bge-small-en-v1.5 (384-мерные), хранящимися в sqlite-vec. Поиск использует KNN из sqlite-vec с запасным вариантом на косинусной метрике.

Эмбеддинги вычисляются полностью на устройстве через fastembed (ONNX Runtime) — без API-ключа, без прокси, без сети. Модель (~30МБ) загружается один раз в .fastembed_cache/ при первом использовании, после чего всё работает офлайн.

Настройка

Предварительные требования: Node 18+. Никаких аккаунтов, ключей или прокси.

npm install                 # uses .npmrc: Netflix registry + legacy-peer-deps

Контент SRD

Папка srd/ игнорируется git. Заполните её из своей копии хранилища, затем индексируйте:

rsync -a --exclude='.git' --exclude='.build' --exclude='.github' \
  '/path/to/daggerheart-srd/' srd/

npm run index   # one-time; clears + rebuilds the index (first run downloads the model)
npm run build

Повторно запускайте npm run index после любых изменений SRD.

Регистрация в Claude Code

Добавьте в соответствующий .mcp.json проекта/хранилища:

"daggerheart": {
  "type": "stdio",
  "command": "node",
  "args": ["/Users/chrisdhanaraj/projects/daggerheart-ai/dist/index.js"]
}

Перезапустите Claude Code, затем /mcp должен показать daggerheart подключённым с 4 инструментами.

Скрипты

Скрипт

Назначение

npm run index

Встраивание SRD в srd.db (однократно / после обновлений SRD)

npm run build

Компиляция src/ → dist/

npm run dev

Запуск сервера из исходников через tsx

npm start

Запуск собранного сервера (dist/index.js)

Примечания

  • Никогда не пишите в stdout в сервере — это канал JSON-RPC. Логи идут в stderr.

  • Эмбеддинги вычисляются на устройстве (fastembed / bge-small-en-v1.5, 384-мерные). На стороне запроса используется queryEmbed (инструкционный префикс BGE); при индексации — embed.

  • Первичные ключи vec0 в sqlite-vec должны привязываться как BigInt в better-sqlite3.

  • Пересобирайте (npm run build) после любых изменений в src/.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Local-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.
    3
    13 npm
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    A local MCP server for Dungeons & Dragons campaign management, combining core runtime with skill and module-generation packs. It enables campaign creation, module generation and import, rule and skill searching via tools, resources, and prompts.
    Apache 2.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    Self-hosted MCP server for D&D 5e rules reference, answering rule questions, providing character summaries, and assisting with character creation, based on imported sources with proper attribution.
    -