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.00173 | $0.06579 |
| Opus 5 | $0.00086 | $0.03290 |
| Sonnet 5 | $0.00035 | $0.01316 |
| Haiku 4.5 | $0.00017 | $0.00658 |
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 4d 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 — 468 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 49 tools in 7 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 which of the next two steps you are even allowed to make. See "If you are connected as a player" below.get_constitution(Layer 1). GM role only. 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.- 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 cannot callget_constitution(player role) or 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.
- 4d ago Changed · +35 lines · +4 tokens per session 565901de6b3d
- 5d ago Changed · +128 lines · +19 tokens per session 28d0fde65137
- 12d 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 (1 stars, last pushed 5d ago), licensed MIT. It adds 173 tokens to every session and 6,579 once invoked, about $0.0009 per session on Opus 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).
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…
alfworld-object-storer
Use when the agent is holding an object and needs to place it into a target receptacle in ALFWorld. This skill checks receptacle suitability, opens closed containers if needed, and executes the put command to store the object. It handles both open surfaces (countertops, beds) and closed containers (drawers, cabinets).