mcp server
CourtListener
MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.
Description as published by the maintainer. Source
- version 0.1.0
- active
active — Registry entry last updated 2026-05-15.
What this server can do
34 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
citation_batch_lookup_citations(citations)- Look 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. Required: citations.
citation_enhanced_citation_lookup(citation, include_courtlistener)- Enhanced 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. Required: citation.
citation_extract_citations_from_text(text)- Extract 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). Required: text.
citation_lookup_citation(citation)- Look 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 Required: citation.
citation_parse_citation_with_citeurl(broad, citation)- Parse 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 Required: citation.
citation_verify_citation_format(citation)- Verify 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. Required: citation.
ecfr_get_ancestry(date, part, title, section)- Get the ancestry chain (title -> ... -> node) for a CFR node on a date. Required: title, date.
ecfr_get_daily_search_counts(date, query)- Get search result counts broken down by date (daily histogram). Required: query.
ecfr_get_hierarchy_search_counts(date, query)- Get search result counts distributed across the CFR hierarchy. Required: query.
ecfr_get_search_count(date, query, title, agency_slugs)- Get the total number of CFR sections matching a search query. Required: query.
ecfr_get_search_suggestions(query)- Get search-term suggestions for a partial CFR query. Required: query.
ecfr_get_search_summary(date, query, title, agency_slugs)- Get summary details (counts + metadata) for a CFR search query. Required: query.
ecfr_get_source_xml(date, part, title, chapter, section, subpart, appendix, subtitle, subchapter)- Fetch 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``. Required: title, date.
ecfr_get_title_search_counts(date, query)- Get search result counts broken down by CFR title. Required: query.
ecfr_get_title_structure(date, title)- Get the full hierarchical structure (title -> section) of a CFR title on a date. Required: title, date.
ecfr_get_title_versions(title)- List the available content versions (issue dates) for one CFR title. Required: title.
ecfr_list_agencies- List all agencies that appear in the CFR, with their title/chapter references.
ecfr_list_all_corrections(date, title)- List CFR corrections, optionally filtered by title and/or effective date.
ecfr_list_corrections_by_title(title)- List all corrections for a single CFR title. Required: title.
ecfr_list_titles- List all 50 CFR titles with their latest amended/issue dates and status.
ecfr_search_regulations(date, page, order, query, title, per_page, agency_slugs)- Full-text search over federal regulations, returning matching sections with hierarchy. Required: query.
get_audio(audio_id)- Get oral argument audio information by ID from CourtListener. Required: audio_id.
get_cluster(cluster_id)- Get an opinion cluster by ID from CourtListener. Required: cluster_id.
get_court(court_id)- Get court information by ID from CourtListener. Required: court_id.
get_docket(docket_id)- Get a specific court docket by ID from CourtListener. Required: docket_id.
get_opinion(opinion_id)- Get a specific court opinion by ID from CourtListener. Required: opinion_id.
get_person(person_id)- Get judge or legal professional information by ID from CourtListener. Required: person_id.
search_audio(q, court, judge, limit, cursor, order_by, case_name, argued_after, argued_before)- Search oral argument audio recordings in CourtListener. Required: q.
search_dockets(q, court, limit, cursor, order_by, case_name, party_name, docket_number, date_filed_after, date_filed_before)- Search federal cases (dockets) from PACER in CourtListener. Required: q.
search_dockets_with_documents(q, court, limit, cursor, order_by, case_name, party_name, docket_number, date_filed_after, date_filed_before)- Search federal cases (dockets) with up to three nested documents. If there are more than three matching documents, the more_docs field will be true. Required: q.
search_opinions(q, court, judge, limit, cursor, cited_gt, cited_lt, order_by, case_name, filed_after, filed_before)- Search case law opinion clusters with nested Opinion documents in CourtListener. Required: q.
search_people(q, name, limit, cursor, school, order_by, appointed_by, position_type, selection_method, political_affiliation)- Search judges and legal professionals in the CourtListener database. Required: q.
search_recap_documents(q, court, limit, cursor, order_by, case_name, party_name, filed_after, filed_before, docket_number, document_number, attachment_number)- Search federal filing documents from PACER in the RECAP archive. Required: q.
status- Check the status of the CourtListener MCP server. Returns: A dictionary containing server status, system metrics, and service information.
Last successful function declaration observed on . Source: https://courtlistener-mcp.vaquill.ai/mcp/. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://courtlistener-mcp.vaquill.ai/mcp/.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 0.1.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-05-15 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-05-15 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 34 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | courtlistener-mcp.vaquill.ai | |
| mcp endpoint status | ok | The server listed 34 functions when asked. | as of probe | courtlistener-mcp.vaquill.ai |
Where to get it
Also from vaquill-ai
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json