addrbookFor publishers
← The evidence ledger

Evidence row 572562

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 6442c6fe-691a-4895-b228-49d697a5159f
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
1692ef662b098ce78a98cc968439fe73cdfacda6ca2a20e389ce54e0c2775f39
Leaf
0x7df2f6489432639ac4fb53a38c0f62f25a683ba7968c0f3aa13fa95326f4aa99

What was observed

{
  "count": 16,
  "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    }
  ]
}

What the leaf hashes

{"body":"1692ef662b098ce78a98cc968439fe73cdfacda6ca2a20e389ce54e0c2775f39","id":572562,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793140777387976,"prev":null,"subject":"6442c6fe-691a-4895-b228-49d697a5159f","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0x7df306ffbc2821df1309cc16912e5e8c806f66d97387619ddef8a3e57af45565
  2. 0x0201f1e460b9fb137dc613214930d07f6b9f0df4b192cf16becb5a674da4b26a
  3. 0x14844b89ec81c9ebd8ec11b7b731cee305c4ec965f3f2aba35704bb73e0d310b
  4. 0x0c813932855285cbdaf8fcf93ee736067a96399f47e1fda82b94356452e8ed08
  5. 0xbc3b4a44d1fca015d808dc52007030ddefe32e74158a29d786cc85e8763661f9
  6. 0x627f23175cdef60930cb40e5b99cb6e4101b377d560da90dbdafd30bf38d7a9f
  7. 0x00c184bd3ca87db4afe8fc12c5660e37c30cb59627b9d3f71c9a1b316e31bfb2
  8. 0x5ecee54b617dc5edafa1a5cd5d89a0324c76f2ed692f93f8e64a91d435b8ade0
  9. 0x5fd73e20e57d56b2781ee75d333683e44dcfaa75fc50df92ab7a314e458a06e1
  10. 0x96f9ec0ea07de0918ac539ab521e62267cf6cebc1b0320514f68343eefb02389
  11. 0x35f3fb28970853b4021570da310e6e5a973fb73b9919acf58f72111514d9c099
  12. 0x4b98c7145f5ead65ac9430579969acab10bc70758d3533f5a4fd4dbb462a2b61
  13. 0xbc7cf10ae301dcdbc5db5be8c29e1b3618ffaf1c196a74cb6a9e6c4fae0bbeed
  14. 0xfa0c8e8f1a1710ff197533b0a28208f2e168afe71abb7bb3416e09d1ac371d60
  15. 0x3c500ec3d3edf0c74b87a6ca8fcd77656bfbe03db3d478bd0c184d0c88839c6b
  16. 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON