Skip to main content
Glama

Embers: Tabletop RPG Toolkit

Get a play campaign

play_get_campaign
Read-onlyIdempotent

Fetch one campaign by id, including settings and any DM/player metadata. Readable by a participant (the owner, a gamemaster, a player, or a watcher), by anyone when the campaign is public, and by an admin with Admin Mode on. The campaign's ruleset-specific material lives in its legs array — one entry per ruleset, each carrying { ruleset, active, rules, items, spells, characters }; inactive legs are hidden from normal UI but never deleted. There is no campaign-level ruleset field. Defaults to a summary shape: each leg's raw rule/item/spell ObjectId arrays are replaced with resolved [{ _id, name }, ...] lists the LLM can act on. Pass detail: 'full' to receive the raw ObjectId arrays instead. Each leg's rules, items, and spells are the campaign's house rules in that leg's ruleset. The response's imagineWorldIds and imagineAdventures ([{ id, name }, ...], each adventure's current name) list the Imagine worlds and adventures linked to this campaign; they are read from the worlds' and adventures' own links and are read-only here (change them with the imagine link/unlink tools). The imagineAdventures ids are the valid values for a session's imagineAdventureId tag.

Input Schema

NameRequiredDescriptionDefault
idYesMongo `_id` of the campaign.
detailNoResponse shape. 'summary' (default) trims raw-ObjectId arrays and full character sheets to a compact LLM-friendly form; 'full' returns the populated document with every field inline.summary

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial non-obvious behavior: inactive legs are hidden from UI but never deleted, there is no campaign-level ruleset field, imagine link data is read-only here, and access varies by role. This is well beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first clause, and the subsequent sentences each carry distinct information (legs shape, detail modes, imagine links). It is dense and reads as one continuous block, but the length is justified by the campaign model's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return-value explanation is optional, yet the description covers the leg structure, the summary/full shapes, and the imagine link arrays. Combined with the auth rules, an agent has everything needed to call and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the semantic effect of `detail`: summary resolves raw ObjectId arrays into `[{ _id, name }, ...]` lists, while 'full' returns raw populated arrays. That meaning is not fully captured by the schema's own enum descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Fetch one campaign by id') and immediately scopes what is returned ('including settings and any DM/player metadata'). It also names the sibling tools responsible for mutation ('change them with the imagine link/unlink tools'), so an agent can distinguish read from list and link operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the authorization context: readable by a participant, by anyone if public, and by an admin with Admin Mode on. It also routes the agent to the imagine link/unlink tools for changes. It stops short of contrasting itself with play_list_my_campaigns or play_list_participated_campaigns, so it lacks a full when-not/alternative rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources