Back to MCP Servers

Free Law Project MCP Server

Official MCP server from Free Law Project exposing CourtListener's case law, PACER/RECAP filings, judges, oral arguments, citations, and alerts to AI agents.

Legal by Free Law Project OAuth2 active
Overview

The CourtListener MCP server is the official, hosted Model Context Protocol service from Free Law Project, the 501(c)(3) nonprofit behind CourtListener and RECAP. It gives AI agents direct access to one of the largest open legal data collections available, including millions of federal and state court opinions, the RECAP archive of PACER filings, oral argument audio and transcripts, a citation network, and biographical and financial disclosure data for judges.

The server is a thin proxy over the CourtListener REST API. It exposes a set of generic search and retrieval tools (search, get_endpoint_item, get_more_results, get_counts), generic API access tools (call_endpoint, get_endpoint_schema, get_choices), citation analysis tools, and alert/subscription tools. Authentication uses OAuth 2.0 with Dynamic Client Registration (RFC 7591), so users do not need to pre-register clients or copy API tokens. Tokens are forwarded directly to CourtListener on each call and never stored by the MCP server.

Because it is provider-hosted at https://mcp.courtlistener.com/, there is nothing to install or self-host. Clients like Claude.ai, Claude Desktop, Claude Code, and ChatGPT connect via Streamable HTTP and sign in through the CourtListener OAuth flow. The MCP server is listed in Anthropic's MCP Connector Directory.

Tools

Tool Description
search Run a search across CourtListener (opinions, dockets, judges, oral arguments, RECAP) using the same filters as courtlistener.com/search.
get_endpoint_item Fetch a single item from any CourtListener REST endpoint by ID.
get_more_results Paginate through additional results from a prior search call.
get_counts Return counts of results matching a query without fetching the full records.
call_endpoint Generic call against any CourtListener REST API endpoint with arbitrary parameters.
get_endpoint_schema Return the schema for a specified CourtListener API endpoint so the agent knows valid fields and filters.
get_choices Return the valid choice values for a given enumerated field (e.g. court codes, document types).
extract_citations Extract legal citations from a block of text.
analyze_citations Resolve and verify extracted citations against the CourtListener corpus, batching up to ~250 unique citations per request.
resume_citation_analysis Resume a paused or partial citation analysis job.
create_search_alert Create a saved search alert that notifies the user when new matching documents appear.
delete_search_alert Delete an existing search alert.
subscribe_to_docket_alert Subscribe to alerts for new filings on a specific docket.
unsubscribe_from_docket_alert Unsubscribe from docket alerts.
Setup Guide

Prerequisites

  • A free CourtListener account: sign up at courtlistener.com/register
  • An MCP-capable client supporting Streamable HTTP with OAuth 2.0

No API token needs to be copied. Authentication happens through the OAuth flow when you first connect.

Server URL

https://mcp.courtlistener.com/

Claude.ai / Claude Desktop

Settings → Connectors → Add custom connector:

  • Name: CourtListener
  • URL: https://mcp.courtlistener.com/

Complete the OAuth sign-in when prompted.

Claude Code

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

ChatGPT

Settings → Apps → Advanced Settings → Create custom app:

  • Name: CourtListener
  • Server URL: https://mcp.courtlistener.com
  • Authentication: OAuth

Generic MCP client config

For clients that accept a JSON config block with HTTP transport:

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

Notes

  • Required OAuth scopes: openid, api
  • Search returns up to 100 items per call (default 20)
  • Citation analysis batches roughly 250 unique citations per request
  • Alert and subscription tools require a signed-in CourtListener account
Use Cases
  • Search federal and state case law for opinions on a specific legal question, filtered by jurisdiction, date range, or judge.
  • Pull a federal docket from the RECAP/PACER archive and list its parties, attorneys, and recent filings.
  • Verify and resolve citations in a draft brief against the live CourtListener corpus to reduce hallucinated case references.
  • Set up real-time alerts for new opinions matching a saved query or for new filings on a specific docket.
  • Research a judge by retrieving their biographical profile, financial disclosures, and recent opinions.
Example Prompts
  • "Search CourtListener for Ninth Circuit opinions from 2023 to 2025 that discuss qualified immunity for school officials."
  • "Pull docket 65733884 from RECAP and summarize the most recent five filings."
  • "Extract and verify all legal citations in this draft brief, and flag any that do not resolve to a real case."
  • "Create a daily search alert for new opinions citing Bruen in state supreme courts."
  • "Find Judge Tanya Chutkan's recent opinions and most recent financial disclosure."
Pros
  • Official server maintained by Free Law Project, the nonprofit that operates CourtListener and RECAP.
  • Fully hosted at mcp.courtlistener.com with OAuth 2.0 and Dynamic Client Registration, so there is no self-hosting and no token copying.
  • Broad coverage: case law, PACER/RECAP dockets, oral arguments, judges, citation network, and alerts in a single server.
  • Generic call_endpoint and get_endpoint_schema tools let agents reach any CourtListener REST endpoint, not just curated wrappers.
Limitations
  • Requires a CourtListener account; some volume and feature tiers depend on Free Law Project membership or commercial partnerships.
  • Search results are capped at 100 items per call and citation analysis is batched, which can require pagination for large research tasks.
  • Coverage is US-focused (federal courts and US state courts); not a source for non-US legal data.
Alternatives