Back

CourtListener

Search U.S. court opinions and dockets.

MCP server URL

https://courtlistener.gumstack.com/mcp

Works with

Tools 16

  • Search

    Search for case law, dockets, judges, and oral arguments. When returning results to the user, consider presenting them as color-coded visual cards with clickable "view on CourtListener" links rather than plain text, grouping by relevance or significance where helpful. Fields like `absolute_url`, `caseName`, `dateFiled`, etc. can be useful here.

  • Get Endpoint Schema

    Get the schema for a CourtListener API endpoint. Use this for additional API endpoints which do not have a dedicated MCP tool. These endpoints are distinct from the search endpoint and often include more detailed metadata.

  • Call Endpoint

    Call CourtListener API endpoint. Use this for additional API endpoints which do not have a dedicated MCP tool. These endpoints are distinct from the search endpoint and often include more detailed metadata.

  • Get Endpoint Item

    Get an item by ID from a CourtListener API endpoint.

  • Get Choices

    Get the valid choices for a field on a CourtListener API endpoint. Use this when a field's schema says to look up choices with this tool.

  • Get Counts

    Get the number of results from a previous query. Some endpoints return the count lazily. Use this tool to retrieve the count from a previous query if it is not available.

  • Get More Results

    Get more results from a previous query. Use this tool to continue paginating through results returned by the `search` or `call_endpoint` tools.

  • Read Document

    Read the full text of a court opinion or RECAP document. Fetches the document text and either returns it in full or as one or more paginated chunks. For opinions, uses the ``html_with_citations`` field (the most complete text representation). For RECAP documents, uses ``plain_text``. **Usage patterns** - *Full read*: omit ``chunk_index`` to receive the entire document along with its ``total_chars``. - *Single chunk*: pass an integer ``chunk_index`` (0-based) to receive one window of ``chunk_size`` characters. The response includes ``total_chunks`` so you can jump directly to any part of the document (e.g. set ``chunk_index`` to ``total_chunks - 1`` to read the conclusion). - *Multiple chunks*: pass a list of chunk indexes to retrieve several non-contiguous windows in a single call (up to 10). Useful when you already know the chunk size from a previous call and want the next N pages at once. Input should include exactly one of opinion_id, recap_document_id, or cluster_id.

  • Search Document

    Search for snippets within one or more court opinions or RECAP documents. Performs a case-insensitive literal search (similar to grep) and returns up to 20 matching excerpts per document with surrounding context. Use this to locate specific language—a party name, a statutory citation, a key phrase—without reading whole documents. Pass a list of IDs (up to 10) to search several documents in a single call. Results are returned as a list; errors on individual documents are included as an ``error`` field so one unavailable document does not abort the rest. When ``match_count`` exceeds ``shown``, the first 20 matches are returned. Use ``read_document`` with ``chunk_index`` to read the area around a match's ``position`` if you need more context. Input should include exactly one of opinion_id, recap_document_id, or cluster_id.

  • Extract Citations

    Extract and resolve legal citations from text using eyecite. Runs locally with no API calls or rate limits. Handles all citation types: full case citations, id., supra, short cites, and statutes. Use this tool to understand the citation structure of a document before selectively verifying citations with analyze_citations.

  • Analyze Citations

    Analyze and verify legal citations against CourtListener. Extracts all citations locally using eyecite, then verifies each unique case citation against CourtListener's database via the citation-lookup API. Returns case name, date, citation count, and verification status for each citation. For documents with more than 250 unique case citations, the first batch is verified immediately and a job_id is returned. Use resume_citation_analysis to continue verifying remaining citations. Terminology in the output: * **citation occurrence** — each citation as it appears in the text. * **unique citation string** — distinct ``volume reporter page`` triples (e.g., one case cited three times is one string). * **unique case cluster** — distinct CourtListener case clusters after parallel-citation dedup (several strings may map to one). Case-name cross-check: when a citation verifies by reporter but its input case name differs significantly from the cluster's canonical name, a WARNING is emitted flagging a possible hallucinated citation. Input should include exactly one of opinion_id or cluster_id.

  • Resume Citation Analysis

    Resume verifying citations from a previous analysis. Use this after analyze_citations returns with pending citations due to rate limiting (more than 250 unique case citations). Takes the job_id and verifies the next batch.