-
-
The pitch in one line, with the green badge confirming this page has already handed its tools to your agent.
-
Three one-click demos, a live docket of settlements signed so far, and the research on why people give up.
-
How a case moves, and the idea underneath it: the tools an agent can see are the procedure it has to follow.
-
The questions everyone asks before trusting this. Is it binding, can they see my number, what does it cost.
-
Opening a case takes four fields. Practice mode lets you rehearse against an AI before involving anyone real.
-
Sealed offers, round one of three. Autopilot is ready, bounded by a private floor the other side never sees.
-
The mediator proposed $808 and both sides accepted, so the agreement gets drafted in plain language.
-
Both humans signed, and the case is resolved. Minutes from opening the dispute, with no lawyer involved.
-
Signatures, timestamps, and a SHA-256 seal anyone can verify later. Then we ask how fair the process felt.
-
A real case gives the claimant one link to send. That is all it takes to bring the other side to the table.
-
The same case from the other chair, with their own agent, their own reality check, and your evidence on record.
Inspiration
A client owes a freelancer $1,800 and stops replying. A lawyer costs more than the claim. Small claims court takes months. So most people give up, and research says this is the norm rather than the exception: 92% of low-income Americans' civil legal problems get no meaningful legal help, and 71% of freelancers have struggled to collect payment. Justice below a few thousand dollars is economically irrational to pursue.
Yet eBay resolves about 60 million disputes a year with software, and British Columbia runs a fully online public tribunal. Structured resolution works. But it exists only inside closed platforms, and always with one shared form or one shared bot. Nobody could give each side its own advocate on neutral ground, because neither side had an advocate to bring. Now everyone browses with an agent, and WebMCP lets a website hand those agents governed tools. That is the gap we built into.
What it does
Fairground is a small online courthouse for everyday disputes:
- State your case. Tell your agent what happened. It files the claim and evidence for you, or you type it yourself. Everything also works by hand.
- They join by link. The other party opens your invite with their own agent, which reviews the record and gives them a private, honest reality check.
- Sealed offers. Each human privately sets a true limit their agent cannot cross. Up to three rounds of sealed offers follow. If the numbers overlap, the case settles instantly at the midpoint. The other side never sees your numbers, only whether the gap grew or shrank.
- Neutral mediation. No overlap? A mediator controlled by neither party reads the full record, including the sealed history neither side can see, and proposes a neutral settlement amount, numerically clamped between the parties' last positions.
- Humans sign. A plain-language agreement is drafted. No tool can sign it. Two humans read and sign, and the settlement is stamped with a cryptographic record seal anyone can verify later.
Also inside: practice mode (an AI plays the other side so you can rehearse, or a judge can try the full two-party flow solo), Autopilot (both advocates run the whole procedure automatically, bounded by your limit, stopping only at your signature), a live public Docket of settlements, a fairness rating after every case, three one-click staged demos on the landing page, and a downloadable court-preparation record if a case ends without agreement, containing the claim, the response, dated evidence, your own sealed offers, the mediator's proposals, and an attestation that settlement was attempted in good faith. Walking away costs you nothing.
Why this is a strong fit for WebMCP
Our core design idea: the tool surface is the procedure.
- All 27 tools are registered per role and per phase. The respondent's agent has no offer tool until it files a response. Nobody can bid before their human sets a limit. There is deliberately no signing tool at all. Due process is enforced by tool availability, not by prompts.
- It is a multiplayer WebMCP app: two opposing agents on one neutral page. The server filters each side's view, so no tool exists that could leak your private limit to the other side, even to a prompt-injected agent.
- Humans stay in the loop where it matters. If an agent wants to concede beyond its human's limit, it can only raise an approval card on the human's screen. Only a human click converts it into an offer.
- We use both halves of the spec: the imperative API (via Chrome's official
use-webmcp-toolhook) and the declarative API, where our fairness-rating form is itself the registered tool. Tools reading the opponent's words carryuntrustedContentHintwith fenced content, per Chrome's security guidance.
Together, a person and their agent can do something neither could alone: the person brings judgment, limits, and consent; the agent brings tireless procedure, evidence handling, and negotiation; and the neutral tool surface enforces fairness between two opposing agents. That interaction pattern did not exist on the web before.
How we built it
Next.js on Vercel; case state machine in Upstash Redis; capability-keyed links with no accounts; OpenAI gpt-5-mini through the Vercel AI SDK for the mediator, reality checks, drafting, and the practice counterpart, all with deterministic fallbacks so the product never dead-ends on a model error; rate limiting and 35-second call timeouts throughout.
Challenges we ran into
The hardest problem was an unusual threat model: the prompt injector is the opposing party. Their story, their evidence, their messages all flow to your agent. We answered with layered defense: untrusted-content hints, explicit content fencing, and above all structure, because the tools that could leak your numbers simply do not exist on the other side's page.
Second hardest: making procedure feel effortless for agents. The answer was ending every tool result with contextual "NEXT:" guidance, so agents flow through the process without guessing.
Accomplishments that we're proud of
- We measured it. 30 randomized disputes run end to end through the live deployment: 100% of completed cases settled, at a mean 70% of the claim, in 52 seconds each. For claims this size the real-world alternative is usually zero.
- We red-teamed our own courtroom. The opposing party plants a message demanding the private mandate. The agent reads it, even replies, and does not disclose. A structural sweep then executes every tool on the opponent's page and proves the number appears in zero outputs. The eval suite passes 7 of 7.
- Agreements that outlive the argument. Every signed settlement carries a SHA-256 record seal, verifiable by anyone holding the document.
- A live Docket: every settlement on the platform, including yours if you try it, feeds a public counter.
What we learned
Fairness can be architecture. Procedural justice research (Tyler) shows people accept even disappointing outcomes when the process gives them voice, neutrality, transparency, and respect. Every one of those became a feature, and we now measure ourselves against it with the post-settlement fairness score.
What's next for Fairground
Jurisdiction-specific filing packs built on the court-preparation record we already generate, an embeddable dispute widget for marketplaces, escalation to a human mediator for complex cases, and more languages.
Try it (60 seconds)
Open https://fairground-umber.vercel.app in ChatGPT's browser or Chrome 149+ with the WebMCP flag. Click a one-click demo, or just tell your agent: "A client owes me $1,800 for a logo, 75 days overdue. Open a practice case and help me settle it." Set your floor, hit Autopilot, and sign the one thing no agent can.
Built With
- nextjs
- openai
- react
- redis
- tailwind
- typescript
- upstash
- vercel
- webmcp

Log in or sign up for Devpost to join the conversation.