Can it do that, did it happen, and if it broke, here's the fix.
The public tools check configured rules and supplied records, lints policies, exports runnable tests, and verifies proof bundles with caller-chosen trusted keys.
Curbi is for the boundary between an agent's reply, the rules it must follow, and the evidence supplied for its claims. It works alongside models, agent frameworks and gateways. Independent means a separate check from the system making the claim; it does not mean independent observation of a provider outcome. Curbi does not route model or provider traffic.
Try it. Keep what broke.
Three things to keep distinct
- A check
- Compares text with configured rules and supplied records. It catches the patterns implemented by those rules.
- A verified bundle
- Checks signed statements and log proofs against keys the caller explicitly trusts. The signature identifies what the issuer said.
- A regression
- Keeps one observed behavior as a repeatable test. Review its expectations: a test can preserve a bug.
For a developer. For an agent.
The HTTP API accepts the same policy and replies your app uses. MCP exposes 6 read-only tools:
policy_check— Check an agent replyvalidate_policy— Validate and lint a policysearch— Search Curbi documentationexport_regression— Export a regression testverify_bundle— Verify a Curbi proof bundle offlinefetch— Fetch a Curbi documentation summary
HTTP quickstart → · Machine-readable setup → · Current source and release checks →
What is live, and what is not?
Production signing is off. Hosted TEST evidence has its own trust scope. Customer action receipts remain unavailable.
The labs include labeled synthetic fixtures. Published framework adapters are available on npm and PyPI. The separate AI SDK HTTP adapter is available as a versioned first-party download. This is not a production execution gateway.
Published by Curbi, Inc. · Updated October 29, 2026 · Definition JSON · hello@curbi.io
Read a failure you can reproduce.
One extra character turned an approved $49 into $49,000. Our old checker missed it. A failing test, parser fix and permanent regression make the difference inspectable.
The extra k → · Synthetic checker test; no transaction or payment occurred.