Skip to main content
Glama
com.woodstitch/tts-human-eval

com.woodstitch/tts-human-eval

Official

woodstitch_create_eval

Idempotent

Create and price a blinded human listening evaluation for TTS audio: validates clips or pairs, returns a per-pair quote with warnings, and stores the study only after you confirm.

Instructions

Create and PRICE an evaluation. Charges nothing. Resolves every clip (file id or public URL), validates it, measures duration and returns a quote with per-pair prices, warnings and the compiled design. Set dry_run=true to price without storing anything (no eval_id). Preference: pass pairs as [{id, a, b, system_a?, system_b?, passage?, speaker?}] where a/b are file ids or URLs rendering the SAME text; sides are shown to listeners in random order. Detection: pass clips as [{id, audio, truth: 'human'|'ai', source, speaker, passage, duration_bucket?}] and include real human recordings of the same passages as the baseline. per_participant = {max_judgements, unique_by: [...], max_per: {...}} limits what one listener hears; for a multi-system comparison use unique_by ['passage'] and max_per {'system': N}. ALWAYS show the returned quote total to the user before starting.

Input Schema

NameRequiredDescriptionDefault
nameNo
clipsNo
pairsNo
dry_runNo
questionNo
templateNotts_preference.v1
allocationNo
idempotency_keyNo
per_participantNo
ratings_per_clipNo
ratings_per_pairNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: no charges are incurred, every clip is resolved (file id or public URL), validated, and duration-measured, and the response includes per-pair prices, warnings, and the compiled design. It also discloses that dry_run persists nothing and returns no eval_id, and that a/b sides are shown in random order — none of which is inferable from readOnlyHint=false / destructiveHint=false / idempotentHint=true.

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?

Front-loaded with the verb, the resource, and the zero-cost fact, then organized by task (pairs → detection → allocation → warning). It is dense and somewhat run-on, with multiple ideas packed into single sentences, but nearly every clause carries operational information rather than filler.

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 no output schema, the description takes on the return-value burden and does so for the pricing payload (quote total, per-pair prices, warnings, compiled design) and the dry_run/no-eval_id distinction. It stops short of explaining what a non-dry-run call yields for follow-up (eval_id, next step being woodstitch_start_eval), which matters for an 11-parameter creation tool.

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 coverage is 0% and the schema types `clips`, `pairs`, `allocation`, and `per_participant` as untyped objects, so the description carries real weight — it supplies element shapes for `pairs` and `clips`, the dry_run semantics, and the per_participant keys. However, 7 of 11 parameters (name, question, template, allocation, idempotency_key, ratings_per_clip, ratings_per_pair) get no mention at all, leaving a significant compensation gap.

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 — 'Create and PRICE an evaluation' — with an unusual dual nature (create + quote) made explicit up front, plus 'Charges nothing' to disambiguate cost. It does not name the adjacent siblings (woodstitch_pricing, woodstitch_start_eval), so an agent must still infer the boundary between pricing-only, create, and start.

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?

Gives concrete when-to-use branches: dry_run=true to price without storing, `pairs` for preference tests, `clips` for detection tests, and a specific per_participant recipe for multi-system comparisons. It even imposes an operational rule ('ALWAYS show the returned quote total to the user before starting'). What is missing is explicit routing against woodstitch_pricing and woodstitch_start_eval.

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