CourtListener MCP server
online · 100% uptimeMCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.
4 stars
Reviews
Write oneNobody has reviewed CourtListener yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
CourtListener tools (34)
write = sends, deletes, buys or postscitation_batch_lookup_citationsFreeLook up multiple legal citations in a single request. This is more efficient than making individual requests for each citation. Accepts up to 100 citations at once.
citation_enhanced_citation_lookupFreeEnhanced citation lookup combining citeurl parsing with CourtListener data. This tool first uses citeurl to parse and validate the citation format, then optionally queries the CourtListener API for additional case information.
citation_extract_citations_from_textFreeExtract all legal citations from a block of text using citeurl. This tool finds and parses all legal citations within a given text, including both long-form and short-form citations (like 'id.' references).
citation_lookup_citationFreeLook up a legal citation to find the opinion it references in CourtListener. This tool accepts various citation formats including: - U.S. Reporter citations (e.g., "410 U.S. 113") - Federal Reporter citations (e.g., "123 F.3d 456") - WestLaw citations (e.g., "2023 WL 12345") - State reporter citations
citation_parse_citation_with_citeurlFreeParse a legal citation using citeurl's advanced citation recognition. This tool uses the citeurl library to parse legal citations and extract structured information including tokens, normalized format, and URL generation. Returns detailed information about the citation including: - Recognized citation format and source - Extracted tokens (volume, reporter, page, etc.) - Generated URL if available - Normalized citation text
citation_verify_citation_formatFreeVerify if a citation string is in a valid format using citeurl's advanced parsing. This tool performs validation using citeurl's comprehensive citation templates to check if a citation appears to be in a recognized legal citation format. This is much more accurate than simple regex matching. Returns information about the citation format and any detected issues.
ecfr_get_ancestryFreeGet the ancestry chain (title -> ... -> node) for a CFR node on a date.
ecfr_get_daily_search_countsFreeGet search result counts broken down by date (daily histogram).
ecfr_get_hierarchy_search_countsFreeGet search result counts distributed across the CFR hierarchy.
ecfr_get_search_countFreeGet the total number of CFR sections matching a search query.
ecfr_get_search_suggestionsFreeGet search-term suggestions for a partial CFR query.
ecfr_get_search_summaryFreeGet summary details (counts + metadata) for a CFR search query.
ecfr_get_source_xmlFreeFetch the source regulation TEXT (XML) for a CFR node on a snapshot date. Pass a part or section to scope the request. Fetching an entire large title at once can time out on the eCFR side, so narrowing is strongly recommended. Returns the raw XML under ``content_xml``.
ecfr_get_title_search_countsFreeGet search result counts broken down by CFR title.
ecfr_get_title_structureFreeGet the full hierarchical structure (title -> section) of a CFR title on a date.
ecfr_get_title_versionsFreeList the available content versions (issue dates) for one CFR title.
ecfr_list_agenciesFreeList all agencies that appear in the CFR, with their title/chapter references.
ecfr_list_all_correctionsFreeList CFR corrections, optionally filtered by title and/or effective date.
ecfr_list_corrections_by_titleFreeList all corrections for a single CFR title.
ecfr_list_titlesFreeList all 50 CFR titles with their latest amended/issue dates and status.
ecfr_search_regulationsFreeFull-text search over federal regulations, returning matching sections with hierarchy.
get_audioFreeGet oral argument audio information by ID from CourtListener.
get_clusterFreeGet an opinion cluster by ID from CourtListener.
get_courtFreeGet court information by ID from CourtListener.
get_docketFreeGet a specific court docket by ID from CourtListener.
get_opinionFreeGet a specific court opinion by ID from CourtListener.
get_personFreeGet judge or legal professional information by ID from CourtListener.
search_audioFreeSearch oral argument audio recordings in CourtListener.
search_docketsFreeSearch federal cases (dockets) from PACER in CourtListener.
search_dockets_with_documentsFreeSearch federal cases (dockets) with up to three nested documents. If there are more than three matching documents, the more_docs field will be true.
search_opinionsFreeSearch case law opinion clusters with nested Opinion documents in CourtListener.
search_peopleFreeSearch judges and legal professionals in the CourtListener database.
search_recap_documentsFreeSearch federal filing documents from PACER in the RECAP archive.
statusFreeCheck the status of the CourtListener MCP server. Returns: A dictionary containing server status, system metrics, and service information.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 1835ms20/20
- Tool poisoning34 tool descriptions checked15/15
- Auth qualityAPI key sent as a header8/15
- Maintenancelast push 21 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
How CourtListener compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 87/100
- higher than 73% of 48,243 servers
- Tools
- 34
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote server answers 100%
- Response time
- 559 ms
- faster than 29% of 30,027 servers
- GitHub stars
- 4
- more than 82% of 28,706 servers
What its tools let an agent do: 34 read
Install CourtListener in Claude Code, Cursor or VS Code
claude mcp add --transport http courtlistener-mcp https://courtlistener-mcp.vaquill.ai/mcp/
What the publisher says
From the CourtListener repository's README, as published. We do not edit it. Read it on GitHub
CourtListener MCP Server
A Model Context Protocol server that gives AI assistants access to the CourtListener legal database (US federal + state court opinions, dockets, RECAP filings, PACER data, oral arguments, judges) and the Electronic Code of Federal Regulations via the official CourtListener API v4.
Use it with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, ChatGPT Desktop, or any MCP-compatible client.
Forked from Travis-Prall/court-listener-mcp. This fork adds a hosted endpoint, bring-your-own-key (BYOK) auth, a /health route, Dockerfile hardening, a full eCFR (federal regulations) tool suite, cursor pagination, per-client rate limiting, and read-only tool annotations. See the changelog for details.
When to use this vs. the official server
Free Law Project (who run CourtListener) host an official MCP at https://mcp.courtlistener.com/ (OAuth, free with any CourtListener account) - see their announcement. Prefer it if you want OAuth and the broadest CourtListener coverage. Use this server if you want: eCFR federal-regulations tools (the official server has none), simple BYOK header auth (no OAuth dance), or a self-hosted/embeddable Python server. The two are complementary.
Use the hosted endpoint (no install)
The Vaquill team runs a public instance for the community:
https://courtlistener-mcp.vaquill.ai/mcp/You bring your own free CourtListener token from courtlistener.com/help/api/rest/, the server forwards it. We never see or store your key.
Claude Desktop / Claude Code
~/Library/Application Support/Claude/claudedesktopconfig.json (macOS) or %APPDATA%\Claude\claudedesktopconfig.json (Windows):
{
"mcpServers": {
"courtlistener": {
"url": "https://courtlistener-mcp.vaquill.ai/mcp/",
"headers": {
"X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN"
}
}
}
}Cursor
.cursor/mcp.json:
{
"mcpServers": {
"courtlistener": {
"url": "https://courtlistener-mcp.vaquill.ai/mcp/",
"headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
}
}
}VS Code (GitHub Copilot Chat)
.vscode/mcp.json:
{
"servers": {
"courtlistener": {
"type": "http",
"url": "https://courtlistener-mcp.vaquill.ai/mcp/",
"headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
}
}
}Claude Web (custom connector)
Settings → Connectors → Add custom connector → paste the URL and add X-CourtListener-Token as a header. Workspace owners only.
Windsurf, Continue, etc.
Any client that supports MCP streamable HTTP with custom headers works. For stdio-only clients, run the server locally (see below) or proxy with mcp-remote.
Tools
34 tools across 4 groups (each group is namespaced). All are read-only.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
CourtListener: common questions
- Is CourtListener MCP server safe?
- Yes, by our scan: it is graded A (87/100). Read the CourtListener safety report
- How do I install CourtListener?
- It runs remotely at courtlistener-mcp.vaquill.ai. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does CourtListener need an API key?
- Yes. The registry entry asks for
X-CourtListener-Token. - Is CourtListener maintained?
- The last commit was 60 days ago (2026-09-06). The latest release is v0.1.0.
- Is CourtListener up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- How does CourtListener compare with other MCP servers?
- safety score 87/100 (higher than 73% of 48,243 servers); tools 34 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.