SagaSmith D&D MCP
SagaSmith-dnd-mcp is a local MCP server that combines the SagaSmith Core D&Druntime, the D&D skill pack, and the module-generation skill pack.
It owns its local state by default:
<workspace>/.sagasmith-dnd-mcp/
data/ttrpgbase.db SQLite campaigns, modules, rules, and FTS indexes
data/chroma_db/ Local ChromaDB persistent store
artifacts/modules/ Generated Markdown modules before import
No D&D client should write either database directly. Use MCP tools so SQLitewrites, migrations, module artifacts, and optional vector storage share onewell-defined process boundary.
Install
From this directory:
pip install -e ".[dev]"
For dense embedding and Chroma indexing, include the optional extra:
pip install -e ".[dense,dev]"
Run
sagasmith-dnd-mcp
The server uses stdio. Configure a client such as Nanobot with:
{
"command": "sagasmith-dnd-mcp",
"args": []
}
MCP Surface
Tools include storage status/migration, campaign creation/listing, safe modulewrite/import/list/search, rule search, and skill listing/reading. Skill packsare also resources at sagasmith://skill/{skill_id}, while dnd_dm andmodule_generator are MCP prompts.
module_write is intentionally separate from module_import: generationalways leaves an editable Markdown artifact under artifacts/modules before itenters a campaign index.
Configuration
SAGASMITH_DND_MCP_HOME moves all managed local state. By default it is<SagaSmith workspace>/.sagasmith-dnd-mcp.
Set SAGASMITH_DND_MCP_DENSE_ENABLED=1 after installing [dense] to enableembedding-backed retrieval. The default remains SQLite FTS-only so the MCP canstart without loading an embedding model.
SAGASMITH_DATABASE_URL may point the Core runtime to an external database.CHROMA_DB_URL may point vector retrieval to a remote Chroma service. Whenneither is set, this server uses its own SQLite file and Chroma directory.CHROMA_DB_PATH is also respected when a different local Chroma directory isneeded.
Use SAGASMITH_DND_SKILLS_DIR and SAGASMITH_MODULEGEN_SKILLS_DIR to point atdifferent checkouts of the skill packs.