RegBench MCP server
A stateless Model Context Protocol endpoint over Streamable HTTP at https://demo.regbench.ai/mcp. Deterministic read tools first; two write tools append to the ledger and say so in their annotations. No tool description instructs the model.
Connect
Claude Code
claude mcp add --transport http regbench https://demo.regbench.ai/mcp --header "X-RegBench-Key: rb_demo_bluebonnet"
Claude Desktop / claude.ai: Settings → Connectors → Add custom connector → URL https://demo.regbench.ai/mcp (needs a public URL, for example the Railway deployment).
curl
curl -s https://demo.regbench.ai/mcp -H "Content-Type: application/json" -H "X-RegBench-Key: rb_demo_bluebonnet" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Credentials (prototype): one API key per demo carrier: rb_demo_bluebonnet, rb_demo_summitrange, rb_demo_harborline. Without one, calls run as the Bluebonnet demo tenant. Production: OAuth 2.1 resource server with resource indicators and enterprise-managed authorization, so the carrier's identity provider decides which agents may call which tools.
Tools
| Tool | Access | What it does |
|---|---|---|
| regbench_check_transaction | read | Check a proposed AI-influenced decision (no record kept). Evaluates a proposed insurance decision against the rules in force in its state on its date and returns PASS, FLAG or HOLD with cited findings. Nothing is recorded; use it to test an action before taking it. |
| regbench_assess_transaction | write | Assess and record an AI-influenced decision. Evaluates a recorded insurance decision, stores the Regulatory Assessment, appends it to the carrier's hash-chained ledger and opens a review item when the disposition is FLAG or HOLD. Returns the assessment with its ledger position. |
| regbench_applicable_rules | read | List rules in force for a state, line and stage. Returns the deterministic rules that apply to a state, line of business and lifecycle stage on a date, with their authority layer, predicate, citations and effective dates. |
| regbench_get_provision | read | Get a provision from the corpus. Returns one legal provision by identifier: label, jurisdiction, effective window, excerpt, source URL, legal basis and verification status. |
| regbench_get_case_file | read | Get the case file for a decision. Returns the Exhibit C style case file for a transaction: recorded facts, the latest assessment with cited findings, point-in-time stamps, review status and ledger position. |
| regbench_build_exam_pack | write | Build an exam pack for a period. Assembles an exam pack aligned to the NAIC AI Risk Evaluation Supplement exhibits for the caller's carrier over a period, records its hash on the ledger and returns a summary with the pack identifier. |
| regbench_verify_ledger | read | Verify the carrier's ledger. Recomputes the carrier's hash chain and reports whether every link holds, the number of entries and the head hash. |
| regbench_benchmark | read | Cross-carrier benchmark. Returns hold and flag rates per thousand assessments by state and line across all carriers, publishing only cells with at least three contributing carriers and no dominant contributor. |
| regbench_resolve_insurer | read external | Look up a licensed insurer. Searches the open insurers.global register for a licensed insurer by name and returns matching records with NAIC code, domicile and class, or an explanation if the register is unreachable. |
Example messages
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {
"name": "claims-agent",
"version": "1.0"
}
}
}{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "regbench_applicable_rules",
"arguments": {
"state": "TX",
"line_of_business": "auto",
"stage": "claims",
"as_of": "2026-10-30"
}
}
}{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "regbench_check_transaction",
"arguments": {
"transaction": {
"txn_id": "AGENT-CLM-0001",
"tenant_id": "bluebonnet",
"occurred_at": "2026-10-30T16:28:19.135938+00:00",
"stage": "claims",
"line_of_business": "auto",
"jurisdiction": {
"state": "TX"
},
"ai_system": {
"system_id": "fnol-fraud",
"model_version": "3.1",
"vendor": "third_party",
"vendor_name": "Sentinel Analytics (fictional)",
"high_risk_class": "fraud"
},
"inputs": {
"feature_classes": [
"claims_history",
"geography"
],
"pii_token": "tok_agent_0001",
"data_source_refs": [
"vendor://sentinel/fnol"
]
},
"output": {
"decision": "deny",
"score": 0.91
},
"human_involvement": {
"reviewed": false
},
"adverse_action": {
"is_adverse": true,
"reasons_provided": false
}
}
}
}
}Why this is safe for a model-risk team
- Deterministic first. Findings come from versioned rules over recorded facts; no language model is in the path. The rules version and corpus snapshot are stamped on every result, so any result can be reproduced.
- Fails closed. A citation that does not resolve to a provision in force in the transaction's state on its date withholds the assessment rather than guessing.
- Reads and writes are separate tools, with annotations a gateway can use to auto-allow reads and require approval for writes.
- Evidence by construction. Every recorded assessment is a ledger entry an examiner can verify without trusting RegBench.
- Planned. Signed tool manifests (no silent description changes), OAuth 2.1 with enterprise-managed authorization, OpenTelemetry trace passthrough, and listing in the Anthropic, Microsoft, Salesforce and AWS catalogs.
