Manage TTRPG campaigns: NPCs, locations, factions, quests, sessions, lore, and knowledge graphs.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Your campaign as a live database your AI reads and writes, not markdown files you maintain.
| Endpoint | https://api.ttrpg.bot/mcp |
| Transport | Streamable HTTP (MCP spec 2025-06-18) |
| Auth | OAuth 2.1 with PKCE, one-click consent flow |
| Tools | 52 across 8 groups (21 read, 31 write) |
| Registry | bot.ttrpg/grimoire in the official MCP Registry |
| Web app | https://www.ttrpg.bot |
Grimoire is a campaign manager for D&D and tabletop RPG gamemasters that gives your AI live campaign state instead of flat markdown files to keep in sync. A campaign in Grimoire is a typed database, not a folder of notes: NPCs, factions, locations, quests, sessions, and lore, connected by relationships and knowledge graphs, with a collaborative wiki whose pages link to those records. The hosted MCP server lets any connected client read and write that database directly, so the AI answers from your current canon and stays consistent as the campaign changes between sessions.
The difference from a folder of campaign files is what the AI gets back. A file search returns prose that may be stale. Grimoire returns typed state: a faction's current leader, the open plot threads and how many sessions they have been hanging, the wiki pages that mention an NPC, the facts the table has marked canon. Writes go back into the same structure, so nothing you file from a chat drifts out of date.
Three clicks, nothing to install:
https://api.ttrpg.bot/mcp.Full setup walkthrough with client-specific instructions: https://www.ttrpg.bot/docs/mcp/
For clients configured by JSON file instead of a connectors UI:
Auth is OAuth 2.1 with PKCE; the client opens a browser sign-in on first connect. A free Grimoire account at https://www.ttrpg.bot provides the campaign the server reads.
52 tools across eight groups.
Entities (10): search_campaign, get_entity, list_entities, get_field_options, get_tag_options, get_entity_schema, create_entity, update_entity, delete_entity, batch_create_entities. Covers all 14 entity types: NPCs, Locations, Factions, Quests, Items, Player Characters, Creatures, Vehicles, Lore Entries, World Rules, Planar Forces, Session Recaps, Session Preps, Custom Mechanics. get_entity_schema reports the exact fields a category accepts, native columns, select options, and the campaign's custom fields, so writes land in the right place instead of a catch-all bag.
Relationships (3): add_relationship, get_relationships, delete_relationship. Typed edges between any two entities.
Knowledge graphs (8): get_constitution, get_entity_catalog, get_knowledge_graph, list_entity_graphs, get_entity_graph, add_to_entity_graph, create_entity_graph_edge, toggle_graph_attention. Political, timeline, and geography projections with visibility filtering.
World foundations (6): create_foundation_node, update_foundation_node, delete_foundation_node, create_foundation_edge, delete_foundation_edge, update_world_foundations. Write tools for the campaign's foundation layer, which is always loaded. Foundation nodes are world-defining concepts (a cataclysm, a hidden power, a cosmological law) connected by labeled edges, and update_world_foundations sets the structured World Foundations document (magic system, divine hierarchy, fundamental laws). These are the mechanical and cosmological truths of the world, distinct from database entities like NPCs and locations.
Open threads (7): get_open_threads, create_open_thread, resolve_open_thread, unresolve_open_thread, update_open_thread, get_thread_progressions, add_thread_progression. Loose ends and how they evolve session over session.
Wiki (10): get_wiki_tree, get_wiki_page, search_wiki, create_wiki_page, create_wiki_block, update_wiki_block, move_wiki_block, delete_wiki_block, batch_create_wiki_blocks, batch_reorder_wiki_blocks. Block-based collaborative pages the AI reads and edits like you do. search_wiki is full-text over page titles and block prose (search_campaign covers entities only). Tables read and write as plain markdown grids, and entity links (@[Name](entity://category/uuid)) and page links (@[Title](page://uuid)) round-trip inside any block, including table cells, so a page the AI writes is linked to your records the same way one you typed would be.
Campaign meta (5): current_campaign, get_campaign_context, get_narrative_state, get_campaign_bible, update_campaign_bible. get_narrative_state aggregates recent sessions, open threads, canonical facts, and active arcs into one view.
Session observations (3): create_session_observation, update_session_observation, delete_session_observation. GM-only notes that colour a session: a typed, rated moment worth coming back to. Reading them needs no tool of its own, because get_narrative_state returns the observations on the sessions it summarizes and get_knowledge_graph returns the ones on the timeline it draws.
The server also exposes one MCP resource, campaign://wiki, which lists the campaign's wiki pages and their hierarchy.
skills/grimoire-campaign-context/ is a Claude Skill (also usable as plain instructions in any client) that teaches an assistant the session-start centering sequence, which read tool to reach for, how to write typed entities without dumping data into the wrong fields, and recipes for parsing prep notes, filing recaps, and pre-session pulls. Point your client at it, or paste it into a project's instructions.
Everything respects Grimoire's visibility model: common-knowledge, player-knowledge, dm-secret, and (wiki only) system, with inherit resolving through the block that links a wiki page and then its parent chain. The AI sees what the connected role is allowed to see and nothing more. Player connections get filtered views, and a page a player cannot reach does not exist for that connection: search, the tree, and page reads all answer not found. GM connections get the full picture.
The Campaign Bible is GM Secret by default. Mark a block common-knowledge when players may know it (world mechanics, everyday life); that records it as player-safe, but the Bible is not returned to player connections today. The Bible cannot be renamed.
OAuth scopes are campaign-scoped. Granting access to one campaign does not grant access to your other campaigns, and access is revocable at any time.
End-to-end free to try. Grimoire's free tier includes full MCP access and pairs with the free tiers on Claude.ai and ChatGPT, both of which support MCP connectors with no card required. Pro unlocks unlimited campaigns and entities, custom fields on every category, and more storage.
Pricing: https://www.ttrpg.bot/#pricing
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/grimoire)<a href="https://allmcps.com/mcp/grimoire"><img src="https://allmcps.com/api/badge/grimoire?style=directory" alt="Grimoire on AllMCPs" /></a>