KnowJudges MCP
Source-linked U.S. judge, court, legal-AI case, and immigration-outcome research through a read-only remote MCP server.
- Website: https://knowjudges.com
- Public MCP documentation: https://knowjudges.com/mcp
- Endpoint:
https://mcp.knowjudges.com/mcp - Transport: Streamable HTTP
- Authentication: no token required for bounded public access
Current contract
The deployed server advertises 10 tools. This reference was checked against live tools/list on October 12, 2026. Discover the deployed inputSchema and outputSchema rather than assuming a client’s cached catalog is current. All tools return structured, source-linked public results and advertise readOnlyHint: true, destructiveHint: false, and openWorldHint: false. They cannot file documents, email judges, or change records.
Connect
Add the endpoint in your client's remote MCP settings. Configuration names vary; a URL-only setup is sufficient where supported.
{
"mcpServers": {
"know-your-judge": {
"url": "https://mcp.knowjudges.com/mcp"
}
}
}
Tools and inputs
Optional inputs are omitted when not needed. Dates use YYYY-MM-DD. State/jurisdiction codes in schemas that require two letters are case-insensitive.
| Tool | Purpose and selection guidance | Required inputs | Optional inputs and limits |
|---|---|---|---|
find_judges | Resolve a named or otherwise identifiable judge. Results include profile_url and reported service status; named matches may be historical or uncertain. | query (at least 2 characters) | state (name or postal code), court, county, limit (default 5, 1–10). |
get_judge_profile | Retrieve identity, assignments, public profile information, sources, and scoped findings. Use the biography/practice tools for those focused questions. | judge_url | None. Missing fields mean information is unavailable. An assignment end date alone does not establish retirement or a senior-status transition. |
get_judge_biography | Retrieve sourced birth details, education, professional career, and judicial service. | judge_url | None. Preserve date precision. Age is null unless a valid full birth date is available; year-only dates must not become precise ages. |
get_courtroom_presentation_rules | Answer a named judge’s courtroom-practice question using relevant findings and underlying sources. Do not detour into court metadata or rosters unless asked. | judge_url | topics (up to 10 strings), such as exhibits, remote testimony, or a named part. Conditional program/division guidance remains conditional. |
find_ai_abuse_cases | Search reported legal-AI error cases by case name, error type, or recorded outcome. response distinguishes sanctions from no sanctions. | No single field is required by the schema; provide meaningful identifying search text or narrowing filters. Empty/bulk searches are unavailable. | query (at least 2 characters), state, court, judge, response, inclusive from_date/to_date, limit (default 5, 1–10). Returned total_matches is not the number of supplied records. |
get_recent_rule_changes | Retrieve recorded profile/rule updates since a date. Court filtering also includes associated indexed judge profiles; ambiguous court-only records are omitted. | since (inclusive date) | judge_url, court_url, limit (default 10, 1–25). Tracking starts at returned change_tracking_started_at; empty results do not prove no earlier real-world changes. |
find_court | Resolve court identity for court metadata or roster questions. | query (at least 2 characters) | jurisdiction (2-letter code, e.g. GA, DC, US), state (name or postal code), limit (default 5, 1–10). Returns canonical court_url values. |
get_court | Retrieve one court’s identity, available metadata, and bounded indexed current-status roster. | court_url | limit (default 10, 1–10). Preserve roster_coverage and roster_truncated. Counts include indexed active, senior, recalled, or visiting profiles, not an independently verified complete bench. |
get_immigration_analytics | Retrieve recorded outcomes for one immigration judge or court. | entity (judge or court), profile_url (canonical public judge or court URL) | metric (default asylum_denial_rate; alternative proceeding_removal_rate only when explicitly requested), year (1950–2100), year_basis (calendar, default, or fiscal), nationality (2–100 characters), state (2-letter code). |
compare_immigration_analytics | Compare highest/lowest recorded judge or court rates with joint geography, nationality, and period filters. | entity (judge or court) | metric, year, year_basis, nationality, state as above; order (ascending, default, or descending), minimum_decisions (default 1, 1–100000), limit (default 3, 1–10). |
For asylum analytics, percentages use grants plus denials; procedural outcomes are reported separately. Samples below 35 decisions are labeled rather than hidden. Zero decisions mean no rate, not 0%. Keep availability, message, denominator/geography definitions, source, period coverage, and limitations. Historical rates neither predict an individual outcome nor imply that a person can choose a judge.
Canonical public URL chaining
Use URLs returned by discovery, preserving their exact jurisdiction-qualified form. Do not construct URLs from names or use bare slugs, internal keys, or IDs.
Judge profile, biography, or practice
find_judges({"query":"Amy Totenberg","state":"GA","limit":3})
→ select the matching results[i].profile_url
→ get_judge_profile({"judge_url": selectedProfileUrl}) // identity/assignments
→ get_judge_biography({"judge_url": selectedProfileUrl}) // biography question
→ get_courtroom_presentation_rules({"judge_url": selectedProfileUrl}) // practice question
The follow-ups are alternatives selected by the question, not a requirement to call all three. profile_url in a discovery result becomes judge_url in these tool inputs.
Court information and recorded changes
find_court({"query":"U.S. District Court for the Northern District of Georgia","state":"GA"})
→ select the matching results[i].court_url
→ get_court({"court_url": selectedCourtUrl,"limit":5})
→ get_recent_rule_changes({"since":"2026-10-01","court_url": selectedCourtUrl})
A judge-specific change lookup instead uses judge_url from judge discovery. An empty court roster means no indexed current matches; a null count means roster data is unavailable. Neither establishes the actual court has no judges. Retain location-specific contact notes rather than treating one courthouse's address or phone as courtwide.
Legal-AI cases
{
"name": "find_ai_abuse_cases",
"arguments": {
"query": "AI hallucinations fabricated legal citations",
"response": "Monetary Sanctions",
"limit": 5
}
}
Report the recorded outcome and preserve the returned decision-link status; inclusion in the dataset alone does not establish a judicial finding that AI was used.
Immigration comparisons
compare_immigration_analytics({"entity":"judge","nationality":"Brazil","state":"CA","year":2025,"order":"ascending","limit":3})
→ lowest recorded asylum denial rates for the available filtered period
compare_immigration_analytics({"entity":"judge","nationality":"Brazil","state":"CA","year":2025,"order":"descending","limit":3})
→ highest recorded rates; retain counts, small-sample notes, and coverage
→ get_immigration_analytics({"entity":"judge","profile_url": returnedProfileUrl,"nationality":"Brazil","state":"CA","year":2025})
Use an available, non-null returned public URL for the follow-up. These examples illustrate inputs; they do not guarantee data for a particular nationality/year.
Bounds, quotas, and anti-enumeration
- Searches, court rosters, and immigration comparisons return at most 10 records. Recent changes return at most 25. Practice-topic filters accept at most 10 topics.
- No pagination, cursor, offset, batch enumeration, or bulk export is provided. Empty, wildcard, one-character, jurisdiction-only judge/court searches, and requests for all judges/courts are rejected. Use identifying name/location text plus narrowing filters.
- Sequential prefix/identifier harvesting is throttled. Daily unique judge/court budgets count a previously accessed identity only once; changing conversation sessions does not reset an OpenAI subject's quota.
- Generic anonymous callers use the IP fallback: 20 tool requests/hour, 100/day, and 50 newly accessed judge/court identities/day.
- OpenAI callers supplying
_meta["openai/subject"]use an anonymous subject bucket: 60 tool requests/hour, 300/day, and 100 new identities/day.openai/sessionis not a durable quota key. - Recognized Claude requests use session context when available for short-term control; no durable per-user identifier is inferred. Without a session, aggregate network controls apply. Session allowances are 60/hour, 300/day, and 100 new identities/day.
- A separate recognized-provider IP/network backstop allows 1000 requests/hour, 10000/day, and 1000 new identities/day. Ordinary networks have a 200/hour, 1000/day backstop and a 100-new-identity/day network budget. These are aggregate ceilings, not individual entitlements.
- MCP initialization/discovery/control requests count toward the network backstop, not the normal caller tool quota. REST uses the shared enforcement implementation and anonymous fallback when no MCP caller context exists.
- Rate/harvesting limits can return HTTP 429 or a bounded MCP tool failure. Respect retry information; do not rotate identities to bypass controls. Invalid inputs and missing data are different states.
For datasets or recurring/bulk use, see https://knowjudges.com/data-licensing.
Sources and verification
Keep returned KnowJudges URLs, source/official URLs, source titles, excerpts, scope/applicability, effective/revision dates, and last-checked dates where present. Judge-specific, courtwide, statewide, and nationally applicable federal/EOIR guidance are different authority scopes. Broader rules are not personal preferences. Missing documented practice findings establish neither permission nor prohibition.
last_updated describes publication, while last_verified or source_checked_at describes an evidence check. A recent publication does not mean every source was checked that day. Preserve supported year-only biography dates and factual uncertainty.
AI-case links may be verified decision destinations or explicitly labeled source fallbacks. Preserve decision_link_status, dataset_source, and summary_note; a fallback URL must not be described as a verified official court decision. Unknown ruling counts are unavailable, not zero. Check the linked source before relying on a requirement; case-specific orders may control.
Links
- REST documentation: https://knowjudges.com/api
- Public profiles and courts: https://knowjudges.com/kyj
- Terms: https://knowjudges.com/terms
- Privacy: https://knowjudges.com/privacy
- Directory listing: https://glama.ai/mcp/connectors/com.knowjudges/knowjudges
Third-party listings and client tool catalogs may lag a release; live tools/list is authoritative.