MCP App Store
by KeenEthics
CourtListener icon

CourtListener

By Free Law Project

Get New App Alerts

Overview

Connects Claude to CourtListener, the Free Law Project's legal research platform, with access to millions of U.S. court opinions, PACER dockets, judge profiles, oral arguments, and citation data. Search case law across federal and state courts, retrieve full case metadata, extract and verify legal citations against a canonical database, and set up alerts for new opinions or docket updates. Built and operated by Free Law Project, a 501(c)(3) nonprofit dedicated to making the law broadly accessible. Suited for attorneys, legal researchers, journalists, academics, and pro se litigants who need fast, reliable access to primary legal sources.

Tools

analyze_citations

ChatGPT
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.

call_endpoint

ChatGPT
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.

create_search_alert

ChatGPT
Create a search alert on CourtListener. Use call_endpoint with endpoint_id "alerts" to list existing alerts.

delete_search_alert

ChatGPT
Delete a search alert on CourtListener. Use call_endpoint with endpoint_id "alerts" to list existing alerts.

extract_citations

ChatGPT
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.

get_api_usage

ChatGPT
Check the user's CourtListener API usage and rate limits. Returns live usage per throttle scope, daily request counts for the last 14 days, and membership status. The user scope is the one that matters: it is the main API quota and governs nearly every endpoint and tool. When the user asks about their rate limit, remaining requests, or 429 errors, answer from the user scope; summary states it in plain language. The other scopes are narrow: citations counts citation lookups, fetch counts PACER fetch requests, and api_usage only limits this usage check itself. Do not confuse api_usage with the user's API usage. Each limit reports used, limit, remaining, reset_at (null when the window is empty) and blocked. This tool never spends the user quota, so it works while other tools are rate limited.

get_choices

ChatGPT
List every valid value for a field whose choices are too long to include in its schema. Only the fields named in field_name need this; every other choice field lists its values in the schema where it appears.

get_counts

ChatGPT
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_endpoint_item

ChatGPT
Get an item by ID from a CourtListener API endpoint.

get_endpoint_schema

ChatGPT
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.

get_more_results

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

pray_for_document

ChatGPT
Request a RECAP document that is not yet available on CourtListener through Pray and Pay. Prayers are pooled across users: when anyone buys the document from PACER, it is added to CourtListener for free and everyone praying for it is emailed. Nothing is charged to the user, but fulfillment is not immediate and not guaranteed. Only documents whose is_available is false need a prayer. This tool checks first and, if the document is already available, tells you to read it with read_document instead. Prayers count against a daily per-user limit, so only pray when the user actually wants the filing. Use call_endpoint with endpoint_id "prayers" to list the user's pending prayers.

read_document

ChatGPT
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.

resume_citation_analysis

ChatGPT
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.

search_document

ChatGPT
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.

subscribe_to_docket_alert

ChatGPT
Subscribe to alerts for a docket on CourtListener. Use call_endpoint with endpoint_id "docket-alerts" to list existing subscriptions.

unsubscribe_from_docket_alert

ChatGPT
Unsubscribe from alerts for a docket on CourtListener. Looks up the alert by docket ID and deletes it, so you only need the docket ID (not the alert ID). Use call_endpoint with endpoint_id "docket-alerts" to list existing subscriptions.

withdraw_prayer

ChatGPT
Withdraw a pending Pray and Pay request for a RECAP document. Looks up the user's pending prayer by RECAP document ID and deletes it, so you only need the document ID (not the prayer ID). Prayers that have already been granted cannot be withdrawn and do not need to be: the document is available. Use call_endpoint with endpoint_id "prayers" to list the user's pending prayers.

analyze_citations

Claude

call_endpoint

Claude

create_search_alert

Claude

delete_search_alert

Claude

extract_citations

Claude

get_choices

Claude

get_counts

Claude

get_endpoint_item

Claude

get_endpoint_schema

Claude

get_more_results

Claude

resume_citation_analysis

Claude

subscribe_to_docket_alert

Claude

unsubscribe_from_docket_alert

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps