Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add zafety-vibin/grimoire-mcp --skill grimoire-campaign-contextgit clone --depth 1 https://github.com/zafety-vibin/grimoire-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zafety-vibin/grimoire-mcp/grimoire-campaign-context)<a href="https://agentmods.dev/skills/zafety-vibin/grimoire-mcp/grimoire-campaign-context"><img src="https://agentmods.dev/badge/skills/zafety-vibin/grimoire-mcp/grimoire-campaign-context/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zafety-vibin/grimoire-mcp/grimoire-campaign-context"><img src="https://agentmods.dev/badge/skills/zafety-vibin/grimoire-mcp/grimoire-campaign-context.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00184 | $0.07473 |
| Opus 5.5 | $0.00074 | $0.02989 |
| Sonnet 5.5 | $0.00037 | $0.01495 |
| Haiku 4.5 | $0.00018 | $0.00747 |
Grade A, and why
grimoire-campaign-context scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 521 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Working with Grimoire
Grimoire is a campaign manager for tabletop RPG gamemasters, and its MCP server
gives you live read and write access to one campaign's database. That database is
not a pile of notes. It is typed: 14 entity categories, typed relationships between
them, three knowledge graph projections, open narrative threads, and a block-based
wiki whose pages link to the records. The endpoint is https://api.ttrpg.bot/mcp,
transport is streamable HTTP, auth is OAuth 2.1, and access is scoped to the single
campaign the user approved.
Your job is to answer from that campaign's canon, not from generic tabletop RPG knowledge. The homebrew is the authority. If the campaign says elves are extinct and magic costs blood, that is true, and your training data is wrong.
Grimoire exposes 52 tools in 8 groups. The tools carry their own layer numbering in their descriptions. Follow it. Every tool description is current; when this skill and a tool description disagree, the tool description wins.
Center yourself first
Do not answer a campaign question, and do not write anything, until you have grounded yourself in this campaign. The whole point of the layered design is that context gets loaded deliberately instead of dumped all at once.
Every session, before the first substantive answer:
current_campaign(free, instant). Returns the campaign, user, and role bound to this MCP session. Call it first, every time. Everything after this depends on it, and the role decides how much of the next two steps you get back. A player token also lists the player's own characters undercharacters. See "If you are connected as a player" below.get_constitution(Layer 1). Both roles. The world's non-negotiable truths: campaign summary, Campaign Bible summary, and the world foundations graph. This is where the setting's defining events, cosmology, and the GM's content boundaries live. It colors every downstream answer. A player-role connection gets its table's own constitutional layer, never the GM's: the response carries asharedobject (bible,foundations, and agraphsmap), and the Bible summary and foundation nodes are present only where the matching flag is true. Readsharedfirst, because a false flag means the GM did not share that part, not that the call failed.- The
campaignContextblock. Genre, ruleset, setting technology and magic levels, which entity categories this campaign uses, and what this campaign calls them. It rides inside theget_constitutionresponse you just read, and insideget_narrative_stateandget_entity_catalogas well, so read it there instead of fetching it again.get_campaign_contextis the standalone form of the same block, for a session that needs nothing but the vocabulary. Read it either way: it is how you stop saying "NPC" when this table says "contact," and how you stop applying D&D 5e assumptions to a Blades-adjacent horror game.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago Changed · -2 lines e89e4661688a
- 9d ago Changed · +45 lines · +11 tokens per session 940e7af6b8c8
- 1mo ago Changed · +10 lines 8d625e750a5a
- 1mo ago Changed · +35 lines · +4 tokens per session 565901de6b3d
- 1mo ago Changed · +128 lines · +19 tokens per session 28d0fde65137
- 2mo ago First seen · 305 lines · 150 tokens per session scan A 1ff685be5e68
grimoire-campaign-context is a skill published in the GitHub repository zafety-vibin/grimoire-mcp (2 stars, last pushed 8d ago), licensed MIT. It adds 184 tokens to every session and 7,473 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pixel-art
Pixel art w/ era palettes (NES, Game Boy, PICO-8).
dream-loop
Build stunning 3D scenes via a concept-art fidelity loop.
pokemon-player
Play Pokemon via headless emulator + RAM reads.
minecraft-modpack-server
Host modded Minecraft servers (CurseForge, Modrinth).
build-games-and-playful-experiences
A guide for building, changing, diagnosing, and checking two-dimensional games and playful experiences. It covers games, interactive toys, story exploration, rhythm experiences, generative experiences, and local multiplayer.
alfworld-search-verifier
Re-examines previously visited locations to confirm the absence of a target object or to check for overlooked items. Use when an initial search fails to find enough objects or when double-checking is required before concluding task failure. Systematically revisits receptacles, re-opens closed containers, and…