# CourtListener MCP server

MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-vaquill-ai-courtlistener-mcp
- Repository: https://github.com/Vaquill-AI/courtlistener-mcp

## Install
- Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: X-CourtListener-Token (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- Header: X-CourtListener-Token

## Tools
- status - Check the status of the CourtListener MCP server.

Returns:
    A dictionary containing server status, system metrics, and service information. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- search_opinions - Search case law opinion clusters with nested Opinion documents in CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- search_dockets - Search federal cases (dockets) from PACER in CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- search_recap_documents - Search federal filing documents from PACER in the RECAP archive. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- search_audio - Search oral argument audio recordings in CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- search_people - Search judges and legal professionals in the CourtListener database. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- get_opinion - Get a specific court opinion by ID from CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- get_docket - Get a specific court docket by ID from CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- get_audio - Get oral argument audio information by ID from CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- get_cluster - Get an opinion cluster by ID from CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- get_person - Get judge or legal professional information by ID from CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- get_court - Get court information by ID from CourtListener. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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

Args:
    citation: The citation string to look up.
    ctx: The FastMCP context for logging and accessing shared resources.

Returns:
    dict[str, Any]: The opinion(s) that match the citation, or an error dict if the lookup fails.

Raises:
    ValueError: If COURT_LISTENER_API_KEY is not found in environment variables.
    httpx.HTTPStatusError: If the API request fails. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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.

Args:
    citations: List of citation strings to look up (max 100).
    ctx: The FastMCP context for logging and accessing shared resources.

Returns:
    dict[str, Any]: A dictionary mapping each citation to its corresponding opinion(s).

Raises:
    ValueError: If COURT_LISTENER_API_KEY is not found in environment variables.
    httpx.HTTPStatusError: If the API request fails. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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.

Args:
    citation: The citation string to verify.
    ctx: The FastMCP context for logging.

Returns:
    dict[str, str | bool | list[str] | None]: A dictionary containing validation results with:
        - valid: Whether the citation is in a valid format
        - format: The recognized citation format type (if valid)
        - template: The citation template matched (if valid)
        - issues: List of any validation issues found
        - citation: The original citation string Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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

Args:
    citation: The citation string to parse.
    ctx: The FastMCP context for logging.
    broad: Whether to use broad matching for flexible parsing.

Returns:
    dict[str, str | dict | None]: A dictionary containing the parsed citation data,
        including success status, original citation, and detailed parsing results. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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).

Args:
    text: The text containing legal citations to extract.
    ctx: The FastMCP context for logging.

Returns:
    dict[str, list | int]: A dictionary containing:
        - total_citations: Number of citations found
        - citations: List of parsed citation information
        - text_length: Length of the input text
        - error (optional): Error message if extraction failed Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/
- 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.

Returns:
    dict: Comprehensive citation information from both sources, containing:
        - citation: The original citation string
        - citeurl_analysis: Parsing results from citeurl
        - courtlistener_data: Lookup results from CourtListener API
        - combined_info: Summary of available information from both sources

Args:
    citation: The citation string to look up and analyze.
    ctx: The FastMCP context for logging and accessing shared resources.
    include_courtlistener: Whether to include CourtListener API lookup.

Returns:
    dict[str, dict | str | bool]: A dictionary containing the enhanced citation information. Endpoint: https://courtlistener-mcp.vaquill.ai/mcp/

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.Vaquill-AI
- Version: 0.1.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 15, 2026
- Source: https://registry.modelcontextprotocol.io
