ContractKit

WEBMCP / CONTRACT REGRESSION WORKBENCH

What did your
tool change break?

Put two input contracts through the same cases. Catch the request you stopped accepting—and the one you accidentally let through.

Compare a contract

Free · Runs locally · No AI key or account

CHANGE 01 / REQUIRED FIELD

BeforeAccept
AfterReject

An existing caller has no replyTo.
One added requirement. One broken case.

Walk through the example →

01 / INPUT CONTRACTS

A revision deserves a rehearsal.

Paste JSON metadata: name, description, inputSchema and optional annotations. Your code is never executed. Supported schema profile →

Local Draft 7 subset; maximum 60,000 characters per editor. Unsupported keywords stop the run. Names use lowercase letters, digits and underscores.

02 / Named cases & expected candidate outcomes

expect describes what the after contract should do. Keep old expectations to spot regressions; change them only when a behavior change is intentional.

Local JSON only, up to 180 KB.

JavaScript is needed to compare contracts. Worked examples and guides remain readable below.

03 / BEHAVIOR DIFF

Same inputs. Two answers.

Results are out of date. Run the edited cases.

—candidate expectations matched
—accepted → rejected
—rejected → accepted
CaseExpected afterBeforeAfterChangeReview

“Matches” means the candidate agreed with that fixture’s expected validity. It does not prove authorization, correct business results or successful agent use.

Why were candidate inputs rejected?
    Changed metadata paths (0)

      Text changes are listed, but their effect on an agent is not evaluated.

      The report omits input values but retains case names and schema paths. The fixture pack contains your full inputs. The starter includes candidate metadata and an echo handler, without validation or business logic.

      04 / OPTIONAL NATIVE CHECK

      Does the browser
      enforce that rule?

      Our Chrome 156 test reached the callback with inputs that violated required, minimum and type. Try these same cases in your browser using a temporary receipt-only tool.

      This is a real API call when available. It does not call your application, execute pasted JavaScript, send email or run an AI agent.

      Setup, observed results & limits →

      Checking API availability…

        05 / OLD SNIPPET TRIAGE

        Still using yesterday’s API?

        Check a snippet for five known migration patterns. This is a line-based text scan: comments can match, aliases and multiline calls can be missed. It never runs the snippet.

        Read the migration notes →

          AFTER THE WORKBENCH

          Keep the test connected to reality.