Skip to main content
Glama
flukeatzerocool

holonovel

Holonovel

Build the Holodeck. Load your campaign.

A holonovel is a Star Trek holodeck program — an interactive story where you step inside as a character and the rules govern. Holonovel builds the server (the Holodeck). Your campaign is the program (the Novel). Your rulebooks become the engine — D&D 5e, Starfinder, or the game on your shelf. Your books. Your server. Your Holodeck.

Table of contents

Related MCP server: RPG Ledger MCP Server

Quick start

holonovel

The base server — a world-model MCP with rooms, things, exits, parser commands, and narrative tools. Install it, then install any number of ruleset packages — each drops in alongside the base and never modifies it. The Build workflow reads your rulebooks and renders each as an installable package. Node.js 20+ required.

cd holonovel
npm install
npm run start

Add to your MCP client:

"holonovel": {
  "type": "local",
  "command": ["npx", "tsx", "src/index.ts"],
  "cwd": "<path>/holonovel",
  "environment": {
    "TTRPG_NOVEL": "default"
  },
  "enabled": true
}

Install a ruleset

The Build workflow turns a rulebook into a declarative package. Drop the package into the install directory — .holonovel-state/rulesets/<slug>/ by default — and the running server registers it. Packages load lazily: a ruleset's tools and index hydrate only when you open a campaign bound to that ruleset, so stacking many packages costs you nothing up front. Install, remove, and list packages from the server tools, or just move files and restart.

To start a build, run the entry point — it records the intake and prints the workflow to follow (see the spec's Workflow Runbooks appendix for the full happy path):

npm run build-ruleset dnd5e=ruleset/dnd5e/

Your campaign data and installed packages live under .holonovel-state/, outside the server tree — updating holonovel never touches them.

What it does

Holonovel is built on five capabilities. Together they deliver a complete tabletop RPG server — your rulebooks become the referee, you run the table.

Your rulebooks, running

Convert takes PDFs, HTML, and web scrapes and turns them into clean Markdown. Column detection reassembles tables across page breaks. OCR catches text embedded in images. The output is structurally sound — every heading resolved, every reference traced.

Build reads that Markdown and extracts every mechanic. Dice procedures, combat systems, spell catalogues, equipment tables, condition tracks — every structured element becomes a tool, resource, or prompt in a declarative ruleset package. Guidance prose becomes narrative material. The discovery engine samples the source, measures extraction confidence, and iterates until every mechanical section is accounted for. What can't be modeled stays searchable — nothing is fabricated to fill a gap.

"Take the Dungeon Master's Guide — every chapter, every table, every sidebar — and make it a clean source file the server can build from." "Build me a ruleset package from these files."

One spec. Any rulebook. Zero code.

A world that's real

The world model is a spatial simulation layer — rooms, exits, containers, supports, doors. Every object knows where it is and what it contains. The server maintains a real containment graph, not a paragraph of prose it hopes the AI remembers. The world model is powered by the Inform programming language — the same engine behind decades of interactive fiction classics.

Parser commands navigate the world with real containment logic. Go north. The room is there. Take the lantern. It moves from the sarcophagus to your inventory. Open containers, lock doors, examine surroundings. Exits connect automatically in both directions. Most AI RPG tools have no spatial model — the AI pretends to remember where things are. Here, your map is real.

"Go north." "Take the lantern from the sarcophagus." "Look around." "Open the iron door." "Examine the runes carved into the altar."

Your map is real.

Stories that survive

The narrative model is everything that gives your world depth. Scenes set the stage. NPCs carry personality profiles, dispositions, and dialogue voice. Lore entries fire automatically when keywords match the unfolding story. Factions track standing and agendas. Secrets gate knowledge behind discovery. Vows bind characters to quests with milestone tracking. Countdowns escalate tension on schedule. The story journal records decisions, moments, and consequences — a narrative memory that survives every rebuild.

A Novel is your entire campaign — party, NPCs, scenes, lore, combat state, world model, story journal, factions, secrets, everything. It lives on the server. It survives restarts, rebuilds, and session breaks. Export as JSON or Markdown. Import with merge, replace, or dry-run modes. Clone to test a story branch. Set checkpoints before pivotal moments. Undo any mutation. A Novel is not a chat log — it is a structured save file. Other tools ask the AI to remember your world. Holonovel writes it to the server — structured, queryable, permanent.

"Set the scene: a flooded ossuary beneath the old cathedral. The air is thick with stale incense and something older." "A figure emerges from the shadows — Sister Mora, an acolyte of the buried order. She's terrified, not hostile." "Whenever anyone speaks the name of the ossuary's patron saint, remind me: the drowned priests still pray here." "I swear a vow to recover the Saint's Reliquary before the next full moon." "Record this moment: the party chose to trust Sister Mora despite every warning sign."

Your campaign. On the server. Forever.

Roles that enforce

Every Novel has four badge settings. Player. Game Master. Observer. Editor. Switch between them at any time — no restart, no reload. The AI takes the opposite role automatically: when you're the player, the AI is your GM. When you GM, the AI plays the characters. Observer lets the AI run both sides while you watch. Editor gives you full access to set up characters, build the world, and refine lore before play begins.

Badge gating is not a prompt instruction. It is enforced server-side. The GM's secrets, lore entries, and narrative directives vanish from the Player badge's tool surface. The response the player sees never leaks what the GM knows. Player signals give you structured, persistent control — set pace, difficulty, tone, focus, and topic boundaries. Every signal persists in the GM's briefing, shaping every response until you change it. You tell the server what you want. It listens.

"Switch to the Game Master badge. I need to set up the next scene." "Switch back to my Player badge. Let's continue." "Observer mode. I want to watch the AI run both sides." "Pace: I want things to move faster." "Boundary: no body horror."

Real enforcement.

Games that evolve

Synthesis deepens your campaign through two source categories. Ruleset Wisdom is extracted from your rulebooks during Build — voice examples from example-of-play dialogue, lore templates from setting descriptions, action patterns from resolution sequences, narrative voice profiles from inspirational media citations. It persists as first-class server behavior — the Holodeck renders your rulebook's own genre conventions mechanically. Ruleset Wisdom survives every rebuild and synthesis reversion.

External research runs on demand — web-sourced GM advice, actual-play breakdowns, designer notes. Tagged with source URLs, confidence scores, and freshness timestamps. Every synthesis item is inert by default. The GM toggles what matters on and off at runtime. Re-running synthesis replaces inactive items while preserving everything the GM has activated. Revert synthesis removes external research — Ruleset Wisdom persists. The game evolves without losing what you've built.

"Find me GM advice and play examples for running horror one-shots."

The game evolves without losing what you've built.

How it compares

Tool name

What you're used to

How Holonovel differs

AI Dungeon

Freeform AI storyteller — invents rules, forgets consequences

Your rulebooks. Real dice. Real conditions. Not AI improv.

First-generation MCP servers

Hand-built for one edition of one game. Rules lookup and nothing else.

Not locked to one system. One spec reads any rulebook — D&D 5e, Starfinder, or whatever's on your shelf — no hand-coding, no waiting for someone to build your game.

Raw ChatGPT / local LLM

Forgets conditions mid-combat, invents spells, drifts from the ruleset

The server remembers every rule you gave it. Deterministic dice. Conditions that don't vanish mid-fight.

SillyTavern

LLM roleplay frontend — character cards, context prompts, WorldInfo. No rules engine.

Mechanics aren't prompts. They're code. Your rulebooks enforce the rules — not the AI's best guess.

NovelAI

Subscription AI storyteller and image generator — no enforced game mechanics

No subscription. No walled garden. Everything runs on your machine.

Holodeck

Science fiction — literally

Holonovel actually exists.

Every tool in this space asks you to pick. Rules engines serve one system and stop there. AI storytellers improvise mechanics as they go. SillyTavern gives you perfect prompt controls — and still trusts a context window to remember what "poisoned" means three rounds later. Holonovel doesn't pick. The server enforces every mechanic. The AI narrates. The Novel preserves everything. D&D 5e, Starfinder, or your own rulebook. One spec. Any game. Zero code. Your books. Your server. Your Holodeck.

Contribute

Run a server

Follow the Quick start above to get holonovel running. Node.js 20+ required (nodejs.org).

Improve the spec

npm install && npm run check   # lint + validate + assumption audit + ambiguity
                                # scan + cross-ref check + dupe detection

Command

What it checks

npm run fmea

REQ-level failure mode and effects

npm run validate --traceability

Full REQ↔test↔workflow traceability

npm run graph-deps

REQ dependency graph (DOT/Graphviz)

npm run spec-health-trends

REQ count, test count, cross-ref density

Edit files in spec/. Run npm run assemble before committing. Do not edit holonovel.md directly — it is generated from spec/ source files.

Canonical origin: git.gay/flukeatzerocool/Holonovel. This GitHub repository is a read-only mirror.

License: MIT. Built from: Graham Nelson's Inform (Artistic License 2.0), if-craft-corpus (CC BY 4.0), dmcp (MIT, Shawn Rushefsky), lonelog (CC BY-SA 4.0), BitD SRD (CC BY 3.0, John Harper). RSS. Last updated: 2026-08-09.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables creation and management of structured game worlds for text adventures and RPGs with character creation, world generation, and natural language interaction through AI integration.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to act as RPG Game Masters by managing campaign state including characters, inventory, quests, and logs through MCP tools. Supports campaign mutations and provides both MCP and HTTP API access to RPG session data.
    2

View all related MCP servers

Related MCP Connectors

  • Manage TTRPG campaigns: NPCs, locations, factions, quests, sessions, lore, and knowledge graphs.

  • 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

View all MCP Connectors

Latest Blog Posts

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/flukeatzerocool/holonovel'

If you have feedback or need assistance with the MCP directory API, please join our Discord server