courtlistener-mcp-server
Server Details
Search US court opinions, federal dockets, judges, citations, and oral arguments via CourtListener.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/courtlistener-mcp-server
- GitHub Stars
- 4
- Server Listing
- @cyanheads/courtlistener-mcp-server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 14 tools
The search/get/lookup split is clear: search tools find IDs, get tools fetch full detail by ID, and lookup tools resolve external identifiers (citations, courts). Minor overlap exists between courtlistener_lookup_citation (resolve a citation string) and courtlistener_get_citations (citation network traversal), and between the paired search_/get_ tools for disclosures and oral arguments, but descriptions make the boundaries workable.
Every tool uses the same courtlistener_ prefix followed by a consistent verb_noun snake_case pattern (search_*, get_*, lookup_*). The three verbs map cleanly to three distinct operations, and no camelCase or ad-hoc naming appears.
14 tools sit comfortably in the well-scoped range and each corresponds to a real CourtListener resource type (opinions, dockets, judges, parties, disclosures, oral arguments, courts). Nothing appears redundant or padded.
The surface covers the read-only domain well: search and detail retrieval for every major entity, plus citation resolution and a court ID discovery tool that supports the search filters. Gaps are minor — there is no standalone RECAP document/PDF fetch tool (folded into get_docket), and no coverage of user alerts or docket-entry-level search.
Available Tools
14 toolscourtlistener_get_citationsGet Citation NetworkARead-onlyInspect
Retrieve the citation network for an opinion cluster. "cited_by" lists opinions that cite this cluster; "citing" lists opinions it cites. Result rows default to Published in both directions; select statuses to expand or narrow the search. The free tier supports shallow traversal and deep multi-hop analysis can exhaust the request budget.
Inputs: cluster_id (required), court, cursor, order_by, +5 more. Returns: error, notice, results, direction, +8 more
courtlistener_get_docketGet DocketARead-onlyIdempotentInspect
Fetch docket metadata and one entries page by docket ID. Omit document_ids for the docket listing, or select RECAP document IDs embedded on entries_page to retrieve their extracted text without further upstream requests. Selected text uses bounded full/outline/page responses; continue retrieval.next_cursor as cursor with the same docket_id, entries_page and document_ids. Top-level next_cursor remains entries pagination. File availability and extracted-text status are independent. Obtain docket IDs from courtlistener_search_dockets or opinion results.
Inputs: docket_id (required), cursor, document_ids, entries_page, +1 more. Returns: kind, cause, court, error, +29 more
courtlistener_get_financial_disclosureGet Financial DisclosureARead-onlyIdempotentInspect
Fetch a judicial financial disclosure by disclosure_id from courtlistener_search_financial_disclosures. Returns metadata, counts and typed line items with coded values decoded to dollar ranges. Select categories or omit for all. Oversized selections return outline then page responses; continue retrieval.next_cursor as cursor with the unchanged ID/categories selection until null. Large individual row fields remain recoverable through text_chunks.
Inputs: disclosure_id (required), cursor, categories. Returns: kind, year, debts, error, +19 more
courtlistener_get_judgeGet Judge ProfileARead-onlyIdempotentInspect
Fetch full biographical profile for a single judge: positions on record — judicial appointments across all courts plus non-judicial roles — education, political affiliations, and ABA ratings. The position list is paginated upstream and walked under a page bound; the response reports whether it was truncated. Obtain person IDs from courtlistener_search_judges results.
Inputs: person_id (required). Returns: dob, dod, name, error, +14 more
courtlistener_get_opinionGet Court OpinionARead-onlyIdempotentInspect
Fetch text and metadata for an opinion cluster by cluster ID. Returns opinion variants with raw HTML and readable plain text by default, variants_completion for source coverage, and docket_enrichment. Choose text: plain or html for a single text representation. Oversized selections return a labeled variant outline then page responses; repeat the same ID, sections and text when continuing retrieval.next_cursor. Oversized docket backfill has independent enrichment_retrieval coordinates; continue its next_cursor as enrichment_cursor and discard prior enrichment slices when source_id changes. Obtain cluster IDs from courtlistener_search_opinions, courtlistener_lookup_citation, or docket results.
Inputs: cluster_id (required), text, cursor, sections, +1 more. Returns: kind, court, error, judges, +20 more
courtlistener_get_oral_argumentGet Oral ArgumentARead-onlyIdempotentInspect
Fetch an oral argument recording by audio_id from courtlistener_search_oral_arguments or courtlistener_get_docket. Returns case metadata, panel IDs, duration, court and CourtListener MP3 URLs, docket and available transcript. Oversized text or metadata returns outline then page responses; continue retrieval.next_cursor as cursor with the unchanged ID/sections selection until null. The argument date comes from search or the linked docket.
Inputs: id (required), cursor, sections. Returns: kind, error, judges, sections, +13 more
courtlistener_get_partiesGet PartiesARead-onlyIdempotentInspect
Fetch a page of parties and their attorneys of record for a RECAP federal docket by docket ID. Returns each party's name, role (Plaintiff, Defendant, Petitioner, Respondent, etc.), and their attorneys with contact information, scoped to this docket. Costs one party request plus up to five attorney roster requests. A later roster page blocked by the local request budget returns fetched detail with capped resolution, unresolved IDs, and the remaining roster cursor. Obtain docket IDs from courtlistener_search_dockets or courtlistener_get_docket.
Inputs: docket_id (required), cursor, page_size. Returns: error, parties, docket_id, totalCount, +4 more
courtlistener_lookup_citationLookup Legal CitationARead-onlyIdempotentInspect
Resolve legal citations (e.g., "410 U.S. 113", "93 S. Ct. 705") to opinion cluster IDs and case metadata. Enables workflows that start from a known citation rather than a search query. CourtListener extracts every citation it finds in the submitted text, so passing a passage returns one entry per citation, each with its own resolution status — an unresolved or ambiguous citation is reported in the results, not raised as an error. Supports standard US reporter formats. Costs one request against CourtListener's per-citation quota, plus one ordinary request per distinct docket whose court is resolved — max_court_lookups bounds that second half (default 4, set 0 to skip court resolution entirely). CourtListener meters this endpoint by citations submitted rather than by call, so a long passage spends proportionally more of that quota. Requires authentication — uses the CourtListener /citation-lookup/ endpoint.
Inputs: citation (required), max_court_lookups. Returns: error, notice, matches, queriedCitation
courtlistener_lookup_courtsLookup CourtsARead-onlyInspect
List courts with optional filtering by jurisdiction type, active/inactive status, and scraper coverage. Primarily used to discover court IDs for use in search and filter parameters across all other courtlistener tools. Defaults to the active bench — the courts CourtListener still scrapes; pass status:'inactive' for historical courts or status:'any' for every court. A bundled snapshot returns the complete list of matching court IDs without paging whenever the filtered set fits the response budget, which covers the default bench and every jurisdiction filter. Full court records — names, citation strings, scraper status — come live from CourtListener at a fixed 20 rows per page, so pull those only when a court ID alone is not enough.
Inputs: page, status, jurisdiction, has_opinion_scraper. Returns: page, error, courts, notice, +4 more
courtlistener_search_docketsSearch Federal Court DocketsARead-onlyInspect
Search RECAP federal court dockets by case name, docket number, party, attorney, court, or filing date. Returns docket metadata, indexed roster counts, and up to three sample filings per docket. Select roster names with include or use courtlistener_get_parties for docket-scoped detail. RECAP coverage varies by court and date.
Inputs: q (required), court, cursor, include, +4 more. Returns: error, notice, results, totalCount, +3 more
courtlistener_search_financial_disclosuresSearch Financial DisclosuresARead-onlyInspect
Search federal judicial financial disclosure filings by judge (person ID from courtlistener_search_judges) and filing year. The year filter applies to the fetched page only; follow the cursor to find matches on later pages. Returns filing metadata, category counts, itemized gifts, and the source PDF link. Use courtlistener_get_financial_disclosure for decoded investment line items.
Inputs: year, cursor, judge_id, page_size. Returns: error, notice, results, totalCount, +2 more
courtlistener_search_judgesSearch JudgesARead-onlyInspect
Search judge/person records by name, appointing president, court, or political affiliation. Returns biographical data, current position, and appointment summary. Use courtlistener_get_judge for full appointment history and education records.
Inputs: q (required), court, cursor, appointer, +2 more. Returns: error, notice, results, totalCount, +2 more
courtlistener_search_opinionsSearch Court OpinionsARead-onlyInspect
Full-text search across 9M+ written US court opinions with field-level filtering. Returns opinion cluster summaries with case metadata, citations, text previews, and individual opinion variants. Supports CourtListener field syntax (caseName:"roe v wade", court_id:scotus, judge:"Alito") and boolean operators (AND, OR, NOT). Use courtlistener_lookup_courts to find court IDs. CourtListener publishes free-tier limits of 5 req/min, 50/hr, 125/day; actual limits vary by token tier.
Inputs: q (required), court, cursor, status, +5 more. Returns: error, notice, results, totalCount, +3 more
courtlistener_search_oral_argumentsSearch Oral ArgumentsARead-onlyInspect
Search appellate oral argument audio recordings — the largest public collection of oral argument audio. Returns recording metadata with two direct MP3 links per result (download_url at the originating court, local_path for CourtListener's durable copy), panel judge IDs, and transcript snippets where available. Panel judge IDs can be passed to courtlistener_get_judge for biographical context.
Inputs: q (required), court, cursor, page_size, +2 more. Returns: error, notice, results, totalCount, +2 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Search US federal and state court records through CourtListener and the RECAP archive
MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.
Search public U.S. federal litigation: companies, cases, dockets and document metadata.
Search a large legal database of 325M+ US court records: cases, attorneys, judges and courts.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables LLM-friendly access to the CourtListener legal database and eCFR for searching legal opinions, court cases, judges, documents, and federal regulations.13-
- AlicenseNot gradedqualityDmaintenanceEnables legal research across 3,352 U.S. courts using the CourtListener API, providing access to case search, precedent analysis, judge patterns, citation validation, and federal PACER dockets through natural language queries.14 npm3MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query and access legal data from the Free Law Project's CourtListener API, including court opinions, judges, and dockets, with basic access requiring no authentication.203 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables users to search and retrieve court docket records across US state, county, and federal courts, including PACER party searches, and to get full case details.125 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.