MCP server exposing 10 tools for court-listener.
This URL is a JSON-RPC 2.0 endpoint over HTTP. Issue POST requests with a JSON-RPC body. Browsers and search crawlers land here on GET.
POST https://gateway.pipeworx.io/court-listener/mcp
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
search_opinions — Search US court opinions from CourtListener — 8.3 million of them, with no API key and no rate limit. Covers the UNITED STATES SUPREME COURT (SCOTUS), the federal circuit courts of appeals, the federal district courts, and the state courts (71% of the corpus is state case law). THE tool for what a US court HELD, decided or ruled in a NAMED CASE — "What did the Supreme Court hold in Air France v. Saks?", "Miranda v. Arizona", "the Ninth Circuit ruling in ..." — including the treaty and statutory questions such cases turn on (Warsaw Convention, ERISA, the Fourth Amendment). Matches the case name, the judge, and (where CourtListener recorded one) a nature-of-suit/disposition category, so it is strongest on party names, judges, and case categories ("workers compensation", "habeas", "immigration") and weaker on a legal DOCTRINE that would not appear in those fields (e.g. "qualified immunity") — use find_case when you know the party, and expect this to sometimes miss on doctrine-only phrasing. Filter by jurisdiction (state vs federal, inferred from the citation reporter) and by date_filed (the real ruling date). A specific court code (e.g. "scotus", "ca9") or a filing after the covered window falls back to a live, token-less CourtListener search automatically. Every result carries snapshot_date and opinion_ids to read with get_opinion.search_dockets — Search US court dockets by keyword. Covers PACER and RECAP archives. Each result carries docket_id, case name, court, filing and termination dates, docket number, nature of suit, the cause of action, the assigned judge, and the PACER case id.search_case_law — Search the FULL TEXT of US court opinions by subject matter — "qualified immunity for police dogs", "securities fraud scienter pleading standard". Searches the full text of CourtListener opinions with no API key and no rate limit, and returns the most relevant opinion ids, a relevance score and how often each case has been cited; set include_snippets for a passage around the match, or call get_opinion to read the whole thing. Use this when you know the TOPIC. To find a case by NAME use find_case; by reporter citation use lookup_citation. Phrase queries need quotes.find_case — Find a US court case BY NAME and get its citations, filing date, judges and how often it has been cited. Searches 8.3 million opinions across 3,361 courts — no API key, no rate limit. Ranked by citation count, so the leading case for a name comes first. Use this when you know what the case is CALLED; use search_opinions when you only know the TOPIC.lookup_citation — Resolve a US reporter citation such as "410 U.S. 113" or "347 U.S. 483" to the case it refers to, with name, filing date, judges and citation count. No API key, no rate limit. Use when a brief, opinion or article cites a case by reporter and you need to know which case that is.list_case_opinions — List every opinion filed in one case (cluster) — majority, concurrences and dissents — with the opinion_id needed to read each one via get_opinion. No API key, no rate limit. Use after find_case or lookup_citation to get from a case to its readable text.get_opinion — Get the FULL TEXT of a US court opinion by its CourtListener opinion ID (the opinion_id returned by search_opinions). Covers 8.3 million opinions, 71% state case law — no API key needed. Returns the opinion text, the case name, the real filing date, author, citation count, whether the text came from OCR of a scan, and the data as-of date. Opinions filed after that date may fall through to live search.list_docket_filings — List the filings on a US FEDERAL district or bankruptcy court docket — every complaint, motion, order and exhibit RECAP has recorded for that case, in filing order, with the document id, entry number, filing date, page count and a link to the PDF. This is the docket sheet: what was filed, when, and by which entry number. Each filing reports whether its PDF is actually held (`pdf_available`); RECAP holds the docket text for far more filings than it holds documents, so treat a filing with no PDF as a real filing whose document nobody has purchased yet, not as a missing record. Takes the docket_id from search_dockets. Court opinions are a different thing and live in search_case_law / get_opinion.get_docket_filing — Get one filing from a US federal court docket by its document id — the entry description as the clerk wrote it, the filing date, page count, the docket_id it belongs to, a text excerpt where the document has been scanned, and a direct PDF link. Use after list_docket_filings or search_court_filings to read a specific document. Returns pdf_available false when RECAP has the docket entry but not the document itself.search_court_filings — Search the TEXT of US federal court filings — complaints, motions, briefs, orders and exhibits from PACER as archived in RECAP, roughly 9.7 million documents. Use this to find what was actually argued or ordered in litigation ("trade secret misappropriation", a company named as a defendant, a specific contract term), as opposed to the appellate opinions that search_case_law covers. Returns the filing description as the clerk wrote it, the filing date, a matching text excerpt, a PDF link where the document is held, and the docket_id to read the rest of that case with list_docket_filings. Quote a phrase to search it exactly.Code samples (curl / TypeScript / one-click client install), schemas, and the live playground are on the pack page:
https://pipeworx.io/packs/court-listener/
Pipeworx is an open MCP gateway connecting AI agents to live data. pipeworx.io