MCP server
Connect an agent to Judd
Judd is a buyer’s advocate for AI agents. Before an agent books travel, reserves a restaurant, buys something or changes a subscription for a person, it sends Judd the options it found. Judd applies that person’s rules and returns a verdict the agent follows. Judd works only for the buyer, is never paid by sellers, never touches money or credentials, and makes no AI model calls of its own.
Endpoint and authentication
Endpoint: https://judd.flowinfo.co/mcp (streamable HTTP, stateless, JSON responses)
Authentication: each person’s Judd API key as a Bearer token: Authorization: Bearer judd_…. Keys start with judd_, are stored only as a hash, and can be rotated from the dashboard at any time.
OAuth 2.1 (ChatGPT, Muse, Claude and other MCP clients): no key to paste. Connect to https://judd.flowinfo.co/mcp; an unauthenticated call returns 401 with resource_metadata, and the client takes it from there: discovery at https://judd.flowinfo.co/.well-known/oauth-authorization-server, dynamic client registration, authorization code with PKCE (S256 only), access tokens for one hour, and refresh tokens that rotate on every use. The person approves on Judd’s own page with their Judd key; getting a new key disconnects every app.
Getting a key: free email sign-up at flowinfo.co/judd. Every call is scoped to the person whose key it carries.
Tools
| Tool | When the agent calls it |
|---|---|
check_travel_booking | Before booking any flight, hotel, rental car or package. |
check_purchase | Before buying anything that costs $50 or more. |
check_subscription | Before starting, renewing, upgrading, downgrading or cancelling a subscription. |
check_restaurant | Before reserving a restaurant table. |
report_booking | After acting: what was booked, bought, or not done. |
report_followup | After a purchase: returned, price drop, price adjusted, problem, or kept. Judd learns from it. |
get_travel_preferences | Before searching for travel, so options fit the person. |
get_shopping_preferences | Before shopping or changing subscriptions. |
get_restaurant_preferences | Before searching for a restaurant. |
Each check takes every option the agent found and the one it proposes, with prices, terms, ratings from each review source, and anything unknown marked as unknown. Full field descriptions are in each tool’s input schema.
Verdicts
| Verdict | What the agent does |
|---|---|
YES | Go ahead with the proposed option. |
INSTEAD | Go ahead with the option Judd chose. |
FIND_BETTER | Don’t act. Gather what Judd asked for, then check again. |
NEGOTIATE | Ask for a better price or terms, then check again. |
WAIT | Don’t act now. Tell the person why. |
ASK_YOU | Don’t act. Show the person Judd’s reason and let them decide. |
NO | Don’t act. Tell the person why. |
Every answer includes say_to_user (one plain sentence for the person), what_to_do (the instruction for the agent), the reason, and a link to the decision record. On approvals it can include check_before_acting: the person’s standing instructions, which the agent checks against the conversation. The agent may only be more careful, never less. A YES or INSTEAD is the person’s go-ahead and includes valid_until; after it, check again. earlier_approvals, when present, lists past Judd verdicts that were never reported done: they are not bookings, so report each as booked or abandoned.
Example
check_restaurant → {
"say_to_user": "Judd · Better pick: Book Quiet Table at 7:15 PM for 4 instead of Loud Bistro: just as well rated and quiet, so you can talk, at about the same cost ($272 against $260).",
"verdict": "INSTEAD",
"what_to_do": "Reserve Quiet Table at 7:15 PM on Dec 04 for 4 instead of what you proposed. Then call report_booking."
}
Limits and data
- Free and open to anyone.
- 60 requests a minute per key.
- Every decision is stored as an FJP Judgment-Grounded Record the person can review on their dashboard.
- Judd sees only what the agent sends it. It never has payment details, passwords or account logins.
Privacy policy · Terms · Support: hello@flowinfo.co