Skip to main content
Glama
archivist-gg

archivist

Official
by archivist-gg
README.md
# @archivist/generators

Headless D&D 5e content-generation library **and a runnable standalone MCP server**,
extracted from [archivist-obsidian](https://github.com/archivist-gg/archivist-obsidian-plugin) 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 `Generatable`s, and a storage/write
port. The port shapes live in `src/contracts.ts` (structural copies of the pack contracts).

## The MCP server (step 3 — done)

`dist/server.js` is a stdio [MCP](https://modelcontextprotocol.io) 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}`.

### Build (required before use)

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)

### Connect Claude Code

    claude mcp add archivist -- node /absolute/path/to/archivist-generators/dist/server.js

## Develop

    npm install
    npm run check       # typecheck + lint + test (no build needed)

License: MIT.