daggerheart-ai
Click on "Install 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.
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
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
D&D 5e MCP — wraps the D&D 5th Edition API (free, no auth)
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/chrisdhanaraj/daggerheart-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server