We raised a $50M Series B led by BenchmarkLearn more
CourtListener logo — MCP server on Gumloop

CourtListener

Search U.S. court opinions, dockets, and case law on CourtListener.

Book a demo

Installation

Set up the CourtListener MCP server in Gumloop

Do this once to provision your hosted server URL.

1

Create a Gumloop account

To use this MCP, you need a Gumloop account. If you don't have one yet, sign up and start a 14-day free trial.

2

Add and authorize the CourtListener server

In Gumloop, open Connectors and add CourtListener. Depending on the app, you'll either sign in via OAuth or paste an API key. Either way, the credential is stored securely in Gumloop.

Then use it in your client

Use in GumloopUse in Gumloop
1

Use CourtListener in an agent

Once CourtListener is set up, just open any Gumloop agent, add CourtListener as a connector, and start chatting with the agent.

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.

Ship CourtListener agents in minutes

Connect any AI agent to 100+ MCP servers, zero setup.
Book a demo
Gradient