Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.flukeatzerocool/holonovel

NPM · HOLONOVEL

Holonovel MCP server: world-model base for tabletop RPG play (rooms, parser, narrative tools).

Available components

0 this week 87 Trust /100

Last scanned (1 day ago)

Scores higher than 91% of npm servers

Category Entertainment and Games

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to flukeatzerocool/holonovel). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 3 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability46
  • 13% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 14067 tokens (~182/item across 77 items; 37 tools + 40 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management82
  • Stability check failed: the tool surface changed between 2026.9.30 and 2026.10.31: 6 tool removals, 0 breaking changes, 10 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 37 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 76 to 82.

  • 1 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 −16
    • Malware scan: pass → unverified ▼ security
    • Package version: 2026.10.26 → 2026.10.31 functional
  • 28 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 27 Oct 26 −4
    • Malware scan: pass → unverified ▼ security
    • Security disclosure: unverified → pass ▲ functional
    • Destructive annotations: 100 → pass functional
    • Package version: 2026.10.25 → 2026.10.26 functional
  • 26 Oct 26 0
    • Security disclosure: pass → unverified ▼ functional
  • 25 Oct 26 0
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 11 → unverified ▼ functional
    • Package version: 2026.10.22 → 2026.10.25 functional
  • 22 Oct 26 −1
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Schema quality: 146 → 178 ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 11 → unverified ▼ functional
    • Package version: 2026.10.12 → 2026.10.22 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/holonovel@2026.10.31

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo flukeatzerocool/holonovel
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/flukeatzerocool/holonovel/.github/workflows/publish.yml@refs/heads/main
Rekor log index 3614824450
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:4898665cebac8005ecede1607d04a88be3d95352e66911f45c6c4fb90eb9575e2976db5889134bcb226e6ca7af2c82629dc456615003b1db245b7effa

Background: How many MCP packages publish verified provenance →

Dependencies 92 packages
Packages resolved 92
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 37 exposed · ~13,734 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
close_session ~95

Close a play session by returning a recap and saving the current context. The close seals the session's recap and saved context but does not archive or export the Novel; resume it later with open_session. Context and recap state persist and are audited; revert with manage_history (action: undo). Use when: ending a session or checkpointing the narrative context. Do NOT use when: archiving or exporting a Novel — use manage_archive.

Input schema present but exposes no named parameters.

NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_adventure ~230

Generate, load, or list adventure content. generate writes a scaffold to target — novel, codex, or both (default novel when one is active, else codex) — using premise; a !force prefix overrides the generation guard. generate_encounter writes one encounter to the Novel using context. Both persist, appear in the audit log, and the most recent write is undoable via manage_history (action: undo). load and list are read-only, and list accepts an optional genre filter. Use when: the GM wants a new adventure scaffold, a single encounter, or to load a prepared module. Do NOT use when: recording a story beat — use manage_story (action: record).

NameTypeReqDescription
actionstringyesgenerate, generate_encounter, load, or list.
contextstring–Scene context (generate_encounter).
filterstring–Optional genre filter (list).
premisestring–Adventure premise (generate).
slugstring–Adventure module slug (load).
targetstring–novel, codex, or both (generate).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_agent ~286

Manage durable NPC/agent tasks and their action lifecycle. create reads goal and optional source_goal; advance requires task_id and appends description; complete, fail, and cancel require task_id, settle the task without deleting it, and terminal tasks are immutable; autonomy defaults to TTRPG_AGENT_AUTONOMY. Mutating actions persist to the Novel and are audited; list/get are read-only. Use when: creating, starting, advancing, settling, or inspecting tasks. Do NOT use when: surfacing an advisory suggestion — use manage_scene (action: oracle); managing NPC identity — use manage_npc. Revert with manage_history (action: undo).

NameTypeReqDescription
actionstringyescreate, list, get, start, advance, complete, fail, or cancel.
autonomystring–advisory, prompt, or auto (create; default the TTRPG_AGENT_AUTONOMY setting).
descriptionstring–Action description (advance).
detailboolean–Return full agent tasks instead of summary entries (list).
goalstring–Task goal text (create).
source_goalstring–Originating goal-pursuit suggestion (create).
subjectstring–Entity or NPC that owns the task (create/list).
task_idstring–Task id (get/start/advance/complete/fail/cancel).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_archive ~459

Export, import, archive, unarchive, clone, branch, and checkpoint Novel save files. export writes a file in json or markdown; share emits a portable full-scope json bundle with embedded adventure content; import writes Novel state and mode selects dry-run (validate only), merge (keep existing entries), or replace (discard current Novel state), while strict aborts on unresolved references. clone copies the whole Novel unless trim_audit_sessions keeps only recent sessions; branch starts from from_event (default latest); archive is reversible with unarchive; checkpoint_restore replaces the live Novel with the stored checkpoint and is itself undoable; checkpoint subscriptions persist. Use when: exporting or importing a Novel, archiving/unarchiving, cloning/branching, or managing checkpoints. Do NOT use when: creating, resuming, renaming, or ending a Novel — use manage_novel. Revert the most recent mutation with manage_history (action: undo); checkpoint_list is read-only.

NameTypeReqDescription
actionstringyesexport, import, archive, unarchive, clone, branch, checkpoint_set, checkpoint_list, checkpoint_restore, checkpoint_remove.
datastring–Exported Novel JSON (import).
formatstring–Output format (export).
from_eventnumber–Event-log ordinal to branch from (branch; default latest).
include_checkpointsboolean–Include checkpoints in export (default false; export).
labelstring–Checkpoint label (checkpoint_set/list/restore/remove).
modestring–dry-run, merge, or replace (import).
new_namestring–Name for the copy or branch (clone/branch).
scopestring–Export scope (export).
shareboolean–Emit a portable full-scope bundle with embedded adventure content (export; JSON only).
slugstring–Novel slug (resume/switch/archive/unarchive/info).
source_slugstring–Novel to copy or branch from (clone/branch).
strictboolean–Fail on any cross-reference mismatch (import).
trim_audit_sessionsnumber–Keep only the most recent N sessions' audit entries in the clone (clone; default full copy).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_artifact ~315

Manage the host registry of shareable artifacts — Novel packs, adventure modules, and ruleset packages — exchanged offline through an inbox. list and verify are read-only. install copies a verified artifact into its kind directory and audits it; ruleset tools become callable after restart. remove is permanent (no undo), rebuilds ruleset prompts, and refuses while a Novel depends on it. install/remove need the GM badge and record a security event, and install refuses a hash/provenance mismatch, a mismatched slug, or an existing slug; slug names remove/verify and must match the artifact's slug on install (a pack without one adopts it). source is an inbox-relative file or package directory; location is GM-only. Use when: exchanging a world pack or ruleset between installations. Do NOT use when: installing a package built in-process — use manage_ruleset (action: install); importing state into the active Novel — use manage_archive (action: import).

NameTypeReqDescription
actionstringyeslist, install, remove, or verify.
integritystring–Integrity filter: verified, unverified, or absent (list).
kindstring–Artifact kind; filters list and targets install/remove/verify.
slugstring–Artifact slug (remove/verify); on install it must match the artifact's own slug, and a pack without one adopts it.
sourcestring–Inbox-relative Novel pack (.json), adventure module (.md), or ruleset package directory to install (install).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_belief ~673

Manage per-entity evidence, reconciled belief stances, the perception ledger, and a one-entity knowledge query. list, get, evidence, conflicts, perception_list, and knowledge_query read; admit, retract, reconcile, and perception_record write. admit records a subject/predicate/object proposition with a 0..1 weight and does not change a stance until reconcile recomputes it; retract requires the evidence_id from admit and reconciles; the perception ledger is append-only, so correct a mistaken perception with a new record. Mutating actions persist to the Novel. knowledge_query returns perceptions, beliefs, and known secrets with event provenance, optionally filtered by topic. Use when: inspecting or recording what an entity learned or believes. Do NOT use when: recording objective truth — use manage_causality; recording shared lore — use manage_lore; ranking derived text or traversing the knowledge graph — use manage_knowledge.

NameTypeReqDescription
actionstringyesBelief: list, get, evidence, admit, retract, conflicts, or reconcile. Perception ledger: perception_record, perception_list, perception_for_entity, or perception_for_event. Knowledge: knowledge_query.
detailboolean–Return full belief records instead of summary entries (list).
entity_idstring–Entity whose beliefs are queried or mutated.
evidence_idstring–Evidence record id (retract).
objectstring–Proposition object (admit).
perception_confidencenumber–0..1 confidence (perception_record; default 0; REQ-594).
perception_entity_idstring–Entity that perceived (perception_record/perception_for_entity).
perception_event_ordinalnumber–Contributing event-log ordinal (perception_record/perception_for_event; defaults to the latest event).
perception_kindstring–message, scene, or observation (perception_record; default observation).
perception_room_idstring–Room identifier for the perception (perception_record; defaults to the entity's room).
perception_sensestring–Sense that produced the perception (perception_record; default null; REQ-594).
perception_source_entitystring–Entity the perception came from (perception_record; default null).
perception_summarystring–What was perceived (perception_record).
perception_witnessstring–Witness kind (perception_record; default inferred; REQ-594).
polaritystring–positive or negative (admit).
predicatestring–Proposition predicate (admit).
questionstring–Belief question key, or subject|predicate|object (get/evidence).
sourcestring–Source key used to correlate duplicate evidence (admit; default the active badge).
source_ordinalnumber–Contributing event-log ordinal (admit; default the latest event ordinal).
statusstring–active, unresolved, or suppressed (admit; default active).
subjectstring–Proposition subject (admit).
topicstring–Optional topic filter applied to knowledge_query perceptions, beliefs, and secrets.
weightnumber–Evidence support weight 0..1 (admit; default 1).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_causality ~394

Manage objective causal state and transition proposals. causal_propose records a proposal without applying it; causal_admit applies the proposal and causal_reject marks it rejected without deleting the ledger record; causal_expected_version guards optimistic concurrency and causal_from records the expected prior value; causal_ingress admits an external event without a proposal. Proposals persist and are audited, and the ledger is capped by TTRPG_CAUSAL_MAX_LEDGER_ENTRIES; list and state are read-only. Causal changes are not undoable via manage_history. Use when: proposing, admitting, rejecting, listing, or inspecting causal transitions, or ingressing an external event. Do NOT use when: changing rooms, things, or exits — use manage_world.

NameTypeReqDescription
actionstringyescausal_propose, causal_admit, causal_reject, causal_list, causal_state, causal_ingress.
causal_domainstring–location or scalar (causal_propose; default location).
causal_entitystring–Entity whose objective state is proposed (causal_propose).
causal_expected_versionnumber–Optimistic version guard (causal_propose).
causal_fromstring|number|boolean|null–Expected prior value (causal_propose).
causal_keystring–State key within the entity (causal_propose).
causal_origin_sourcestring–narrative, machine, or ruleset (causal_propose).
causal_proposal_idstring–Recorded proposal id (causal_admit/causal_reject).
causal_scopestring–Scope coordinate (causal_propose; default the active Novel slug).
causal_source_ordinalnumber–Contributing event-log ordinal (causal_propose; default the latest event).
causal_valuestring|number|boolean|null–Proposed value (causal_propose/causal_ingress).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_character ~580

Manage player characters: create, import, stage, activate, edit, signal, remove, or list roster characters. stage adds an existing entity to the roster; set_active chooses which Novel entity play acts through and optionally sets pov; import requires roster_id and copies that roster character into the Novel. sheet and roster_list are read-only; Novel mutations persist, are audited, and are undoable via manage_history (action: undo). update merges provided fields (stats shallow-merge; omitted fields preserved), personality{} aliases description/voice/background/goals, and details{} aliases ability_scores/skills/feats/talents/equipment; a top-level value overrides its grouped alias. stage and roster_remove are exact inverses on the roster; remove deletes the Novel entity and is undoable. Use when: creating or importing a PC, staging or activating one for play, editing its sheet or voice, or handling player feedback. Do NOT use when: managing an NPC — use manage_npc.

NameTypeReqDescription
ability_scores––Ability scores (create).
actionstringyescreate, stage, import, sheet, set_active, personality, voice, signal, update, remove, roster_remove, or roster_list.
backgroundstring–Backstory (create/personality).
classes––Class levels (create).
descriptionstring–Narrative description (create/personality).
detailsobject–Grouped mechanical details (create).
entity_idstring–Entity identifier (stage/sheet/set_active/personality/voice/remove).
equipment––Starting equipment (create).
examplesarray–Voice examples (voice).
feats––Feats (create).
formatstring–Output format (sheet).
goalsstring–Character goals (create/personality).
inventoryarray–Replace the entity's inventory (update).
namestring–Character name; omit (create) to begin step-by-step.
personalityobject–Grouped personality fields (create).
povstring–Point-of-view mode (set_active).
roster_idstring–Roster identifier (import/roster_remove).
seedstring–Deterministic seed (create).
signalstring–Feedback category (signal).
skills––Trained skills (create).
speciesstring–Species (create).
stage_to_rosterboolean–Also stage into the roster (create).
stat_methodstring–Stat-generation method (create).
statsobject–Mechanical stat keys to shallow-merge into the entity's stats (update).
talents––Talents (create).
valuestring–Feedback text (signal).
voicestring–Voice and speech pattern (create/personality).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_codex ~457

Manage the server-level codex library of reusable, cross-Novel content (NPCs, characters, scenes, encounters, lore, factions, rooms, things, templates, voice profiles, adventures). Entries persist to `.holonovel-state/codex.json` outside every Novel and survive restarts; mutations are audited. Out-of-play and badge-free: requires the Editor or Game Master badge, a Player mid-adventure gets `[FORBIDDEN]`, and reads are not badge-filtered. When no Novel is active, the codex is the default store; `import` and `capture` require an active Novel. `set` needs `kind` + `name` (the id derives from them); merge=true shallow-merges content. Revert the most recent mutation with manage_history (action: undo). Use when: storing reusable content for later import, or enumerating/reading/deleting it. Do NOT use when: storing Novel-scoped content — use manage_lore (action: set) or manage_note (action: set).

NameTypeReqDescription
actionstringyesset (create/update), list, get, capture (Novel artifact per kind), import (into active Novel), or delete.
content––Entry content (for set); when omitted on an existing entry, the stored content is preserved.
descriptionstring–Optional description (for set).
entity_idstring–Entity whose voice to capture (for capture, voice_profile kind).
entry_idstring–Entry identifier (for get/import/delete); alias of `id`.
id––Entry identifier or array of identifiers (for import/get/delete).
kindstring–Entry kind (for set/list/capture).
mergeboolean–For set: when true and the entry exists, shallow-merge the provided content into the stored content instead of replacing it.
namestring–Entry name (for set).
source_idstring–Novel artifact key/name/entity id to capture (for capture). Defaults per kind.
tagsarray–Optional tags (for set).
update_sourceboolean–When true, update the source Codex entry in place (for capture).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_combat ~209

Manage combat encounters in the active Novel — encounter turn order, participants, and lifecycle, not per-entity conditions. Mutating actions persist to the Novel and are audited; read-only actions do not mutate state. Revert the most recent mutation with manage_history (action: undo). init's seed only reorders the danger set; participants keep their given order. Use when: starting, advancing, ending a fight, or changing its participants. Do NOT use when: applying a status effect — use manage_condition (action: apply).

NameTypeReqDescription
actionstringyesinit, advance, end, add_participant, remove_participant, or status.
dangersarray–Optional non-entity combatants (init).
outcomestring–Optional text describing how combat ended (end).
participant_idstring–Entity identifier (add_participant/remove_participant).
participantsarray–Entity identifiers participating (init).
seedstring–Optional deterministic seed (init).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_condition ~191

Manage mechanical or narrative conditions on entities. apply attaches a named condition to one entity; rounds is a positive round count, and omitting it (or passing 0) leaves the condition without an expiry. Re-applying an active condition warns instead of duplicating it, and remove deletes the condition and its round counter. apply and remove require the GM or Editor badge, persist to the Novel, and are undoable via manage_history (action: undo); list is read-only. Use when: applying, removing, or listing conditions. Do NOT use when: recording damage or combat state — use manage_combat (action: init/advance).

NameTypeReqDescription
actionstringyesapply, remove, or list.
conditionstring–The condition name (apply/remove).
entity_idstring–The entity to affect (apply/remove).
roundsnumber–Optional duration in rounds (apply).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_context ~459

Manage play-facing context controls: recap, verbosity, briefing_order, and tool discovery, distinct from story content and Novel lifecycle. recap accepts an archived session_id, GM-only gm_notes, and an optional compression tier; gm_notes are never returned to a non-GM badge. discover searches names, descriptions, and titles, and detail schema requires query. verbosity is session-scoped; briefing_order persists to the Novel and requires the GM or Editor badge. recap and discover are read-only; a setting is restored by setting it again (no undo snapshot is taken). Use when: recapping play, tuning output verbosity, reordering the briefing, or finding a tool. Do NOT use when: health, audit compaction, event-log, or category operations — use manage_diagnostics; recording story content — use manage_story (action: record).

NameTypeReqDescription
actionstringyesrecap, verbosity, briefing_order, or discover.
budget_tokensnumber–Positive token budget for tier assembly (recap; REQ-592) or for ledger packing (context_report; REQ-610).
detailstring–discover response detail: summary (default) or schema (live input schemas for the matches; requires query; REQ-609).
formatstring–Recap/compress output notation (recap, compress; default markdown; REQ-072g).
gm_notesstring–GM-only free-text notes returned only to the Game Master badge (recap).
max_rollsnumber–Significant rolls to return, bounded 1–50 (recap; default 5; REQ-072e).
max_transitionsnumber–Scene transitions to return, bounded 1–20 (recap; default 5; REQ-072e).
modestring–normal or terse (verbosity).
querystring–Optional search term matched against tool name, description, and title (discover).
sectionsarray–Ordered list of briefing sections (briefing_order).
session_idstring–Archived session id to include in recap (recap).
tierstring–Compression tier to assemble (recap; REQ-592).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_corpus ~460

Manage the cold-reference knowledge corpus. corpus_register indexes a document with optional access_public, access_domains, grants, and denies; route derives its domain from a trusted source profile; grant and deny add per-entity decisions, and an explicit deny overrides public, grant, and domain access; access sets an entity's domain profile; consume records a read. Mutating actions persist access state and are audited; list, get, and acquisitions are read-only. Corpus mutations are not undoable via manage_history. Use when: registering, listing, reading, routing, granting/denying access, consuming, or inspecting acquisitions of corpus documents. Do NOT use when: writing Novel lore entries or secrets — use manage_lore; ranking derived text or traversing the knowledge graph — use manage_knowledge.

NameTypeReqDescription
actionstringyescorpus_register, corpus_list, corpus_get, corpus_route, corpus_grant, corpus_deny, corpus_access, corpus_consume, corpus_acquisitions.
corpus_access_domainsarray–Knowledge domains granted access (corpus_register).
corpus_access_publicboolean–Whether every entity may consume it (corpus_register; default false).
corpus_bodystring–Document reference text (corpus_register).
corpus_deniesarray–Entity ids explicitly denied access (corpus_register).
corpus_document_idstring–Corpus document id (corpus_get/corpus_route/corpus_grant/corpus_deny/corpus_consume).
corpus_domainstring–Knowledge domain (corpus_register/corpus_route/corpus_list).
corpus_domainsarray–Knowledge domains the entity may access (corpus_access).
corpus_entity_idstring–Entity acquiring or inspected (corpus_consume/corpus_acquisitions/corpus_access/corpus_grant/corpus_deny).
corpus_grantsarray–Entity ids explicitly granted access (corpus_register).
corpus_modestring–read, research, taught, or import (corpus_consume; default read).
corpus_source_profilestring–Trusted source profile the domain is routed from (corpus_register; default manual).
corpus_titlestring–Document title (corpus_register).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_countdown ~307

Manage countdown timers in the active Novel. set accepts a starting tick count and optional total; advance fires the configured world_effect when the countdown reaches its threshold, and on_scene_transition advances it automatically; direction shifts NPC dispositions only when scope is also set. remove is GM-only and deletes the timer without firing its world_effect. Mutating actions persist to the Novel and are audited; list is read-only. Use when: starting, advancing, removing, or listing clocks. Do NOT use when: tracking a vow's progress — use manage_vow (action: milestone). Revert with manage_history (action: undo).

NameTypeReqDescription
actionstringyesset, advance, remove, or list.
directionstring–Optional direction: increment or decrement (set).
namestring–Countdown name (set/advance/remove).
on_scene_transitionboolean–When true, advance on each scene transition (set).
scopestring–Optional scope name (set).
survivalobject–Survival-resource parameters applied when a room hazard names this countdown (set; REQ-622c).
ticksnumber–Starting ticks (set).
totalnumber–Optional capacity for decrement refills (set; defaults to ticks).
triggersarray–Optional world-model triggers (set).
typestring–round or narrative (set).
world_effectobject–Optional world-model effect applied when the countdown fires (set).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_diagnostics ~738

Manage session diagnostics and maintenance surfaces separate from play-facing session controls. compress summarizes the audit log while compact prunes it irreversibly; verify compares live state with recorded hashes and replay reads the retained log, and both are read-only; context_report emits a per-section token ledger and accepts budget_tokens to pack it; visibility_check records its decision in the audit log while visibility_audit reads recent decisions; health, subscribe, and category reassignment do not change Novel content. compact is GM-only. Use when: reporting health or context size, summarizing or compacting the audit log, subscribing, reassigning a category, appending/reading the event log, verifying or replaying state, or scanning a draft for GM-only disclosure. Do NOT use when: recapping play, setting verbosity, or reordering the briefing — use manage_context.

NameTypeReqDescription
actionstringyeshealth, context_report, compress, compact, subscribe, category, event, history, verify, replay, visibility_check, or visibility_audit.
audiencestring–Audience badge for a visibility check (visibility_check; default the active badge).
budget_tokensnumber–Positive token budget for tier assembly (recap; REQ-592) or for ledger packing (context_report; REQ-610).
categorystring|null–New category label, or null/empty to restore the default (category).
detailstring–discover response detail: summary (default) or schema (live input schemas for the matches; requires query; REQ-609).
formatstring–Recap/compress output notation (recap, compress; default markdown; REQ-072g).
gm_notesstring–GM-only free-text notes returned only to the Game Master badge (recap).
include_supersededboolean–Include superseded events (history; default true).
max_entriesnumber–Positive integer; returns a non-mutating summarize prompt over the most recent entries (compress).
max_rollsnumber–Significant rolls to return, bounded 1–50 (recap; default 5; REQ-072e).
max_transitionsnumber–Scene transitions to return, bounded 1–20 (recap; default 5; REQ-072e).
modestring–normal or terse (verbosity).
ordinalsarray–Exact event ordinals to return in order (history; REQ-591).
querystring–Optional search term matched against tool name, description, and title (discover).
sectionsarray–Ordered list of briefing sections (briefing_order).
session_idstring–Archived session id to include in recap (recap).
sessionsnumber–Number of recent sessions to retain live; triggers irreversible compaction (compact; default TTRPG_AUDIT_RETENTION_SESSIONS).
sourcestring–Event source classification (event).
supersedenumber–Ordinal of an event this observation replaces (event).
textstring–Observation text (event).
through_ordinalnumber–Return events up to and including this ordinal (history).
tierstring–Compression tier to assemble (recap; REQ-592).
to_eventnumber–Target event ordinal for replay inspection (replay; default the newest retained entry).
tool_namestring–Registered tool name to reassign (category).
topicsarray–Notification topics to subscribe to (subscribe).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_faction ~242

Manage organizations in the active Novel: create, update, remove, or list factions, each carrying a name, description, goals, resources, and optional territory room names. name is required to create and faction_id targets an existing faction; the progress clock is Novel-internal and not set directly. create, update, and remove require the GM or Editor badge, persist to the Novel, and are undoable via manage_history (action: undo); remove deletes the faction permanently unless undone, and list is read-only. Use when: creating, revising, removing, or listing factions. Do NOT use when: tracking a faction's territory rooms — use manage_world (action: create_room).

NameTypeReqDescription
actionstringyescreate, update, remove, or list.
descriptionstring–Optional description.
detailboolean–Return full faction records instead of summary entries (list).
faction_idstring–Faction identifier (update/remove).
goalsarray–Optional goals.
namestring–Faction name (create).
resourcesstring–Optional resources.
territoryarray–Optional territory names.
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_history ~181

Undo or redo the most recent state mutation for the calling badge, restoring the Novel content snapshot captured before it. Append-only logs, checkpoints, and the undo/redo stacks are preserved rather than rolled back, and the response reports success without a diff. Both directions mutate Novel state and persist immediately. The stack is per badge and capped by TTRPG_MAX_SNAPSHOT_DEPTH, and a pending workflow decision blocks both until resolved with respond_decision. Use when: reverting the last mutation (undo) or restoring an undone one (redo). Do NOT use when: an older change is the target — re-run the owning tool (for example manage_story), because only the most recent mutation is stacked.

NameTypeReqDescription
actionstring–Which direction to move: undo (revert the last mutation) or redo (re-apply the last undone mutation). Defaults to undo.
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_identity ~317

Manage a roster character's durable identity: staged candidates, accepted facets, and the versioned compiled kernel. stage imports or authors identity material; accept replaces a facet, retains the displaced value in an internal history, and bumps the identity version; reject marks a candidate rejected without touching accepted facets; revert restores the most recently displaced facet. bootstrap seeds from a character card; accept's perspective defaults to the candidate's stored perspective. Mutation persists the roster and is audited; list and snapshot are read-only and report current facets only. Use when: staging, accepting, rejecting, reverting, or reading identity material. Do NOT use when: recording what a character knows or believes — use manage_belief; editing narrative personality — use manage_character (action: personality).

NameTypeReqDescription
actionstringyesstage, accept, reject, revert, list, snapshot, or bootstrap.
candidate_idstring–Identity candidate id (accept/reject).
cardobject–Character-card fields to stage (bootstrap).
character_idstringyesRoster character id.
facetstring–Identity facet key, e.g. name or calling (stage).
perspectivestring–self, biographical, public_reputation, secret, or unknown (stage/accept; default self).
sourcestring–Provenance label for the candidate (stage; default manual).
stabilitystring–structural, constitutional, core, or developmental (stage; default core).
valuestring–Identity facet value (stage).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_knowledge ~267

Manage derived, in-memory knowledge over Novel sources: a semantic index for advisory text ranking and a typed knowledge graph. index_build and graph_build are audited, replace the prior projection in one step, and do not persist a separate copy; both are safe to rebuild from the authoritative Novel file, which is never modified. Search and neighbor reads require the matching build and return one hop of edges or ranked candidates (limit defaults to 5); rebuild after editing or restoring the Novel. The read actions never mutate state. Use when: building or rebuilding the index or graph, checking staleness, ranking indexed items, or reading relations and graph structure. Do NOT use when: searching a bound ruleset's index — use manage_ruleset (action: search); recording knowledge — use manage_corpus; recording beliefs or perceptions — use manage_belief.

NameTypeReqDescription
actionstringyesindex_* actions operate the semantic index; graph_* actions operate the knowledge graph.
item_idstring–Indexed item id to filter relations (index_relations).
limitnumber–Maximum candidates to return (index_search; default 5).
node_idstring–Graph node id (graph_neighbors).
querystring–Query text to rank candidates against (index_search).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_lore ~438

Manage the active Novel's lore entries — durable world facts every caller recalls. set upserts a keyed entry, merging supplied fields into an existing key; update requires an existing key and changes only supplied fields; set_secret, reveal, secret_list, and knowledge control Player-visible knowledge. import defaults to a dry-run; merge overwrites colliding keys and keeps entries not in the import, and replace clears first. Triggers fire when scene text contains them; sticky counts scenes an entry stays active after its last match. Lore mutations require GM/Editor, persist to the Novel, and are undoable; reads are read-only. Use when: creating, revising, removing, toggling, grouping, suggesting, listing, exporting, importing, or controlling what an entity knows. Do NOT use when: recording one entity's beliefs or perceptions — use manage_belief; handling cold-reference documents — use manage_corpus; storing scratch notes — use manage_note.

NameTypeReqDescription
actionstringyesset, update, remove, toggle, group, suggest, list, get, export, import, set_secret, reveal, secret_list, or knowledge.
badge_scopestring–game_master or shared (set/update).
contentstring–Lore content (set/update).
datastring–JSON or Markdown lorebook data (import).
detailboolean–Return full lore entries instead of summary entries (list).
entity_idstring–Entity to reveal to / whose knowledge to read (reveal/knowledge).
formatstring–Optional output format (export).
groupstring|null–Group name, or null to clear (set/update/group).
keystring–Lore key (set/update/remove/toggle/group/get).
modestring–dry-run, merge, or replace (import).
prioritynumber–Optional priority (set/update).
stickynumber–Optional sticky weight (set/update).
triggersarray–Optional recall triggers (set/update).
world_targetstring–Optional world-model target reference (set/set_secret).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_note ~270

Manage Novel-scoped scratch notes, badge-scoped to game_master (default), player, or shared. set replaces the note content; badge_scope defaults to game_master and controls which badge can read it; remove deletes one note, and the Player badge cannot remove a game_master note; list hides game_master notes from non-GM badges. set_server stores a GM-only server-level note with an optional narrative_tag; remove_server deletes it; list_server returns summaries unless detail is set. Mutating note actions persist and are audited, but are not undoable. Use when: storing scratch state the caller will reuse. Do NOT use when: recording durable world facts — use manage_lore (action: set); handling external documents — use manage_corpus; ranking derived text — use manage_knowledge.

NameTypeReqDescription
actionstringyesset, remove, list, set_server, remove_server, or list_server.
badge_scopestring–game_master, player, or shared (set).
contentstring–The note content (set/set_server).
detailboolean–Return full server notes instead of summary entries (list_server).
keystring–The note key (set/remove/set_server/remove_server).
narrative_tagstring–Optional narrative tag (set_server).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_novel ~723

Manage a Novel's save-file lifecycle: create, resume, switch, end, rename, describe, set genre, list, save/get play context, and record provenance. list returns one line per Novel unless detail is set, and filter selects active, archived, or all. create, save_context, and provenance persist; list, info, and get_context are read-only. export, import, archive/unarchive, clone/branch, and checkpoint actions remain callable here for compatibility, but manage_archive exposes them with clearer scope — prefer it. Lifecycle changes are not reversible via manage_history, so clone a Novel before a risky change. Use when: handling a campaign's lifecycle or returning to saved context. Do NOT use when: managing content inside the Novel — use the entity tools; use manage_archive for export, import, archiving, cloning, branching, and checkpoints.

NameTypeReqDescription
actionstringyescreate, resume, switch, end, export, import, rename, description, list, archive, unarchive, info, genre, complete_session_zero, clone, branch, save_context, get_context, checkpoint_set, checkpoint_li…
attributionstring–Source attributed on the Novel's provenance record (provenance).
codex_adventurestring–Codex adventure to seed from (create).
creatorstring–Creator attributed on the Novel's provenance record (provenance).
current_scenestring–Current-scene summary (save_context).
datastring–Exported Novel JSON (import).
descriptionstring–Description (create/description).
detailboolean–Return full metadata (list).
filterstring–active, archived, or all (list).
formatstring–Output format (export).
from_eventnumber–Event-log ordinal to branch from (branch; default latest).
genrestring–Genre tag (create/genre).
immediate_situationstring–Immediate situation (save_context).
include_checkpointsboolean–Include checkpoints in export (default false; export).
labelstring–Checkpoint label (checkpoint_set/list/restore/remove).
licensestring–License declared on the Novel's provenance record (provenance).
long_term_plansstring–Long-term plans (save_context).
modestring–dry-run, merge, or replace (import).
namestring–Novel name (create).
new_namestring–Name for the copy or branch (clone/branch).
new_slugstring–New slug (rename).
pending_player_actionstring–Pending player action (save_context).
player_goalsstring–Player goals (save_context).
rulesetstring–Ruleset slug (create).
scopestring–Export scope (export).
shareboolean–Emit a portable full-scope bundle with embedded adventure content (export; JSON only).
short_term_plansstring–Short-term plans (save_context).
slugstring–Novel slug (resume/switch/archive/unarchive/info).
source_slugstring–Novel to copy or branch from (clone/branch).
strictboolean–Fail on any cross-reference mismatch (import).
trim_audit_sessionsnumber–Keep only the most recent N sessions' audit entries in the clone (clone; default full copy).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_npc ~374

Manage non-player characters in the active Novel. create requires a name; ruleset_reference links a stat block without copying it; mind is GM-only and never returned to the Player badge; remove deletes the NPC permanently. create, update, and remove require the GM or Editor badge, persist to the Novel, are audited, and are undoable via manage_history (action: undo); list and get are read-only. Use when: introducing, revising, removing, listing, or reading NPCs. Do NOT use when: managing player characters — use manage_character (action: create/import/sheet).

NameTypeReqDescription
actionstringyescreate, update, remove, list, get, import_card, or export_card.
card––Character Card V3 JSON object or string (import_card).
confirm_loreboolean–Import the card's character_book as lore entries (import_card).
descriptionstring–Optional description.
detailboolean–Return full NPC records instead of summary entries (list).
dispositionstring–Optional disposition.
goalsstring–Optional goals.
licensestring–Import license attestation (import_card).
locationstring–Optional location.
mindobject–Optional GM-only NPC mind (create/update).
namestring–NPC name (create).
npc_idstring–NPC identifier (update/remove/get/export_card).
personastring–Optional values, traits, and mannerisms (create/update).
ruleset_referencestring–Optional ruleset stat-block reference (create).
sourcestring–Import provenance URL or description (import_card).
talkativenessnumber–Optional 0-100 social-scene speaking weight; default 50 (create/update).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_relationship ~228

Manage directed relationships between entities, NPCs, or factions. set is keyed by the ordered (entity_a, entity_b) pair and updates type, value, or description in place rather than duplicating; type is one of ally, rival, neutral, mentor, dependent, or suspicious, and value is an optional numeric strength. get returns outgoing and incoming edges separately. set requires the GM or Editor badge, persists to the Novel, and is undoable via manage_history (action: undo); get is read-only. Use when: setting or reading how two parties relate. Do NOT use when: tracking faction standing or progress — use manage_faction (action: update).

NameTypeReqDescription
actionstringyesset or get.
descriptionstring–Optional description (set).
entity_astring–The source entity (set).
entity_bstring–The target entity (set).
entity_idstring–Entity whose relationships to list (get).
typestring–Relationship type (set).
valuenumber–Optional relationship strength (set).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_ruleset ~381

Manage ruleset packages: search an installed ruleset's index, install or remove a package, list installed packages, bind a Novel to a ruleset, or import/remove supplementary Wisdom. search accepts an optional slug, works with no active Novel, and is read-only; install, remove, import_supplementary, and remove_supplementary mutate state, are audited, and are reversible via the paired action. install of an existing slug conflicts, and remove refuses while a Novel is bound to that slug. binding scopes only Novel-dependent features; import_supplementary uses inline wisdom when present and reads source only when absent. Table rolls are resolve_mechanic (action: roll). Use when: searching rules content, managing packages, binding a Novel, or adding/removing supplementary Wisdom. Do NOT use when: the ruleset name is unknown — use manage_context (action: discover).

NameTypeReqDescription
actionstringyessearch, install, remove, list, bind, import_supplementary, or remove_supplementary.
index––Search index (install).
manifest––Package manifest (install).
max_resultsnumber–Maximum results (search).
model––Extraction model (install).
prompts––Prompts (install).
querystring–Search query (search).
resources––Resources (install).
seedstring–Deterministic seed (roll).
slugstring–Ruleset slug (install/remove/bind/import_supplementary/remove_supplementary).
sourcestring–Supplementary Markdown source path (import_supplementary).
tablestring–Generation table to roll on (roll).
tools––Tool schemas (install).
wisdomarray–Inline supplementary Wisdom items (import_supplementary).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_scene ~447

Manage the active scene and its narrative framing — scene description, directive, choices, and oracle rolls. set overwrites the scene's description and metadata, derives the description from location only when description is omitted, and accepts fast_forward to skip an interval: changes applies NPC moves, conditions, or dispositions and skip_countdowns preserves narrative countdowns. directive replaces the active directive; choices replaces the offered options; oracle resolves a chance question and records the roll, so repeated calls are additive rather than idempotent. set and directive require the GM or Editor badge, persist to the Novel, are audited, and are undoable. Use when: setting scene state, issuing a directive, offering choices, consulting the oracle, or skipping time. Do NOT use when: recording a story beat — use manage_story (action: record); staging presence or autonomy — use manage_staging; changing the spatial model — use manage_world.

NameTypeReqDescription
actionstringyesset, directive, presence, autonomy, choices, or oracle.
adventure_scenestring|null–Adventure-scene waypoint anchor; empty or null clears (set).
allow_freeformboolean–Allow free-form response (choices).
atmospherestring–Atmosphere (set).
beatstring–Story-beat tag (set): setup, escalation, turning_point, climax, resolution, denouement.
choicesarray–List of choices (choices).
contextobject–Context for the choice (choices).
descriptionstring–Scene description (set).
directivestring–Narrative directive (directive).
fast_forwardobject–Narrative fast-forward (set).
likelihoodstring–Likelihood tier (oracle).
locationstring–Scene location (set).
promptstring–Choice prompt (choices).
questionstring–Question to resolve (oracle).
scene_type––Scene-type tag or array (set).
seedstring–Deterministic seed (oracle).
skip_transition_hookboolean–Skip the scene-transition hook (set).
time_of_daystring–Time of day (set).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_staging ~324

Manage scene presence, autonomy, and social-cast staging. presence replaces the present set; cast sets the multi-NPC speaker strategy with mute/unmute adjusting its pool; next_speaker runs manual, forced, or pooled selection, where force overrides select; autonomy changes apply to the current scene only. Presence, autonomy, and cast state persist to the Novel and are audited. Use when: setting who is present, adjusting scene autonomy, choosing a speaker strategy, or selecting the next speaker. Do NOT use when: setting the scene, issuing a directive, offering choices, or consulting the oracle — use manage_scene. Revert the most recent mutation with manage_history (action: undo).

NameTypeReqDescription
actionstringyespresence, autonomy, cast, or next_speaker.
after_userboolean–Reset the pooled spoken-set for a new user turn (next_speaker).
confirmationstring–Confirmation mode (autonomy).
creativitystring–Creativity (autonomy).
entity_idsarray–Entities present (presence).
forcestring–NPC forced as the next speaker (cast/next_speaker).
levelstring–Autonomy level (autonomy).
mutestring–NPC muted from speaker selection (cast).
safetystring–Safety tier (autonomy).
selectstring–NPC selected as the manual speaker (cast/next_speaker).
strategystring–Speaker-selection strategy (cast).
unmutestring–NPC restored to speaker selection (cast).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_story ~294

Manage the story journal — typed narrative memories (decision, moment, revelation, bond, consequence). record appends an entry and consumes the turn_handle minted by take_turn; update edits a mutable entry; decision and consequence entries are immutable and refuse update or promotion; remove deletes an entry by index; promote copies an entry into lore under a derived or supplied key. list filters by type and paginates with offset and limit, returning previews unless detail is set. Mutations require the GM or Editor badge, persist to the Novel, and are undoable via manage_history (action: undo); list is read-only. Use when: recording, editing, removing, listing, or promoting story beats. Do NOT use when: recording a durable world fact — use manage_lore (action: set).

NameTypeReqDescription
actionstringyesrecord, update, remove, list, or promote.
entrystring–Story entry text (record/update).
filterstring–Optional type filter (list).
indexnumber–Story entry index (update/remove/promote).
keystring–Optional lore key (promote).
limitnumber–Optional page size (list).
offsetnumber–Optional pagination offset (list).
turn_handlestring–Turn handle minted by take_turn (record); consumed on success.
typestring–Story entry type (record/update).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_synthesis ~477

Manage synthesis content (voice examples, lore templates, action patterns, and other Ruleset Wisdom). Mutating actions (run, revert, activate, deactivate, toggle, toggle_action, player_add, player_remove, record_ruling, revert_ruling) persist to the Novel and are audited; read-only actions (list, player_list, verify) do not mutate state. verify checks each item's stored citation locally and reports pass/weak/unsupported; it never fetches and never changes state. record_ruling writes a ruling and its verified citations to the GM-only ruling ledger; revert_ruling marks a ledger entry reverted; ruling_list reads the ledger newest-first. Undo the latest mutation with manage_history. activate/deactivate with key omitted act on the whole module. Use when: running, reverting, listing, activating, deactivating, toggling, verifying, recording or reading rulings, or player-authoring items. Do NOT use when: browsing the codex — use manage_codex (action: list).

NameTypeReqDescription
actionstringyesrun, revert, list, activate, deactivate, toggle, toggle_action, player_add, player_remove, player_list, verify, record_ruling, revert_ruling, or ruling_list.
badge_scopestring–shared or player (player_add).
contentstring–Item content (player_add).
detailboolean–Return full entries (list).
enabledboolean–Enable or disable (toggle).
forceboolean–Re-run even if unchanged (run).
include_revertedboolean–Include reverted rulings (ruling_list; default false).
keystring|number–Item key (activate: number; player_add/player_remove/verify/record_ruling: string).
max_entriesinteger–Maximum rulings to return, newest first (ruling_list; default 20).
modulestring–Synthesis module (activate/deactivate/toggle/player_*/list/verify/record_ruling).
querystring–Question the ruling answers (record_ruling).
rulingstring–Ruling text to record (record_ruling).
ruling_idstring–Ledger entry id (revert_ruling).
triggersarray–Recall triggers (player_add).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_vow ~336

Track narrative vows, quests, and obligations with milestones. set creates a vow and suggests a linked countdown whose ticks follow the difficulty track (troublesome 12, dangerous 8, formidable 4, extreme 2, epic 1; scope defaults to shared); accept the suggestion in the briefing to create it. milestone increments progress and any linked countdown; resolve and forsake close the vow as fulfilled or abandoned and keep the record. set identifies the vow with name; milestone, resolve, and forsake use vow_name. Mutations require the GM or Editor badge, persist to the Novel, and are undoable via manage_history (action: undo); resolve and forsake are terminal in the forward direction. Use when: setting, advancing, resolving, forsaking, or listing vows. Do NOT use when: starting a clock timer — use manage_countdown (action: set).

NameTypeReqDescription
actionstringyesset, milestone, resolve, forsake, or list.
consequencesstring–Optional consequences (resolve).
descriptionstring–Vow description (set).
difficultystring–troublesome, dangerous, formidable, extreme, or epic (set).
namestring–Vow name (set).
outcomestring–The resolution outcome (resolve).
partiesarray–Parties bound by the vow (set).
reasonstring–The reason for abandoning (forsake).
scopestring–game_master, shared, faction, or party (set).
vow_namestring–Vow name (milestone/resolve/forsake).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

manage_world ~862

Manage the world model — rooms, things, exits, and their spatial properties. create and update mutate in place and persist to the Novel; all mutations are audited; remove is permanent and requires re-creation; convert replaces the described subtree; generate creates rooms from installed table pools bounded by TTRPG_WORLD_GEN_MAX_ROOMS. create_exit links both directions; create_thing honors location_type only when location is set, and kind forces property defaults. There are no read-only actions here; inspect state with run_command (action: execute). Use when: creating, updating, removing, bulk-converting, or generating locations and objects. Do NOT use when: navigating the world — use run_command (action: execute); proposing objective-state transitions — use manage_causality; recording what an entity believes — use manage_belief.

NameTypeReqDescription
actionstringyesWorld: create_room, update_room, remove_room, create_thing, update_thing, remove_thing, create_exit, remove_exit, convert, or generate. Causal: causal_propose, causal_admit, causal_reject, causal_lis…
climbableboolean–When true the thing can be climbed (create_thing/update_thing).
descriptionstring–Optional description (create/update).
directionstring–Direction (create_exit/remove_exit).
drinkableboolean–When true the thing can be drunk (create_thing/update_thing).
edibleboolean–When true the thing can be eaten (create_thing/update_thing).
enterableboolean–When true the thing can be entered (create_thing/update_thing).
fixedboolean–When true the thing cannot be taken (create_thing/update_thing).
fromstring–Source room alias for room_a (create_exit).
keystring–Bound key thing name required to unlock or lock this thing when lockable (create_thing/update_thing).
kindstring–Optional thing kind (create_thing).
litboolean–When true the thing is lit (create_thing/update_thing).
locationstring–Optional containing room or thing (create_thing/update_thing).
location_typestring–Where the thing is placed (create_thing).
lockableboolean–When true the thing can be locked (create_thing/update_thing).
lockedboolean–When true the thing starts locked (create_thing/update_thing).
namestring–Room/thing name (create/update/remove).
noisestring–Auditory cue text reported by listen (create_thing/update_thing).
openableboolean–When true the thing can be opened (create_thing/update_thing).
optionsobject–Generation options (generate): roles maps installed table names to room, objects, persons, or hazards pools; rooms requests a count bounded by TTRPG_WORLD_GEN_MAX_ROOMS.
read_textstring–Text revealed when the thing is read (create_thing/update_thing).
readableboolean–When true the thing can be read (create_thing/update_thing).
roomstring–Source room (create_exit/remove_exit).
room_astring–Source room (create_exit).
room_bstring–Destination room (create_exit).
scentstring–Olfactory cue text reported by smell (create_thing/update_thing).
seedstring–Deterministic seed (generate).
sourcestring–Hybrid world-model source text (convert).
switchableboolean–When true the thing can be switched (create_thing/update_thing).
switched_onboolean–When true the thing is switched on (create_thing/update_thing).
tostring–Destination room alias for room_b (create_exit).
transparentboolean–When true the thing is transparent (create_thing/update_thing).
wearableboolean–When true the thing can be worn (create_thing/update_thing).
NameTypeReqDescription
statusstringyesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).
textstring–Human-readable text envelope mirroring the structured result (REQ-001, REQ-548a).

No examples provided.

Install

How do I install the io.github.flukeatzerocool/holonovel MCP server?

io.github.flukeatzerocool/holonovel runs locally as an npm package, launched with npx -y holonovel. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · holonovel

# add to Claude Code
claude mcp add flukeatzerocool-holonovel -- npx -y holonovel
Common questions

What is the io.github.flukeatzerocool/holonovel MCP server?

io.github.flukeatzerocool/holonovel is an MCP server listed in the public MCP registry as io.github.flukeatzerocool/holonovel. Holonovel MCP server: world-model base for tabletop RPG play (rooms, parser, narrative tools). This page covers its npm package (holonovel).

Is the io.github.flukeatzerocool/holonovel MCP server safe to use?

io.github.flukeatzerocool/holonovel scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.flukeatzerocool/holonovel MCP server expose?

io.github.flukeatzerocool/holonovel exposes 37 tools: set_badge, respond_decision, manage_history, manage_character, run_command, and 32 more. Their descriptions and schemas cost roughly 13,734 tokens of context every time the server is loaded.

Is the io.github.flukeatzerocool/holonovel MCP server still maintained?

io.github.flukeatzerocool/holonovel is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.flukeatzerocool/holonovel MCP server under?

io.github.flukeatzerocool/holonovel declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.