Skip to main content
Glama

corpus

vela.corpus.witness

vela.corpus.witness
Read-only

Literary Witness Rail (ASN-1577): return passages and one-line claims from Vela's 762-work corpus that illuminate the given themes and/or emotions. Designed for frame-family profile pages — PersonFrame × ProblemFrame × ConditionFrame — to add an inside-out layer (what writers who lived this say) alongside the outside-in portrait the frame join produces. Results carry evidence_grade 'T1' (single-extractor) until PRN-282 lands. FREE for claims; costs one embedding for the passage path.

[capability: literary-witness · mirrors: GET /api/vela/witness]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
axesNoAxis weight filters for claims only — same format as vela.corpus.query (e.g. {work:["T","s"]}).
themesNoControlled themes from Vela's vocabulary (e.g. 'fairness', 'recognition').
emotionsNoEmotions to match (e.g. 'shame', 'betrayal', 'grief'). At least one of themes or emotions is required.
max_claimsNoMax one-line claims to return (default 3).
max_passagesNoMax passages to return (default 5).
problem_slugNoProblemFrame entity slug (echoed in response; reserved for frame_tags[] pre-cache after PA-1153 ID-freeze).
condition_slugNoConditionFrame entity slug (same reservation as problem_slug).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
claimsYes
passagesYes
evidence_gradeYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds non-obvious behavior beyond that: results carry 'evidence_grade T1 (single-extractor) until PRN-282 lands,' warning about evidence quality. It also discloses the cost distinction between claims and passages and notes that problem_slug/condition_slug are 'reserved for frame_tags[] pre-cache after PA-1153 ID-freeze.' No contradiction with annotations.

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?

Four informative sentences plus a bracketed capability/mirror note, with the core action front-loaded in the first sentence. The prose is efficient and purposeful, though internal identifiers like ASN-1577, PRN-282, and PA-1153 add jargon that is not essential for invoking the tool.

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

Completeness4/5

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

With rich annotations, a 100%-covered schema, and an output schema present, the description is nearly complete: purpose, page context, evidence-grade caveat, cost, and API mirror are all covered. The main gap is that it doesn't explicitly differentiate this tool from sibling tools like vela.corpus.query or describe_topic, which matters for an agent with no other context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the schema already documents all seven parameters. The tool description adds only general context ('given themes and/or emotions') and cost behavior, not meaningful new parameter-level meaning. It doesn't need to compensate, but it also doesn't substantially elevate parameter understanding.

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?

The description opens with a specific action and resource: 'return passages and one-line claims from Vela's 762-work corpus' that illuminate themes/emotions. It also positions the tool as an 'inside-out layer' complement to the frame join's 'outside-in portrait,' helping distinguish it from neighboring corpus tools. The title alone would be useless, but the description supplies real semantic content.

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?

The intended use case is explicit: 'Designed for frame-family profile pages — PersonFrame × ProblemFrame × ConditionFrame — to add an inside-out layer.' It also provides cost-based guidance ('FREE for claims; costs one embedding for the passage path') that helps agents choose between claims and passage results. It does not explicitly name sibling alternatives or exclusion conditions, so it isn't a full routing contract.

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