# courtlistener-mcp-server MCP server

Search US court opinions, federal dockets, judges, citations, and oral arguments via CourtListener.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-courtlistener-mcp-server
- Repository: https://github.com/cyanheads/courtlistener-mcp-server

## Install
- Command: `npx -y @cyanheads/courtlistener-mcp-server`
- Endpoint: https://courtlistener.caseyjhand.com/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Package: Npm @cyanheads/courtlistener-mcp-server v0.2.2
- Environment variable: COURTLISTENER_API_TOKEN (required)
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/courtlistener-mcp-server v0.2.2
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://courtlistener.caseyjhand.com/mcp

## Tools
- courtlistener_search_opinions (Search Court Opinions) - Full-text search across 9M+ written US court opinions with field-level filtering. Returns opinion cluster summaries with case metadata, citations, and matched text snippets. 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. Rate limit: 5 req/min, 50/hr, 125/day on the free tier. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_get_opinion (Get Court Opinion) - Fetch the full text and metadata for a single opinion cluster by cluster ID. A cluster groups all opinions filed in a case — majority, concurrence, dissent, and per curiam. Returns all opinion variants with HTML and plain text. Obtain cluster IDs from courtlistener_search_opinions, courtlistener_lookup_citation, or docket results. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_get_citations (Get Citation Network) - Retrieve the citation network for an opinion cluster. Supports two directions: "cited_by" (opinions that cite this one — measures precedential influence) and "citing" (opinions this one cites — reveals the authority chain relied on). This is the primary tool for tracing legal precedent chains. Note: the free tier (125 req/day) supports shallow traversal — following 1–2 hops of a single case is practical; deep multi-hop analysis burns through the daily budget quickly. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_lookup_citation (Lookup Legal Citation) - Resolve a formatted legal citation string (e.g., "410 U.S. 113", "93 S. Ct. 705") to a cluster ID and case metadata. Enables workflows that start from a known citation rather than a search query. Supports standard US reporter formats. Requires authentication — uses the CourtListener /citation-lookup/ endpoint. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_search_dockets (Search Federal Court Dockets) - Search RECAP federal court dockets with party name, attorney, court, and date filters. RECAP is a crowd-sourced mirror of PACER (the federal court filing system) — coverage varies by court and date. Returns docket metadata with up to 3 sample document entries per docket. Use courtlistener_lookup_courts to find court IDs. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_get_docket (Get Docket) - Fetch full docket metadata and entry list for a single federal case by docket ID. Returns all available docket entries with document availability status. Documents with is_available=true have a RECAP-stored copy; others require a PACER account. Obtain docket IDs from courtlistener_search_dockets or from opinion results. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_get_parties (Get Parties) - Fetch all parties and 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. Requires two upstream calls per page (parties + attorney batch); keep page_size low to stay within the free-tier rate limit (5 req/min, 125/day). Obtain docket IDs from courtlistener_search_dockets or courtlistener_get_docket. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_search_judges (Search Judges) - Search judge/person records by name, appointing president, court, political affiliation, or demographic. Returns biographical data, current position, and appointment summary. Use courtlistener_get_judge for full appointment history and education records. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_get_judge (Get Judge Profile) - Fetch full biographical profile for a single judge: appointment history across all courts, education, political affiliations, and ABA ratings. Obtain person IDs from courtlistener_search_judges results. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_lookup_courts (Lookup Courts) - List courts with optional filtering by jurisdiction type and scraper status. Primarily used to discover court IDs for use in search and filter parameters across all other courtlistener tools. Returns court IDs, full names, citation strings, and scraper status. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_search_oral_arguments (Search Oral Arguments) - Search appellate oral argument audio recordings — the largest public collection of oral argument audio. Returns recording metadata with download URLs, panel judge IDs, and transcript snippets where available. Download URLs are direct MP3 links. Panel judge IDs can be passed to courtlistener_get_judge for biographical context. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_get_oral_argument (Get Oral Argument) - Fetch the full detail record for a single oral argument audio recording by its ID (the audio_id from courtlistener_search_oral_arguments). Returns the case name, panel judge IDs, duration, MP3 download URL, linked docket, and the speech-to-text transcript when transcription has completed. The argument date is not on this record — it comes from the search result or the linked docket. Endpoint: https://courtlistener.caseyjhand.com/mcp
- courtlistener_search_financial_disclosures (Search Financial Disclosures) - Search federal judicial financial disclosure filings — the annual reports judges file on investments, gifts, debts, outside positions, and income. Filter by judge (person ID from courtlistener_search_judges) and/or filing year. Returns per-filing metadata, category counts, itemized gifts, and a link to the source PDF. Line-item investments (often hundreds per filing, with coded values) are summarized as counts; the linked PDF carries the full itemization. Use this for judicial-ethics and recusal research after identifying a judge's person ID. Endpoint: https://courtlistener.caseyjhand.com/mcp

## Resources
- courtlistener://reference/courts - CourtListener Reference Static reference guide for CourtListener court IDs, jurisdiction type codes, search type codes, and rate limit information. Read this before building queries to find the correct court ID and jurisdiction filter values. MIME type: text/markdown

## Prompts
- courtlistener_research_topic - Generate a structured legal research plan for a given legal topic or question. Produces a step-by-step workflow using CourtListener tools to find relevant case law, trace precedent chains, and surface key opinions. Arguments: topic, jurisdiction, depth

## Metadata
- Owner: io.github.cyanheads
- Version: 0.2.2
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 4, 2026
- Source: https://registry.modelcontextprotocol.io
