Skip to main content
Glama

compendium-page-search

Read-onlyIdempotent

Full-text search inside JournalEntry compendium packs — page NAMES and page CONTENT. The tool for rules/lore text ("what does grappled say?" → query "grappled", pageTypes ["rule"]; class write-ups, spell lists): compendium-search sees only document names. Requires bridge module 8.11.0+.

Each match carries the PAGE uuid — pass it to uuid-resolve for the full text. matchedIn tells what matched: name matches win (content not scanned, snippet null); content matches carry a ~200-char snippet. Query is a case-insensitive substring; packs are scanned in order until limit, results unsorted.

Input Schema

NameRequiredDescriptionDefault
limitNoMax matches, default 25. Scanning stops once reached.
queryYesCase-insensitive substring; page names and (by default) content
packIdsNoJournalEntry packs; omit = all
pageTypesNoPage subtypes: ["rule"], ["spells"], ["class","subclass"]; omit = all
searchContentNoDefault true. Set false to match page NAMES only — much cheaper; use it when the page title is known.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / packIds / description
      Previous value: -"Restrict to specific JournalEntry packs. Omit to search ALL journal packs in the world."New value: +"JournalEntry packs; omit = all"
    • changedInput schema / properties / pageTypes / description
      Previous value: -"Page subtypes to include, e.g. [\"rule\"], [\"spells\"], [\"class\",\"subclass\"], [\"text\"]. Omit for all types."New value: +"Page subtypes: [\"rule\"], [\"spells\"], [\"class\",\"subclass\"]; omit = all"
    • changedInput schema / properties / query / description
      Previous value: -"Substring to find, case-insensitive. Matched against page names and (by default) page text content."New value: +"Case-insensitive substring; page names and (by default) content"
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already carry the read-only/idempotent/safe profile, and the description adds substantial context beyond that: name matches stop content scanning and yield null snippets, content matches carry ~200-char snippets, packs are scanned in order until limit, and results are unsorted. That is exactly the behavior an agent needs to interpret results correctly.

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

Conciseness5/5

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

Three dense paragraphs, each front-loaded with its point: what it searches, the sibling contrast and version requirement, then result semantics. No filler sentences; parentheticals carry real information.

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?

No output schema exists, and the description compensates by explaining the match shape (page uuid, matchedIn, snippet) and pointing to uuid-resolve for full text. An agent has everything needed to call it and to act on the result.

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. The description goes further by illustrating pageTypes values (rule, spells, class/subclass) and explaining the cost tradeoff of searchContent=false, which helps the agent choose parameter values rather than just parse them.

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?

States a specific verb and resource: full-text search inside JournalEntry compendium packs, covering both page names and content. It explicitly distinguishes itself from the sibling compendium-search ("sees only document names"), so an agent can separate the two without opening either schema.

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

Usage Guidelines5/5

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

Gives a concrete when-to-use framing ("The tool for rules/lore text"), a worked example query with pageTypes, names the alternative and its limitation, and states the bridge module 8.11.0+ prerequisite. It also tells the agent when to prefer name-only matching via searchContent=false.

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