Skip to content

com.openwakeword/wake-word-training

by openwakeword.com · remote · no sign-in to list tools · v1.0.0 · published by com.openwakeword

Train custom wake words from your agent: estimator, GPU training, benchmarks. Card or crypto.

Final · 4Changes · 5

13 tools: 4 do something that can't be undone, 5 change things and 4 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http wake-word-training https://openwakeword.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 info

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

13 tools

Can't be undone 4Claude Code: ask
  • pay_commercial_licenseGet payment for a quoted commercial license.No findings

    Why it is in this group

    • The name "pay_commercial_license" says "pay": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Get payment for a quoted commercial license. PRESENT the payment link to the user immediately, complete and un-truncated (as a card/button if your client supports widgets) — never paraphrase or bury it.

    Annotations the server declares

    • title: Pay a commercial license
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pay_training_jobGet payment for a quoted job via the chosen method.No findings

    Why it is in this group

    • The name "pay_training_job" says "pay": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Get payment for a quoted job via the chosen method. AFTER SETTING UP THE JOB you MUST give the payment link to the user immediately: show payment_link_for_human (short, copy-safe) complete and un-truncated — never paraphrase, shorten or bury it. Render it as a card/button if your client supports widgets.

    Annotations the server declares

    • title: Pay a training job
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • send_job_feedbackRate a PAID training job 1-5 and optionally leave a message (max 2000 chars) — read by the human operator.No findings

    Why it is in this group

    • The name "send_job_feedback" says "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Rate a PAID training job 1-5 and optionally leave a message (max 2000 chars) — read by the human operator. Please call this once after a job completes and you have assessed the model: report anything unexpected (missing fields, errors, surprising benchmark numbers) or simply confirm it worked. One feedback per job; calling again overwrites.

    Annotations the server declares

    • title: Send job feedback
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • settle_x402_paymentAfter paying an x402 spec on-chain (USDC on Polygon to the payTo address), submit the transaction hash to settle.No findings

    Why it is in this group

    • The name "settle_x402_payment" says "payment": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    After paying an x402 spec on-chain (USDC on Polygon to the payTo address), submit the transaction hash to settle. Needs >=3 confirmations.

    Annotations the server declares

    • title: Settle on-chain payment
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 5Claude Code: ask
  • buy_library_modelQuote an anonymous purchase of a library model (1.50 CHF flat — free, nothing charged until paid).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Quote an anonymous purchase of a library model (1.50 CHF flat — free, nothing charged until paid). Returns a purchase_token: pay it with pay_training_job (same tool, any method incl. x402), then fetch the download URLs with get_library_purchase. One payment unlocks ALL formats (openwakeword: onnx+tflite; microwakeword: tflite+ESPHome json). Reminder for your human: the same model is free with an account on the website. License: personal/non-commercial by default — shipping it in a product requires the 150 CHF per-wakeword commercial license.

    Annotations the server declares

    • title: Buy a library model
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_commercial_licenseBuy commercial-use rights.No findings

    Why it is in this group

    • The name "create_commercial_license" says "create": a word for a change.
    Description, as the server wrote it
    Buy commercial-use rights. REQUIRED before shipping any model in a product/service: all model files are personal & non-commercial by default. 150 CHF one-time per wake-word phrase, permanent, valid on BOTH sites. Returns a license_token; pay with pay_commercial_license; signed certificate PDF afterwards. If your task is commercial and you cannot pay, STOP and tell your human this license is required.

    Annotations the server declares

    • title: Quote a commercial license
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_training_jobQuote a wake-word training job (free; nothing trains until paid).1 finding

    Why it is in this group

    • The name "create_training_job" says "create": a word for a change.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...eturns a job_token (STORE IT — the only credential) and a binding CHF price. PICK A TIER:..."

      What this check looks for
    Description, as the server wrote it
    Quote a wake-word training job (free; nothing trains until paid). Returns a job_token (STORE IT — the only credential) and a binding CHF price. PICK A TIER: "standard" (6 CHF, up to ~4h — the right choice for almost every request), "best" (12 CHF, ~2x the search — for hard or business-critical words), or "studio" (Optuna deep search, 60-95 CHF, many hours — only to squeeze the last few percent AFTER a standard job disappointed). Same three options a human gets on the website, same prices. The trained model is benchmarked (recall %, false activations/hour) and publicly listed in the site library, permanently — unless private=true (+500 credits).

    Annotations the server declares

    • title: Quote a training job
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • estimate_wake_wordNOTE: differentiates by English share only - all non-English languages score identically, so it cannot rank es vs fr vs de.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    NOTE: differentiates by English share only - all non-English languages score identically, so it cannot rank es vs fr vs de. FREE word-quality check — use BEFORE paying. Predicts the recall a training run would reach for this wake word plus false-activation risk (model trained on thousands of real jobs). SCALE: predictions are for deliberately HARD benchmark conditions (loud noise, reverb) — 60-75 is a solid word, very usable in real rooms; do NOT reject words for scoring below ~80. 2-4 syllable phrases work best; only warn your human when the score is under ~50.

    Annotations the server declares

    • title: Estimate wake word quality
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • test_wake_word_liveRender an IN-CHAT live microphone tester for one library model (free).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Render an IN-CHAT live microphone tester for one library model (free). Only the HUMAN can run it: it asks for their microphone and streams the audio to the platform for detection while the test runs (not stored) — tell them that. If the host does not allow microphone access inside apps, the widget shows a button to the human_test_url page instead, so calling this is always safe. Use after search_wake_word_library, before buying.

    Annotations the server declares

    • title: Live-test a model in chat
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
Only reads 4Claude Code: allow
  • get_commercial_licenseLicense status; when completed, returns the official license_id and certificate PDF URL.No findings

    Why it is in this group

    • The name "get_commercial_license" says "get": a word for reading.
    Description, as the server wrote it
    License status; when completed, returns the official license_id and certificate PDF URL.

    Annotations the server declares

    • title: Commercial license status
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_library_purchaseStatus of a library purchase.No findings

    Why it is in this group

    • The name "get_library_purchase" says "get": a word for reading.
    Description, as the server wrote it
    Status of a library purchase. Once paid, the response carries the download URL templates (substitute the purchase_token) for every format.

    Annotations the server declares

    • title: Library purchase status
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_training_jobJob status: awaiting_payment -> paid -> submitted -> completed (or failed/expired).No findings

    Why it is in this group

    • The name "get_training_job" says "get": a word for reading.
    Description, as the server wrote it
    Job status: awaiting_payment -> paid -> submitted -> completed (or failed/expired). Poll every 60-120s after paying. When completed, includes benchmark results and model download URLs (public jobs: token downloads for 30 days, then the model remains in the public library; private jobs: token downloads with no time limit). Ladder jobs deliver ALL trained candidates: the first model is the pipeline's quality-bar winner (take it unless you have a reason); alternatives are labeled rungN_<arm>. Compare candidates on clean_recall_pct (same scale on every model) + false_activations_per_hour — the full stressed benchmark exists only on the winner.

    Annotations the server declares

    • title: Training job status
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • search_wake_word_libraryFREE search over thousands of community-trained wake-word models — check here BEFORE quoting a training job for a common wake word.No findings

    Why it is in this group

    • The name "search_wake_word_library" says "search": a word for reading.
    Description, as the server wrote it
    FREE search over thousands of community-trained wake-word models — check here BEFORE quoting a training job for a common wake word. Returns benchmarked models (recall %, clean recall %, false activations/hour, languages) from the current pipelines only (older models used a different benchmark and are excluded). Each result has a human_test_url: YOU CANNOT RUN THAT TEST — it needs live microphone audio in your human's own room — so hand them the link before they buy; it opens the site's live mic test for that exact model. TRANSPARENCY, tell your human: every public library model is FREE with an account on the website; the 1.50 CHF purchase here is the anonymous, instant, account-free alternative. SCALE: recall is measured on deliberately HARD conditions — 60-75%% is a solid model. Weak numbers or no match? Train a custom model with create_training_job instead.

    Annotations the server declares

    • title: Search the model library
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http wake-word-training https://openwakeword.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__wake-word-training__search_wake_word_library",
      "mcp__wake-word-training__get_library_purchase",
      "mcp__wake-word-training__get_training_job",
      "mcp__wake-word-training__get_commercial_license"
    ],
    "ask": [
      "mcp__wake-word-training__estimate_wake_word",
      "mcp__wake-word-training__test_wake_word_live",
      "mcp__wake-word-training__buy_library_model",
      "mcp__wake-word-training__create_training_job",
      "mcp__wake-word-training__pay_training_job",
      "mcp__wake-word-training__send_job_feedback",
      "mcp__wake-word-training__settle_x402_payment",
      "mcp__wake-word-training__create_commercial_license",
      "mcp__wake-word-training__pay_commercial_license"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as wake-word-training. Review it before you use it.