daggerheart-ai
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@daggerheart-aiSearch the SRD for rules on critical hits."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
daggerheart-ai
MCP server for semantic search over the Daggerheart SRD (~790 markdown files + 212 bestiary creatures), exposed to Claude Code during DnD session prep.
Tools
search_srd — semantic search across all rules, abilities, classes, equipment, and lore.
get_entry — fetch a named entry by category + name (exact or partial match).
query_monsters — filter adversaries + creatures by tier, role, thematic
family, difficulty range, attack range, keyword, and source. Bestiary environments are excluded by default (include_environmentsto add them).list_entries — list every entry in a category.
Related MCP server: ragi
How it works
Content is indexed once into a local SQLite database (srd.db) with
bge-small-en-v1.5 embeddings (384-dim) stored in sqlite-vec. Searches
use sqlite-vec KNN with a brute-force cosine fallback.
Embeddings are computed fully on-device via
fastembed (ONNX Runtime) — no
API key, no proxy, no network. The model (~30MB) downloads once to
.fastembed_cache/ on first use, then everything runs offline.
Setup
Prerequisites: Node 18+. No accounts, keys, or proxies.
npm install # uses .npmrc: Netflix registry + legacy-peer-depsSRD content
The srd/ folder is git-ignored. Populate it from your vault copy, then index:
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 buildRe-run npm run index after any SRD change.
Register with Claude Code
Add to the relevant project/vault .mcp.json:
"daggerheart": {
"type": "stdio",
"command": "node",
"args": ["/Users/chrisdhanaraj/projects/daggerheart-ai/dist/index.js"]
}Restart Claude Code, then /mcp should show daggerheart connected with 4 tools.
Scripts
Script | Purpose |
| Embed the SRD into |
| Compile |
| Run the server from source via tsx |
| Run the built server ( |
Notes
Never write to stdout in the server — it is the JSON-RPC channel. Logs go to stderr.
Embeddings are on-device (
fastembed/ bge-small-en-v1.5, 384-dim). The query side usesqueryEmbed(BGE instruction prefix); indexing usesembed.sqlite-vec
vec0primary keys must be bound asBigIntin better-sqlite3.Rebuild (
npm run build) after any change undersrc/.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.
MCP server for querying Forkast documentation
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- AlicenseAqualityBmaintenanceD\&D 5e SRD MCP server - monster search, spell lookup, encounter building, and character tools powered by ground-truth SRD data2046 npm5MIT
- AlicenseAqualityDmaintenanceLocal-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.36 npmMIT

SagaSmith D&D MCPofficial
AlicenseNot gradedqualityFmaintenanceA 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- FlicenseNot gradedqualityBmaintenanceSelf-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.-