Server definition
- Hash
- sha256:47f4eb2c90b846c23f84ed0680bcb47164fa85ed4532c167377765f4d90a01b6
- What it is
- What a remote MCP server returned when asked what it offers: 16 tools
The blob, as servednamed by its sha256
{
"instructions": "Word Is Bond tools test voice agents you run and return scored results. initialize and tools/list need no auth. Tool calls are authenticated and metered: send Authorization: Bearer wb_live_… (get a key — see https://wordis-bond.com/llms.txt). Try run_demo first — it needs a key but no target of your own.",
"tools": [
{
"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": {
"additionalProperties": false,
"properties": {
"alertWebhookUrl": {
"description": "Optional public https URL to receive signed drift alerts.",
"type": "string"
},
"assertions": {
"description": "Plain-English checks the agent must satisfy.",
"items": {
"type": "string"
},
"type": "array"
},
"language": {
"description": "BCP-47 language tag, default \"en\".",
"type": "string"
},
"name": {
"description": "Human name, e.g. \"Support line — main agent\".",
"type": "string"
},
"rubric": {
"description": "Extra free-text rubric appended to the judge instructions.",
"type": "string"
},
"sampleRate": {
"description": "Fraction 0..1 of ingested calls to score. Default 1 (score every call).",
"type": "number"
},
"scenarioGoal": {
"description": "What the agent is supposed to accomplish on every call.",
"type": "string"
}
},
"required": [
"name",
"scenarioGoal"
],
"type": "object"
},
"name": "create_monitor",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"language": {
"description": "BCP-47 language tag, default \"en\".",
"type": "string"
},
"name": {
"type": "string"
},
"scenarios": {
"description": "Persona + goal pairs the suite exercises.",
"items": {
"properties": {
"expected": {
"items": {
"type": "string"
},
"type": "array"
},
"goal": {
"type": "string"
},
"persona": {
"description": "A string, or { name, description }."
}
},
"type": "object"
},
"type": "array"
},
"schedule": {
"description": "Cadence for scheduled runs, e.g. \"weekly\" | \"daily\" | \"hourly\".",
"type": "string"
},
"targetAgent": {
"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\" }.",
"properties": {
"peerId": {
"description": "Hosted-agent id, e.g. \"wb-demo-dental\".",
"type": "string"
},
"toNumber": {
"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.",
"type": "string"
},
"transport": {
"enum": [
"pstn",
"webrtc",
"direct",
"sip"
],
"type": "string"
}
},
"required": [
"transport"
],
"type": "object"
}
},
"required": [
"name",
"targetAgent"
],
"type": "object"
},
"name": "create_suite",
"outputSchema": null
},
{
"description": "Show the structural diff between two versions of a version-controlled flow: which nodes and edges were added, removed, or changed. This is the code review for your phone system — see exactly what a change did before you ship it.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"flowId": {
"description": "The flow id.",
"type": "string"
},
"from": {
"description": "Base version number.",
"minimum": 1,
"type": "integer"
},
"to": {
"description": "Target version number (defaults to the current version).",
"minimum": 1,
"type": "integer"
}
},
"required": [
"flowId",
"from"
],
"type": "object"
},
"name": "diff_flow",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"monitorId": {
"description": "The monitor to read.",
"type": "string"
}
},
"required": [
"monitorId"
],
"type": "object"
},
"name": "get_monitor_health",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Look-back window in days (default 90).",
"maximum": 365,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_trends",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"config": {
"description": "The platform's native flow/agent object.",
"type": "object"
},
"name": {
"description": "Name for the saved flow (defaults to the config name).",
"type": "string"
},
"platform": {
"description": "The source platform.",
"enum": [
"vapi"
],
"type": "string"
},
"save": {
"description": "Persist the imported IR as a new versioned flow.",
"type": "boolean"
}
},
"required": [
"platform",
"config"
],
"type": "object"
},
"name": "import_flow",
"outputSchema": null
},
{
"description": "Send one completed PRODUCTION call to a monitor to be scored. Returns 202 immediately; scoring runs in the background and the monitor health updates. The transcript is scored in flight and never stored — only the scorecard and safe metadata are kept. Pass \"externalId\" (your own call id) so a re-delivered call scores exactly once.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"durationSec": {
"description": "Call duration in seconds.",
"type": "number"
},
"externalId": {
"description": "Your own call id — makes the ingest idempotent.",
"type": "string"
},
"monitorId": {
"description": "The monitor to ingest into.",
"type": "string"
},
"occurredAt": {
"description": "ISO-8601 timestamp of when the call happened.",
"type": "string"
},
"platform": {
"description": "Where the call ran, e.g. \"retell\", \"vapi\", \"telnyx\".",
"type": "string"
},
"transcript": {
"description": "Formatted \"AGENT: … / CALLER: …\" transcript of the finished call.",
"type": "string"
}
},
"required": [
"monitorId",
"transcript"
],
"type": "object"
},
"name": "ingest_call",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_monitors",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_suites",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_verified_numbers",
"outputSchema": null
},
{
"description": "Register where BYOS call recordings go, so you can pass \"record\": true to run_test and have that call’s audio teed to YOUR OWN storage. wordis-bond keeps only a pointer (the run’s recording_url), never the audio. \"callbackUrl\" is a public https endpoint that returns a presigned PUT URL per recording (so wordis-bond never holds your cloud credentials). Pro/enterprise capability, bundled free — you pay your own storage; starter → 402.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"callbackUrl": {
"description": "Public https endpoint that mints a presigned PUT URL per recording.",
"type": "string"
},
"name": {
"description": "A label for this target.",
"type": "string"
},
"track": {
"description": "Which side to capture (default inbound = the agent).",
"enum": [
"inbound",
"outbound",
"both"
],
"type": "string"
}
},
"required": [
"name",
"callbackUrl"
],
"type": "object"
},
"name": "register_recording_target",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"bargeIn": {
"description": "Inject one caller-initiated barge-in.",
"type": "boolean"
},
"expected": {
"description": "Expected agent lines to pin for word-error-rate.",
"items": {
"type": "string"
},
"type": "array"
},
"goal": {
"description": "What the synthetic caller should try to accomplish.",
"type": "string"
},
"language": {
"description": "BCP-47 language tag, default \"en\".",
"type": "string"
},
"persona": {
"description": "Override the synthetic caller persona.",
"properties": {
"description": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"name": "run_demo",
"outputSchema": null
},
{
"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 NUMBER_NOT_VERIFIED and no call is placed. Poll get_run / GET /api/tests/{id} for the terminal scored state of a live run.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"assertions": {
"description": "Extra pass/fail checks for the judge.",
"items": {
"type": "string"
},
"type": "array"
},
"bargeIn": {
"type": "boolean"
},
"concurrency": {
"description": "Number of parallel live calls.",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"expected": {
"items": {
"type": "string"
},
"type": "array"
},
"goal": {
"description": "What the synthetic caller should accomplish (live mode).",
"type": "string"
},
"language": {
"description": "BCP-47 language tag, default \"en\".",
"type": "string"
},
"persona": {
"description": "The synthetic caller persona (live mode).",
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"record": {
"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.",
"type": "boolean"
},
"recordTargetId": {
"description": "Record to THIS target (else the most-recent enabled one).",
"type": "string"
},
"scenarioGoal": {
"description": "What the conversation was meant to accomplish (offline mode).",
"type": "string"
},
"suiteId": {
"description": "Link this run to a suite (optional).",
"type": "string"
},
"targetAgent": {
"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\" }.",
"properties": {
"peerId": {
"description": "Hosted-agent id, e.g. \"wb-demo-dental\".",
"type": "string"
},
"toNumber": {
"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.",
"type": "string"
},
"transport": {
"enum": [
"pstn",
"webrtc",
"direct",
"sip"
],
"type": "string"
}
},
"required": [
"transport"
],
"type": "object"
},
"transcript": {
"description": "Captured conversation to score (offline mode).",
"type": "string"
},
"transport": {
"description": "Force a transport (live mode).",
"enum": [
"pstn",
"webrtc"
],
"type": "string"
},
"turns": {
"description": "Per-turn capture; formatted into a transcript when \"transcript\" is omitted.",
"items": {
"properties": {
"role": {
"enum": [
"agent",
"caller"
],
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"name": "run_test",
"outputSchema": null
},
{
"description": "Run the regression gate on a flow now: compile the current version into a synthetic-caller test, run it against the flow's target, and compare the result to the previous version's baseline. A behavior change that regressed (a pass turning into a fail, or a score drop past the threshold) is caught and blocks the change — continuous integration for your phone-system logic.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"flowId": {
"description": "The flow id to gate.",
"type": "string"
}
},
"required": [
"flowId"
],
"type": "object"
},
"name": "test_flow",
"outputSchema": null
},
{
"description": "Finish verifying a phone number by supplying the 6-digit code spoken on the verification call. On success the number becomes a permitted PSTN test destination for your account. The code is single-use, expires after ten minutes, and locks after five incorrect attempts.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "The 6 digits spoken on the call.",
"type": "string"
},
"label": {
"description": "Optional label stored alongside the verified number.",
"type": "string"
},
"number": {
"description": "The number being verified, in E.164.",
"type": "string"
}
},
"required": [
"number",
"code"
],
"type": "object"
},
"name": "verify_number_confirm",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"number": {
"description": "The number to verify, in E.164 (e.g. \"+15045204977\").",
"type": "string"
}
},
"required": [
"number"
],
"type": "object"
},
"name": "verify_number_start",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:47f4eb2c90b846c23f84ed0680bcb47164fa85ed4532c167377765f4d90a01b6 | sha256sum