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

com.woodstitch/tts-human-eval

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WOODSTITCH_API_KEYYesYour Woodstitch API key (e.g. ws_live_...), obtained at https://woodstitch.com/app/api-keys

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Woodstitch: paid human listeners judge text-to-speech audio in blinded studies. Two tasks only: pairwise preference (two clips, forced choice) and human-vs-AI detection (one clip, human or AI, confidence 1-4). Not offered: MOS, CMOS, MUSHRA or any 1-5 scale.

Flow: woodstitch_upload_files (or public URLs) -> woodstitch_create_eval (free quote; dry_run=true to price without storing) -> show the quote to the user -> woodstitch_start_eval (SPENDS MONEY) -> woodstitch_get_eval to poll (humans take minutes to days) -> woodstitch_get_results / woodstitch_export.

Rules: never call woodstitch_start_eval until the user has seen the quoted total and said yes; the tool requires you to pass that confirmed amount and a hard spending ceiling. Polling is cheap, but interim numbers are provisional: stopping early because a number crossed a threshold is optional stopping and inflates false positives. Use the same audio format and bitrate on both sides of a pair. Give each pair a passage id and system labels so no listener hears one system often enough to recognise it.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
woodstitch_templatesA

What Woodstitch measures: the two templates (tts_preference.v1: two clips, forced choice; tts_detect.v1: one clip, human or AI + confidence), their inputs and metrics, and what is NOT offered (MOS, CMOS, MUSHRA, any 1-5 scale). No API key needed.

woodstitch_pricingA

Rate card: USD per hour of audio a listener hears, priced per judgement from the measured duration of your clips, with worked examples and limits. No API key needed.

woodstitch_accountA

Account balance and spend for the configured API key.

woodstitch_list_evalsB

Your last 50 evaluations with status and progress.

woodstitch_upload_filesA

Upload audio files from the local disk (wav, mp3, flac, ogg, m4a; 0.5-120 s each, 50 MB per file, up to 100 files per call). Returns file ids, measured durations and formats, in the order sent. Use an id anywhere woodstitch_create_eval takes an audio reference. Re-uploading the same bytes is harmless (content-addressed).

woodstitch_list_filesA

List your uploaded files, newest first.

woodstitch_delete_fileB

Delete one upload from your account by file id. Studies that already used the file keep their copy.

woodstitch_create_evalA

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.

woodstitch_start_evalA

START an evaluation. THIS SPENDS REAL MONEY and cannot be undone once listeners begin. Only call it after the user has seen the quote total returned by woodstitch_create_eval and explicitly agreed. Pass that total as user_confirmed_amount_usd: it is sent to the API as the hard spending ceiling (max_total_usd), so if the current quote is higher than what the user confirmed the API refuses with over_max and nothing starts. Billing is metered from the first judgement; a study pauses rather than overspends if the balance runs out.

woodstitch_get_evalA

Progress and live score for an evaluation: status, judgements done/target, pairs with data, provisional metrics, dashboard_url, and max_additional_charge_if_canceled_now_usd. Cheap to poll. Humans take minutes to days; do not sit in a tight loop. Interim numbers are provisional.

woodstitch_get_resultsA

Final numbers once the evaluation is completed (or canceled, then incomplete=true). Preference: human_pref/b_win_rate is the share of preference for your b side with a 95% CI; 0.5 = indistinguishable. Detection: human_label_rate per source with two intervals: tested_stimuli (these files) and model (generalises over voices and passages; 3-4x wider; quote THIS one for any claim about a model). Returns not_ready while still running.

woodstitch_exportA

Every judgement as a row (pseudonymous rater, pair/clip id, source, speaker, passage, answer, confidence, time spent). format 'json' returns the rows; 'csv' returns CSV text. Pass save_to (a local path) to write the export to disk instead of returning it, which is better for large studies.

woodstitch_cancel_evalA

Stop an evaluation early. Charges only for work already handed to listeners; anyone mid-task finishes and is paid. Check max_additional_charge_if_canceled_now_usd via woodstitch_get_eval first if the user wants that number. Requires confirm=true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct resource and action: informational lookups (templates, pricing), file management (upload/list/delete), and a clearly separated eval lifecycle (create/start/get/results/export/cancel). The potentially confusable pairs are explicitly differentiated — create_eval only prices while start_eval spends money, and get_eval returns live progress while get_results returns final metrics.

Naming Consistency4/5

All names share the woodstitch_ prefix and are snake_case, with verb_noun patterns for the operations (list_evals, upload_files, create_eval, cancel_eval). The three informational tools (templates, pricing, account) are bare nouns rather than verb_noun, which is a minor but sensible deviation since they take no action.

Tool Count5/5

Thirteen tools is well within the sweet spot and every tool maps to a real step in the workflow: learn the product, upload clips, price, start, monitor, collect results, export, cancel. Nothing looks redundant or padded.

Completeness4/5

The full lifecycle is covered — discovery, file CRUD, quoting, starting, polling, results, export, cancellation, and account balance — with no obvious dead ends. Minor gaps remain, such as no way to delete an eval record or re-inspect a stored eval's compiled design after creation (only re-pricing via dry_run).

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues