Skip to main content

CourtListener MCP Server: Setup Guide for US Legal Research

The official CourtListener MCP server is run by Free Law Project at https://mcp.courtlistener.com/. Since 12 May 2026 it lets Claude, Cursor and other Model Context Protocol clients search US court opinions, PACER dockets, citations, oral arguments and judge records through tool calls, instead of answering from model memory. You sign in with your own CourtListener account, and every call runs against your own API limits. Below: how to connect it in each client, the tools it exposes, the limits, how self-hosting works, and why a citation check does not tell you whether a case is still good law.

Reviewed and corrected on 6 October 2026. This is general information, not legal advice; check the cited documentation and any opinion before relying on it.

TL;DR

  • Official server: https://mcp.courtlistener.com/, announced by Free Law Project on 12 May 2026. Sign in over OAuth with your CourtListener account. Clients that cannot run OAuth can send a CourtListener API token as Authorization: Token <key>.
  • No shared key. The hosted server uses your own account and your own limits. A free account gets 5 requests per minute, 50 per hour and 125 per day, so heavy research needs a Free Law Project membership.
  • Self-hosting is documented in Free Law Project's own README: a pip package for local stdio use, or Docker Compose for an HTTP server with OAuth.
  • Regulations come from elsewhere. CourtListener does not host the eCFR, so regulation text needs a separate source.
  • A match does not check treatment. A citation that resolves proves the case exists. It does not show the case is still good law: Roe v. Wade resolves, and Dobbs overruled it in 2022.
Judgment call
Question 1 of 4

A small legal team wants one AI assistant that cites real cases. Someone suggests putting one person's CourtListener API key in the shared connector so everybody can use it. What is the better setup?

Part of our MCP and developer guide series.

For related MCP / API / developer coverage, see CanLII MCP Server: Canadian Legal Research, How to Use the CourtListener API: Auth, Endpoints, Rate Limits, and Legal Research in Cursor and Claude Code with MCP.

Official text, as of 6 October 2026

Free Law Project's announcement of 12 May 2026 calls the connector a "free new tool" that "uses your API access on the CourtListener platform". (Free Law Project, 12 May 2026)

What changed in 2026: the official connector launched on 12 May. On 7 May Free Law Project lowered the default API limits, and the connector runs on those limits (Free Law Project, 7 May 2026).

How the official server signs you in

The README says you do not need a separate API token for the hosted server. You sign in with your CourtListener account through your client's OAuth flow. The server uses OAuth 2.0 with Dynamic Client Registration, so you do not register your client with CourtListener first.

If your client cannot run an interactive OAuth flow (a backend job, a script), the README says you can send your CourtListener API token with the same scheme the REST API uses:

Authorization: Token <your-CL-API-token>

Two rules from the README. The scheme is binding: Token is for API tokens and Bearer is for OAuth access tokens, so an API token sent as Bearer is refused. And an API token "grants full access to your CourtListener account's API surface", including the alert tools, so treat it like a password.

There is no shared key on the hosted server. It acts as you, with your account's limits, which is why the limits section below matters.

Setup

Claude (web, desktop, mobile)

Open Claude, then Customize > Connectors > Browse Connectors, find CourtListener in the directory, add it, and grant Claude access to your CourtListener account. Then start a chat (Free Law Project, 12 May 2026).

Claude Code

claude mcp add --transport http courtlistener https://mcp.courtlistener.com/

The first time you call a CourtListener tool, Claude Code opens a browser window for the OAuth flow. Run /mcp inside Claude Code to see the connection state.

Cursor

Free Law Project says it tests against Claude.ai, Claude Desktop, Claude Code and Cursor. Cursor reads remote servers from ~/.cursor/mcp.json (global) or .cursor/mcp.json in a project, and supports OAuth for remote servers (Cursor docs):

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://mcp.courtlistener.com/"
    }
  }
}

Enable the server in Cursor's MCP settings and complete the sign-in when Cursor prompts you.

VS Code

VS Code reads .vscode/mcp.json in a workspace, or your user profile through the MCP: Open User Configuration command (VS Code docs). Its remote servers use a servers object with "type": "http":

{
  "servers": {
    "courtlistener": {
      "type": "http",
      "url": "https://mcp.courtlistener.com/"
    }
  }
}

ChatGPT, Google and other clients

Free Law Project's setup page lists CourtListener in OpenAI's plugin directory and as a connector for Google Enterprise. For any other client, look for an "Add custom connector" or "Add MCP server" option, enter https://mcp.courtlistener.com/ as the URL, choose OAuth if asked, and sign in with your CourtListener account.

Using an API token instead of OAuth

In Claude Code, pass the token as a header. --header accepts several values, so put it after the name and the URL:

claude mcp add --transport http courtlistener https://mcp.courtlistener.com/ \
  --header "Authorization: Token YOUR_COURTLISTENER_TOKEN"

In Cursor, add a headers object next to url:

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://mcp.courtlistener.com/",
      "headers": {
        "Authorization": "Token YOUR_COURTLISTENER_TOKEN"
      }
    }
  }
}

In claude.ai, the directory connector with OAuth is the simplest route. Anthropic's custom-connector documentation says request headers are a beta feature for a limited set of organizations, that Claude sends the value exactly as you type it with no scheme added (so the value is the full Token <key>), and that "Anthropic reviews and approves each custom header name before Claude sends it to a third-party server." A header name that is not approved is rejected when you save. The list offers standard names such as authorization, x-api-key and x-auth-token, so a custom name like X-CourtListener-Token may be rejected (Anthropic, custom connectors). The same page says that if each person needs to sign in with their own account, use OAuth.

The tools the official server exposes

The MCP README lists these tools (read 6 October 2026):

GroupToolWhat it does
SearchsearchSearches case law, dockets, judges and oral arguments, with the same filters as the website.
Searchget_endpoint_itemFetches one item (opinion, docket, judge) by its CourtListener ID.
Searchget_more_resultsPages through more results from an earlier call.
Searchget_countsReturns the total count for an earlier query.
Genericcall_endpointCalls any CourtListener API endpoint with custom parameters.
Genericget_endpoint_schemaReturns the filters and response fields for an endpoint.
Genericget_choicesLists values for fields with long choice lists (court IDs, docket sources, position types, US states).
Citationsextract_citationsPulls citations out of text with eyecite. Runs on the server and makes no API calls.
Citationsanalyze_citationsExtracts citations and checks each unique case citation against CourtListener. Returns the case name, court, date and a status (the README lists good, bad and ambiguous; read good as "the citation matched", not as "still good law").
Citationsresume_citation_analysisContinues a large analyze_citations job.
Accountget_api_usageShows your remaining requests and membership status.
Alertscreate_search_alert, delete_search_alert, subscribe_to_docket_alert, unsubscribe_from_docket_alertManage alerts on your account. They change your account, so your client should ask you to confirm.

For anything without a dedicated tool (financial disclosures, opinion clusters, parties, attorneys, citation graphs), call_endpoint and get_endpoint_schema reach the full REST API. Search and list tools return up to 100 items per call, 20 by default. analyze_citations checks up to about 250 unique citations per call and returns a job ID for larger jobs.

Example prompts

Once connected, try these:

  • "Search for Supreme Court opinions from 2024 that discuss qualified immunity."
  • "Find the docket for a named case in the Northern District of California and tell me what has been filed."
  • "Verify every citation in this brief and flag anything you cannot match."
  • "Make me an alert whenever a specific case is cited by the Supreme Court."
  • "Find oral arguments in the D.C. Circuit about agency deference."

These follow the pattern of the sample prompts on Free Law Project's setup page. Your assistant picks the tools. You still read the opinions it returns.

A worked citation check, and what it cannot tell you

Ask the assistant: "Verify the citation 410 U.S. 113." It calls a citation tool such as analyze_citations, and CourtListener's record for that citation is Roe v. Wade, filed 1973-01-22 in the Supreme Court of the United States (CourtListener cluster 108713, with the opinion page at courtlistener.com/opinion/108713/roe-v-wade/). The exact fields the tool returns depend on the server version. The assistant then reports that the citation matches a real case.

That is all a match tells you. Roe v. Wade, 410 U.S. 113 (1973), was overruled by Dobbs v. Jackson Women's Health Organization, 597 U.S. 215 (2022). The Court's syllabus says: "The Constitution does not confer a right to abortion; Roe and Casey are overruled" (Dobbs, Cornell LII). CourtListener resolves 597 U.S. 215 to Dobbs, decided 2022-06-24. A citation lookup says the case exists. It does not say the case supports your point or is still good law.

Free Law Project is explicit that the connector is a tool, and says "Claude is not a lawyer. Nothing produced through this integration is legal advice." It also says it is building a free, open tool for checking whether a case is still good law. Until you have such a check, read later treatment yourself.

A 404 from the underlying citation lookup means CourtListener could not match the citation. Check it against the court's own site before concluding it is fake.

Practical workflows

Finding precedent. Ask for opinions on an issue in one court and date range. The assistant calls search, and you can ask it to pull the full text of the best hits with get_endpoint_item. Then ask the same question for another circuit.

Tracking a case. Search for the docket by party names, then fetch it. A docket record carries case metadata only. Free Law Project's docs say it "will not list the docket entries, parties, or attorneys". Those come from the docket-entries and parties endpoints, which call_endpoint can reach. Documents that RECAP users have already uploaded are free to read, and a fresh PACER purchase is billed to your PACER account.

Checking a brief. Paste it in and ask for every citation to be extracted and verified. Treat unmatched citations as unverified rather than fake, and treat matched citations as existing, not as good law.

Oral arguments. Ask for recordings in a court on a topic, for example agency deference around Loper Bright Enterprises v. Raimondo, decided 28 June 2024, which took up whether Chevron should be overruled (Cornell LII).

Regulations: CourtListener does not host the eCFR

An earlier version of this guide said CourtListener hosts the eCFR. It does not. The CourtListener v4 API root lists no regulation endpoints, and none of Free Law Project's connector documents mention the eCFR. The eCFR is run separately at ecfr.gov, which says: "The Electronic Code of Federal Regulations (eCFR) is a continuously updated online version of the CFR. It is not an official legal edition of the CFR." Check the official CFR text when you cite a regulation in a filing.

If you want regulation text in the same assistant, it has to come from a separate source, such as ecfr.gov for the continuously updated text or the official CFR editions for filings.

Self-hosting the official server

Free Law Project says most users should use the hosted server, and documents self-hosting for "development, an internal deployment, or a custom configuration". The server ships in the courtlistener-api-client package (BSD-2-Clause) on PyPI.

For local stdio use:

pip install "courtlistener-api-client[mcp]"
export COURTLISTENER_API_TOKEN="your-token"
courtlistener-mcp

Then point your MCP client at the courtlistener-mcp command as a stdio server. For an HTTP server with OAuth that matches the hosted deployment, clone the repository and run docker compose up; the README says it starts on http://localhost:8080 with Redis and lists the environment variables it needs. Self-hosting changes who runs the server. Your CourtListener limits and Free Law Project's usage policy still apply.

Limits and fair use

The connector uses your standard CourtListener API access, so the limits are the REST API's. Free Law Project's overview (REST API v4.7) says authenticated users get 5 requests per minute, 50 per hour and 125 per day by default. Memberships raise that: Tier 1 ($10 a month) allows 10 per minute, 75 per hour and 300 per day, up to Tier 4 ($100 a month) at 25, 300 and 1,400, and EDU memberships for students, faculty and researchers are free (membership page, read 6 October 2026). The get_api_usage tool shows where you stand.

Membership access has rules. Free Law Project's allowed-usage policy says it "may not be used to power a revenue-positive commercial product, service, or feature", and that internal tooling for an organization counts as commercial use. Commercial users contact Free Law Project for an agreement. Free Law Project also offers API licensing, bulk data and database replication for institutional use. Do not open several accounts to get more quota: the rules forbid it.

Background: courts and citations

The federal court system has 94 district (trial) courts and 13 courts of appeals below the Supreme Court, according to uscourts.gov. State courts run their own systems. Free Law Project says CourtListener holds more than nine million decisions from more than 2,000 courts, and publishes the list of covered jurisdictions so you can check a specific court before relying on it.

A US case citation is a volume number, a reporter abbreviation and a first page. 576 U.S. 644 is volume 576 of the United States Reports, page 644, which is Obergefell v. Hodges and the example in Free Law Project's citation docs. 556 U.S. 662 is Ashcroft v. Iqbal. The citation lookup tools resolve a citation string to the matching CourtListener record. Free Law Project says its citation parser, eyecite, is designed to recognize the reporter abbreviations in American case law.

Why PACER and RECAP matter

PACER, the federal courts' electronic records system, charges $0.10 per page, never more than $3 per document, and waives fees if you spend $30 or less in a quarter (PACER). Free Law Project's RECAP extension adds your PACER purchases to the RECAP Archive, and anything someone else has added is available to you for free (RECAP). That is why docket searches through CourtListener can show filings without a PACER charge.

Combine with statutes and Canadian coverage

CourtListener's data is court records. For statutes, regulations and court rules, Vaquill AI publishes a separate MCP server; see the MCP page. The CanLII MCP server covers Canadian decisions and legislation. Each runs as its own entry in your client, so one assistant can use all three in a conversation.

Loading diagram...

For the US statutes, regulations and court rules these laws sit in, see the US primary law API.

FAQ

What is the official CourtListener MCP server?

It is a Model Context Protocol server run by Free Law Project at https://mcp.courtlistener.com/, announced on 12 May 2026. It gives Claude, Cursor and other MCP clients tools to search opinions, dockets and oral arguments, check citations and manage alerts, signed in with your CourtListener account.

Is the CourtListener MCP server free?

Free Law Project calls the connector a free tool that uses your API access, and every CourtListener account has API access. A free account gets 5 requests per minute, 50 per hour and 125 per day. Higher limits come with a paid membership (EDU memberships are free) or a commercial agreement. Membership access cannot power a revenue-positive product.

How do I add the CourtListener MCP to Claude?

In Claude, open Customize > Connectors > Browse Connectors, find CourtListener and add it. In Claude Code, run claude mcp add --transport http courtlistener https://mcp.courtlistener.com/ and sign in when the browser opens.

Do I need an API token?

Not for the hosted server with OAuth: you sign in with your account. If your client cannot run OAuth, send your API token as Authorization: Token <key>. Free Law Project's README says Bearer is reserved for OAuth access tokens.

Can I self-host it?

Yes. Free Law Project documents pip install "courtlistener-api-client[mcp]" for local stdio use and Docker Compose for an HTTP server with OAuth. Your CourtListener limits and the usage policy still apply.

What tools does it expose?

Search (search, get_endpoint_item, get_more_results, get_counts), generic API access (call_endpoint, get_endpoint_schema, get_choices), citation tools (extract_citations, analyze_citations, resume_citation_analysis), get_api_usage, and four alert tools. See the table above.

Does CourtListener cover state courts?

Free Law Project says the database holds more than nine million decisions from more than 2,000 courts. It publishes a list of covered jurisdictions, so check the court you need there.

Can I use it in Cursor or VS Code?

Yes. Free Law Project says any client that supports Streamable HTTP with OAuth works, and it tests against Cursor. In Cursor add a url entry under mcpServers. In VS Code add a servers entry with "type": "http". The setup section has both.

Does CourtListener include regulations or statutes?

No. CourtListener covers case law, dockets, oral arguments, judges and related records. The eCFR is run separately at ecfr.gov, which says it is not an official legal edition of the CFR. Statutes and regulations come from other sources.

Connect our US primary law database.
Every US statute, regulation, constitution, and executive order via REST, MCP or SQL. 5.4M+ sections, section-level citations, and links to the official source. Plus a free open dataset.
Updated October 6, 202618 min read

New legal AI guides, weekly.

Priyansh Khodiyar

Priyansh Khodiyar

Co-Founder & CTO

Priyansh leads engineering and AI at Vaquill AI: the pipelines that pull statutes, regulations and court rules from every US jurisdiction's official publisher, and the REST API, MCP server and open dataset that serve them.

Cookie preferences

Choose what Vaquill may use on this browser. You can change this at any time from “Cookie settings” in the footer.

Details in the Cookie Policy.