Headless D&D 5e content-generation library and a runnable standalone MCP server, extracted from archivist-obsidian so it can be consumed outside the Obsidian plugin.
The library exposes generation tools and an SRD tool set that are generic over the
domain: callers inject a live SRD store, the pack's Generatables, and a storage/write
port. The port shapes live in src/contracts.ts (structural copies of the pack contracts).
dist/server.js is a stdio MCP server named archivist
exposing read-only SRD lookup + deterministic enrichment tools, backed by the real D&D 5e
SRD and pack generators. Your own Claude Code (or any MCP client) connects to it; the server
never writes to your vault — the client writes the .md files.
It serves 7 tools: search_srd, get_srd_entity, and
generate_{monster,spell,item,npc,encounter}.
The server bundles the @archivist/dnd5e + @archivist/core packages from the sibling
plugin repo at build time, so ../archivist-obsidian must be checked out next to this
repo.
npm install
npm run build # produces dist/server.js (self-contained; requires ../archivist-obsidian)
npm run smoke # optional: verifies the built server end-to-end (7 tools, real SRD hit)
claude mcp add archivist -- node /absolute/path/to/archivist-generators/dist/server.js
npm install
npm run check # typecheck + lint + test (no build needed)
License: MIT.