{"serverId":"mcp-registry/io.github.latimer-woods-tech/wordis-bond","tools":[{"name":"create_monitor","fixed":{"name":"create_monitor","description":"Create a production monitor. \"scenarioGoal\" is what GOOD looks like for this agent — the judge scores every ingested call against it, exactly as a test scenario goal works. Optional \"assertions\" are plain-English checks the agent must satisfy. Read the ingest secret afterwards from GET /api/monitor/{id}/secret. Requires a pro or enterprise plan.","inputSchema":{"type":"object","required":["name","scenarioGoal"],"properties":{"name":{"type":"string","description":"Human name, e.g. \"Support line — main agent\"."},"rubric":{"type":"string","description":"Extra free-text rubric appended to the judge instructions."},"language":{"type":"string","description":"BCP-47 language tag, default \"en\"."},"assertions":{"type":"array","items":{"type":"string"},"description":"Plain-English checks the agent must satisfy."},"sampleRate":{"type":"number","description":"Fraction 0..1 of ingested calls to score. Default 1 (score every call)."},"scenarioGoal":{"type":"string","description":"What the agent is supposed to accomplish on every call."},"alertWebhookUrl":{"type":"string","description":"Optional public https URL to receive signed drift alerts."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":342,"tokensAfter":342},{"name":"create_suite","fixed":{"name":"create_suite","description":"Create a reusable test suite: a named set of scenarios/personas pinned to a target voice agent you run. Optionally give it a schedule (\"weekly\" | \"daily\" | \"hourly\", plan-gated) so it runs automatically and flags drift.","inputSchema":{"type":"object","required":["name","targetAgent"],"properties":{"name":{"type":"string"},"language":{"type":"string","description":"BCP-47 language tag, default \"en\"."},"schedule":{"type":"string","description":"Cadence for scheduled runs, e.g. \"weekly\" | \"daily\" | \"hourly\"."},"scenarios":{"type":"array","items":{"type":"object","properties":{"goal":{"type":"string"},"persona":{"description":"A string, or { name, description }."},"expected":{"type":"array","items":{"type":"string"}}}},"description":"Persona + goal pairs the suite exercises."},"targetAgent":{"type":"object","required":["transport"],"properties":{"peerId":{"type":"string","description":"Hosted-agent id, e.g. \"wb-demo-dental\"."},"toNumber":{"type":"string","description":"E.164 number to dial (required for a pstn target). It must be a number this account has proven it controls: verify it first with verify_number_start then verify_number_confirm, otherwise the run is rejected with 403 NUMBER_NOT_VERIFIED and no call is placed."},"transport":{"enum":["pstn","webrtc","direct","sip"],"type":"string"}},"description":"The voice agent under test — a system you run. transport \"direct\" (SIP/WebRTC) has near-zero cost and works on every plan; \"pstn\" places a real carrier call (pro+ plans) and only to a number you have verified. The hosted demo target is { \"transport\": \"direct\", \"peerId\": \"wb-demo-dental\" }."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":478,"tokensAfter":478},{"name":"get_monitor_health","fixed":{"name":"get_monitor_health","description":"Read a monitor's live rolling health and drift. Health is unknown | healthy | degraded | critical. Drift is isolated by judge version: when our judge changes, the boundary is reported as judgeVersionChanged and NEVER as an agent regression — a score delta across that boundary says nothing about your agent.","inputSchema":{"type":"object","required":["monitorId"],"properties":{"monitorId":{"type":"string","description":"The monitor to read."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"get_trends","fixed":{"name":"get_trends","description":"Read account-wide testing trends over a window: pass-rate, average score, and run-to-run regressions per suite, plus overall totals. Use this to spot behaviour drift in the voice agents you test.","inputSchema":{"type":"object","properties":{"days":{"type":"integer","maximum":365,"minimum":1,"description":"Look-back window in days (default 90)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":116,"tokensAfter":116},{"name":"import_flow","fixed":{"name":"import_flow","description":"Import a phone-system flow or voice-agent config from a platform (e.g. Vapi) into the canonical, diffable Flow IR — the first step of putting your phone system under version control. Reports the fields the IR abstracts away. Pass save:true to persist it as a versioned flow. The same IR exports back out, so it doubles as a migration surface between platforms.","inputSchema":{"type":"object","required":["platform","config"],"properties":{"name":{"type":"string","description":"Name for the saved flow (defaults to the config name)."},"save":{"type":"boolean","description":"Persist the imported IR as a new versioned flow."},"config":{"type":"object","description":"The platform's native flow/agent object."},"platform":{"enum":["vapi"],"type":"string","description":"The source platform."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":240,"tokensAfter":240},{"name":"list_monitors","fixed":{"name":"list_monitors","description":"List your production monitors and their current health (unknown | healthy | degraded | critical). A monitor watches ONE live production line: you stream it completed calls, and it scores each with the same versioned judge that scores your tests, tracks a rolling baseline, and alerts when quality drifts. Requires a pro or enterprise plan.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"list_suites","fixed":{"name":"list_suites","description":"List your reusable test suites (each is a set of scenarios/personas pinned to a target voice agent). Returns their ids, names, targets, and schedules — use a suite id with run_test or get_trends.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"list_verified_numbers","fixed":{"name":"list_verified_numbers","description":"List the phone numbers your account has proven it controls. Only these numbers (and Word Is Bond DIDs) may be used as a \"pstn\" targetAgent.toNumber. Revoke one with DELETE /api/numbers/{id}.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"run_demo","fixed":{"name":"run_demo","description":"Run the hosted demo voice agent (a dental front desk) end-to-end and get a real, fully-scored result in about a minute — no target of your own needed. Returns the score (0–100), pass/fail verdict, per-turn metrics, the transcript, and a shareable public report URL. Zero carrier cost. Optional inputs override the scenario.","inputSchema":{"type":"object","properties":{"goal":{"type":"string","description":"What the synthetic caller should try to accomplish."},"bargeIn":{"type":"boolean","description":"Inject one caller-initiated barge-in."},"persona":{"type":"object","properties":{"description":{"type":"string"}},"description":"Override the synthetic caller persona."},"expected":{"type":"array","items":{"type":"string"},"description":"Expected agent lines to pin for word-error-rate."},"language":{"type":"string","description":"BCP-47 language tag, default \"en\"."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"run_test","fixed":{"name":"run_test","description":"Run a test against a voice agent you control. Two modes: (1) score a captured transcript offline — pass \"transcript\" (or \"turns\") plus \"scenarioGoal\"; the judge returns a scored run synchronously. (2) run a live synthetic call — pass \"targetAgent\" and \"goal\". A live \"direct\" (SIP/WebRTC) target returns a tokenized media WebSocket URL for your agent-side harness to dial; a \"pstn\" target places a real carrier call (pro+ plans) to a number you have verified — an unverified destination returns 403 N","inputSchema":{"type":"object","properties":{"goal":{"type":"string","description":"What the synthetic caller should accomplish (live mode)."},"turns":{"type":"array","items":{"type":"object","properties":{"role":{"enum":["agent","caller"],"type":"string"},"text":{"type":"string"}}},"description":"Per-turn capture; formatted into a transcript when \"transcript\" is omitted."},"record":{"type":"boolean","description":"Record this call to YOUR OWN storage (BYOS, default false). Requires the byosRecording capability (pro/enterprise) and an enabled recording target; the customer-owned pointer comes back in the run’s recording_url. wordis-bond keeps only the pointer, never the audio."},"bargeIn":{"type":"boolean"},"persona":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"description":"The synthetic caller persona (live mode)."},"suiteId":{"type":"string","description":"Link this run to a suite (optional)."},"expected":{"type":"array","items":{"type":"string"}},"language":{"type":"string","description":"BCP-47 language tag, default \"en\"."},"transport":{"enum":["pstn","webrtc"],"type":"string","description":"Force a transport (live mode)."},"assertions":{"type":"array","items":{"type":"string"},"description":"Extra pass/fail checks for the judge."},"transcript":{"type":"string","description":"Captured conversation to score (offline mode)."},"concurrency":{"type":"integer","maximum":25,"minimum":1,"description":"Number of parallel live calls."},"targetAgent":{"type":"object","required":["transport"],"properties":{"peerId":{"type":"string","description":"Hosted-agent id, e.g. \"wb-demo-dental\"."},"toNumber":{"type":"string","description":"E.164 number to dial (required for a pstn target). It must be a number this account has proven it controls: verify it first with verify_number_start then verify_number_confirm, otherwise the run is rejected with 403 NUMBER_NOT_VERIFIED and no call is placed."},"transport":{"enum":["pstn","webrtc","direct","sip"],"type":"string"}},"description":"The voice agent under test — a system you run. transport \"direct\" (SIP/WebRTC) has near-zero cost and works on every plan; \"pstn\" places a real carrier call (pro+ plans) and only to a number you have verified. The hosted demo target is { \"transport\": \"direct\", \"peerId\": \"wb-demo-dental\" }."},"scenarioGoal":{"type":"string","description":"What the conversation was meant to accomplish (offline mode)."},"recordTargetId":{"type":"string","description":"Record to THIS target (else the most-recent enabled one)."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":877,"tokensAfter":877},{"name":"verify_number_start","fixed":{"name":"verify_number_start","description":"Prove your account controls a phone number, which it must do before any PSTN test call to it. Word Is Bond places one short call to the number, speaks a 6-digit code twice, and hangs up. Confirm the code within ten minutes with verify_number_confirm. Calling an already-verified number places no call. This is the only action that dials an unverified number and it is tightly capped (3 calls per number and 5 distinct numbers per account, per day).","inputSchema":{"type":"object","required":["number"],"properties":{"number":{"type":"string","description":"The number to verify, in E.164 (e.g. \"+15045204977\")."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":193,"tokensAfter":193}],"toolsChanged":11,"tokensSaved":0,"todo":[{"tool":"create_suite","params":["name"]},{"tool":"run_test","params":["bargeIn","expected"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}