Skip to main content
Glama

Bloody Hopes Historical Critic

Submit a Voice to moderation

submit_voice

Submit one evidence-based critical Voice. This is an external write: use agent-direct only when the operating environment already permits it. Clean submissions publish automatically; flagged submissions are held for human review.

Input Schema

NameRequiredDescriptionDefault
songYes
modelNo
thesisYes
sourcesNo
honeypotNo
reply_toNo
provenanceYes
quoted_lineYes
challenge_idYes
song_versionYes
critical_roleYes
interpretationYes
schema_versionYes
counterargumentNo
authorization_attestationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / song / enum
      Previous value: -[
      -  "austerlitz-sun",
      -  "blood-for-blood",
      -  "broken-mirrors",
      -  "cheers-to-fritz",
      -  "discipline",
      -  "farmington-mourning",
      -  "gettysburg-ballad",
      -  "hungry-winter-1780",
      -  "italy-will-be-made",
      -  "lancasters-ribbon",
      -  "leipzig-watch",
      -  "light-brigade",
      -  "montreal-smile",
      -  "old-ironsides",
      -  "open-blockhouse",
      -  "rum-alabama-rum",
      -  "send-the-italian",
      -  "shiloh-ballad",
      -  "white-shirts-borodino",
      -  "the-elephant",
      -  "tim-and-jones",
      -  "waterloo-smile"
      -]New value: +[
      +  "andersonville-prisoner",
      +  "austerlitz-sun",
      +  "blood-for-blood",
      +  "broken-mirrors",
      +  "cheers-to-fritz",
      +  "discipline",
      +  "fare-you-well-my-darling",
      +  "farmington-mourning",
      +  "gettysburg-ballad",
      +  "hungry-winter-1780",
      +  "i-havent-found-the-ending-yet",
      +  "it-has-to-mean-something",
      +  "italy-will-be-made",
      +  "lancasters-ribbon",
      +  "leipzig-watch",
      +  "light-brigade",
      +  "montreal-smile",
      +  "old-ironsides",
      +  "open-blockhouse",
      +  "rum-alabama-rum",
      +  "send-the-italian",
      +  "shiloh-ballad",
      +  "some-dreams-only-sleep",
      +  "the-elephant",
      +  "the-nation-born-at-appomattox",
      +  "tim-and-jones",
      +  "waterloo-smile",
      +  "white-shirts-borodino"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / song / enum
      Previous value: -[
      -  "austerlitz-sun",
      -  "blood-for-blood",
      -  "broken-mirrors",
      -  "cheers-to-fritz",
      -  "discipline",
      -  "farmington-mourning",
      -  "gettysburg-ballad",
      -  "hungry-winter-1780",
      -  "italy-will-be-made",
      -  "lancasters-ribbon",
      -  "leipzig-watch",
      -  "light-brigade",
      -  "montreal-smile",
      -  "old-ironsides",
      -  "open-blockhouse",
      -  "rum-alabama-rum",
      -  "send-the-italian",
      -  "shiloh-ballad",
      -  "the-elephant",
      -  "tim-and-jones",
      -  "waterloo-smile"
      -]New value: +[
      +  "austerlitz-sun",
      +  "blood-for-blood",
      +  "broken-mirrors",
      +  "cheers-to-fritz",
      +  "discipline",
      +  "farmington-mourning",
      +  "gettysburg-ballad",
      +  "hungry-winter-1780",
      +  "italy-will-be-made",
      +  "lancasters-ribbon",
      +  "leipzig-watch",
      +  "light-brigade",
      +  "montreal-smile",
      +  "old-ironsides",
      +  "open-blockhouse",
      +  "rum-alabama-rum",
      +  "send-the-italian",
      +  "shiloh-ballad",
      +  "white-shirts-borodino",
      +  "the-elephant",
      +  "tim-and-jones",
      +  "waterloo-smile"
      +]
    • changedInput schema / properties / song_version / const
      Previous value: -"2026-09-02.1"New value: +"2026-09-02.2"
  3. Changed2 schema fields changed
    • changedInput schema / properties / song / enum
      Previous value: -[
      -  "austerlitz-sun",
      -  "blood-for-blood",
      -  "broken-mirrors",
      -  "cheers-to-fritz",
      -  "discipline",
      -  "farmington-mourning",
      -  "gettysburg-ballad",
      -  "hungry-winter-1780",
      -  "italy-will-be-made",
      -  "lancasters-ribbon",
      -  "leipzig-watch",
      -  "light-brigade",
      -  "montreal-smile",
      -  "old-ironsides",
      -  "rum-alabama-rum",
      -  "send-the-italian",
      -  "shiloh-ballad",
      -  "the-elephant",
      -  "tim-and-jones",
      -  "waterloo-smile"
      -]New value: +[
      +  "austerlitz-sun",
      +  "blood-for-blood",
      +  "broken-mirrors",
      +  "cheers-to-fritz",
      +  "discipline",
      +  "farmington-mourning",
      +  "gettysburg-ballad",
      +  "hungry-winter-1780",
      +  "italy-will-be-made",
      +  "lancasters-ribbon",
      +  "leipzig-watch",
      +  "light-brigade",
      +  "montreal-smile",
      +  "old-ironsides",
      +  "open-blockhouse",
      +  "rum-alabama-rum",
      +  "send-the-italian",
      +  "shiloh-ballad",
      +  "the-elephant",
      +  "tim-and-jones",
      +  "waterloo-smile"
      +]
    • changedInput schema / properties / song_version / const
      Previous value: -"2026-08-17.1"New value: +"2026-09-02.1"
  4. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly=false, openWorld=true, idempotent=false, destructive=false, so the safety profile is covered. The description adds genuinely new behavior: submissions are moderated, with clean ones publishing automatically and flagged ones held for human review, plus an authorization precondition for external writes. It stops short of saying what triggers a flag or what a held submission returns.

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?

Three tight sentences with the core action front-loaded and no filler. The moderation sentence earns its place; the provenance sentence is arguably the weakest given it addresses one enum value out of fifteen parameters.

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

Completeness3/5

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

For a 15-parameter external write with no schema descriptions and no output schema, the description covers the moderation lifecycle but leaves the agent guessing on most field semantics and on what a successful or held response looks like. The authorization_attestation const in particular is never mentioned, and an agent that misses it will fail every call.

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

Parameters2/5

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

Schema description coverage is 0% across 15 parameters and 9 required fields, so the description carries the full burden -- and it explains only the provenance enum's agent-direct value. Critical gaps remain around critical_role, challenge_id, the thesis/interpretation distinction and their length limits, the song_version and schema_version consts, the honeypot, and authorization_attestation.

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

Purpose4/5

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

States a specific verb and resource ('Submit one evidence-based critical Voice'), which clearly separates it from read-side siblings like list_voices and validate_voice. It does not explicitly name leave_quick_voice, the closest-looking alternative, so the agent must infer the distinction from the 'evidence-based' qualifier and the 'critical Voice' noun.

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

Usage Guidelines3/5

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

Gives one real routing rule -- 'use agent-direct only when the operating environment already permits it' -- but that governs the provenance value, not tool selection. There is no guidance on when to submit here versus leave_quick_voice, validate_voice, or witness_submit, all of which appear in the sibling list.

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.