
CourtListener
MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.
What it can do
What data it sees
Do you need an account
An API key from the service settings is required
MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.
How to connect
How to connect CourtListener to Claude
The server address to paste into Claude settings:
https://courtlistener-mcp.vaquill.ai/mcp/
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect CourtListener to ChatGPT
The server address to paste into ChatGPT settings:
https://courtlistener-mcp.vaquill.ai/mcp/
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect CourtListener to Cursor
The server address to paste into Cursor settings:
https://courtlistener-mcp.vaquill.ai/mcp/
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (34)
Raw names from tools/list. Only developers need these.
| status | Check the status of the CourtListener MCP server. Returns: A dictionary containing server status, system metrics, and service information. |
| search_opinions | Search case law opinion clusters with nested Opinion documents in CourtListener. |
| search_dockets | Search federal cases (dockets) from PACER in CourtListener. |
| search_dockets_with_documents | 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. |
| search_recap_documents | Search federal filing documents from PACER in the RECAP archive. |
| search_audio | Search oral argument audio recordings in CourtListener. |
| search_people | Search judges and legal professionals in the CourtListener database. |
| get_opinion | Get a specific court opinion by ID from CourtListener. |
| get_docket | Get a specific court docket by ID from CourtListener. |
| get_audio | Get oral argument audio information by ID from CourtListener. |
| get_cluster | Get an opinion cluster by ID from CourtListener. |
| get_person | Get judge or legal professional information by ID from CourtListener. |
| get_court | Get court information by ID from CourtListener. |
| citation_lookup_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 |
| citation_batch_lookup_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. |
| citation_verify_citation_format | 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. |
| citation_parse_citation_with_citeurl | 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 |
| citation_extract_citations_from_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). |
| citation_enhanced_citation_lookup | 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. |
| ecfr_list_titles | List all 50 CFR titles with their latest amended/issue dates and status. |
| ecfr_get_title_versions | List the available content versions (issue dates) for one CFR title. |
| ecfr_get_title_structure | Get the full hierarchical structure (title -> section) of a CFR title on a date. |
| ecfr_get_ancestry | Get the ancestry chain (title -> ... -> node) for a CFR node on a date. |
| ecfr_get_source_xml | 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``. |
| ecfr_list_agencies | List all agencies that appear in the CFR, with their title/chapter references. |
| ecfr_list_all_corrections | List CFR corrections, optionally filtered by title and/or effective date. |
| ecfr_list_corrections_by_title | List all corrections for a single CFR title. |
| ecfr_search_regulations | Full-text search over federal regulations, returning matching sections with hierarchy. |
| ecfr_get_search_count | Get the total number of CFR sections matching a search query. |
| ecfr_get_search_summary | Get summary details (counts + metadata) for a CFR search query. |
| ecfr_get_title_search_counts | Get search result counts broken down by CFR title. |
| ecfr_get_daily_search_counts | Get search result counts broken down by date (daily histogram). |
| ecfr_get_hierarchy_search_counts | Get search result counts distributed across the CFR hierarchy. |
| ecfr_get_search_suggestions | Get search-term suggestions for a partial CFR query. |