CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
vaquill-ai avatar

CourtListener

vaquill-ai/courtlistener-mcp
114 toolsauthHTTPregistry active
Summary

Connects Claude to CourtListener's v4 API and the Electronic Code of Federal Regulations, giving you programmatic access to US federal and state court opinions, dockets, RECAP filings, oral arguments, judge profiles, and live eCFR regulations. You get 25+ tools spanning search, citation parsing, batch lookup, and regulatory text retrieval. The Vaquill team runs a public HTTPS endpoint where you bring your own free CourtListener token via custom headers, so there's no local install required for Claude Desktop, Cursor, or VS Code. Useful when you're building legal research workflows, need to verify citations in context, or want to pull current CFR text without leaving your editor.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →

Tools

Public tool metadata for what this MCP can expose to an agent.

14 tools
search_cases_by_problemFind relevant cases using LLM-generated search keywords. The LLM should extract legal keywords from the problem description and provide them for precise case law search.7 params

Find relevant cases using LLM-generated search keywords. The LLM should extract legal keywords from the problem description and provide them for precise case law search.

Parameters* required
case_typestring
Type of legal issueone of consumer · small-claims · landlord-tenant · contract · warranty · debt-collection
court_levelstring
Level of courts to searchone of trial · appellate · supreme · alldefault: all
date_rangestring
Time range preference for casesone of recent-2years · established-precedent · all-timedefault: recent-2years
jurisdictionstring
Jurisdiction to search. Options: - "all" (search all courts) - "federal" (all federal courts) - "state" (all state courts) -...
limitnumber
Number of cases to return (1-20)default: 10
problem_summarystring
Brief summary of the legal problem for context (1-2 sentences)
search_keywordsarray
Array of legal search terms extracted by LLM from problem description (e.g., ["breach of contract", "negligence", "damages"])
get_case_detailsDeep dive into specific case for precedent analysis with full legal reasoning2 params

Deep dive into specific case for precedent analysis with full legal reasoning

Parameters* required
case_idstring
Case ID from search results (cluster ID or docket ID)
content_modestring
Content mode: 'summary' returns API syllabus or 'N/A - use full mode', 'full' returns complete opinion textone of summary · fulldefault: summary
find_similar_precedentsFind cases with similar legal reasoning or outcomes to a reference case5 params

Find cases with similar legal reasoning or outcomes to a reference case

Parameters* required
citation_thresholdnumber
Minimum citation count for authoritative casesdefault: 1
jurisdictionstring
Jurisdiction to search for similar cases. Options: - "all" (search all courts) - "federal" (all federal courts) - "state" (all state courts)...
legal_conceptsarray
Key legal concepts to match (e.g., ["breach of contract", "negligence"])
limitnumber
Number of similar cases to return (1-15)default: 8
reference_case_idstring
ID of base case to find similar cases
analyze_case_outcomesAnalyze outcome patterns for similar cases to predict success likelihood4 params

Analyze outcome patterns for similar cases to predict success likelihood

Parameters* required
case_typestring
Type of legal issue to analyze
court_levelstring
Court level to analyzeone of trial · appellate · alldefault: all
date_rangestring
Time period for analysisone of last-year · last-2years · last-5yearsdefault: last-2years
jurisdictionstring
Jurisdiction to analyze cases in. Options: - "all" (analyze all courts) - "federal" (all federal courts) - "state" (all state courts)...
get_judge_analysisAnalyze judge's typical rulings on similar issues for strategic insights4 params

Analyze judge's typical rulings on similar issues for strategic insights

Parameters* required
case_typestring
Area of law to analyze (e.g., contract disputes, small claims, employment law)
courtstring
Specific court identifier (optional, narrows down the search)
judge_namestring
Full name of the judge
jurisdictionstring
Optional jurisdiction to help identify the correct judge. Options: - "federal" (all federal courts) - "state" (all state courts) - State names:...
validate_citationsVerify and expand legal citations with related case discovery3 params

Verify and expand legal citations with related case discovery

Parameters* required
citationsarray
List of citations to verify (e.g., ["123 F.3d 456", "Smith v. Jones"])
context_textstring
Surrounding legal argument context for better validation
jurisdictionstring
Optional jurisdiction to improve search accuracy. Options: - "federal" (all federal courts) - "state" (all state courts) - State names: "califo...
get_procedural_requirementsFind procedural rules and filing requirements for specific case types in any jurisdiction4 params

Find procedural rules and filing requirements for specific case types in any jurisdiction

Parameters* required
case_typestring
Type of legal complaint or case
claim_amountnumber
Dollar amount of dispute (helps determine appropriate court level)
courtstring
Specific court identifier (optional, narrows down the search)
jurisdictionstring
Jurisdiction to search for procedural requirements. Options: - "federal" (all federal courts) - "state" (all state courts) - State names: "cali...
track_legal_trendsIdentify recent trends in similar cases for strategic advantage3 params

Identify recent trends in similar cases for strategic advantage

Parameters* required
legal_areastring
Area of law to analyze trendsone of consumer-protection · small-claims · landlord-tenant · contract-disputes · warranty-claims
time_periodstring
Time period for trend analysisone of last-6months · last-year · last-2yearsdefault: last-year
trend_typestring
Type of trend to analyzeone of outcomes · filing-patterns · new-precedents · settlement-ratesdefault: outcomes
search_pacer_dockets📊 PACER SEARCH: Search federal court dockets from PACER via CourtListener's RECAP Archive. Find active and terminated cases with comprehensive party, attorney, and filing information. Search by case name, party name, or nature of suit across all federal courts or specific jur...7 params

📊 PACER SEARCH: Search federal court dockets from PACER via CourtListener's RECAP Archive. Find active and terminated cases with comprehensive party, attorney, and filing information. Search by case name, party name, or nature of suit across all federal courts or specific jur...

Parameters* required
case_namestring
Case name or title to search for
case_typestring
Type of case to search forone of civil · criminal · bankruptcy · alldefault: all
courtstring
Specific court identifier (e.g., 'ca3', 'cacd', 'nysd', 'dcd') OR jurisdiction name (e.g., 'federal', 'california', 'bankruptcy'). Court IDs are passed directly, jurisdiction names are resolved to...
date_rangeobject
Date range for case filing or termination dates
limitnumber
Maximum number of dockets to returndefault: 20
nature_of_suitstring
Nature of suit code or description (e.g., 'Contract', 'Tort', 'Civil Rights')
party_namestring
Name of a party involved in the case (plaintiff, defendant, etc.). Examples: 'Sean Combs', 'Microsoft Corporation', 'United States'
get_docket_entries🔒 PREMIUM ACCESS REQUIRED | EXPERIMENTAL: Get detailed docket entries for a specific case, including all filings, orders, and document references from PACER. Note: This function requires CourtListener premium API access and is experimental - may not work with basic API keys.3 params

🔒 PREMIUM ACCESS REQUIRED | EXPERIMENTAL: Get detailed docket entries for a specific case, including all filings, orders, and document references from PACER. Note: This function requires CourtListener premium API access and is experimental - may not work with basic API keys.

Parameters* required
docket_idstring
Docket ID from search results
entry_typestring
Type of docket entries to retrieveone of all · documents · orders · filingsdefault: all
limitnumber
Maximum number of entries to returndefault: 50
search_parties_attorneys📊 BASIC ACCESS: Search for parties and attorneys across PACER cases. Track representation patterns and attorney success rates. Note: Basic API access provides limited data - premium access required for full attorney/party details.6 params

📊 BASIC ACCESS: Search for parties and attorneys across PACER cases. Track representation patterns and attorney success rates. Note: Basic API access provides limited data - premium access required for full attorney/party details.

Parameters* required
attorney_namestring
Attorney name to search for
courtstring
Court identifier to limit search (optional)
date_rangeobject
Date range for case activity
firm_namestring
Law firm name to search for
limitnumber
Maximum number of results to returndefault: 20
party_namestring
Name of party to search for (plaintiff, defendant, etc.)
analyze_case_timeline🔒 PREMIUM ACCESS REQUIRED | EXPERIMENTAL: Analyze case progression timeline from PACER docket entries. Track delays, activity patterns, and case development. Note: Requires premium access to docket-entries endpoint - basic API access provides limited timeline data only.3 params

🔒 PREMIUM ACCESS REQUIRED | EXPERIMENTAL: Analyze case progression timeline from PACER docket entries. Track delays, activity patterns, and case development. Note: Requires premium access to docket-entries endpoint - basic API access provides limited timeline data only.

Parameters* required
analysis_typestring
Type of timeline analysis to performone of progression · delays · activity · alldefault: all
docket_idstring
Docket ID to analyze
include_documentsboolean
Include document filing analysis in timelinedefault: false
track_case_status📊 BASIC ACCESS: Track current status and recent activity for PACER cases. Monitor active litigation progress. Note: Basic access provides case metadata only - premium access required for detailed activity tracking.3 params

📊 BASIC ACCESS: Track current status and recent activity for PACER cases. Monitor active litigation progress. Note: Basic access provides case metadata only - premium access required for detailed activity tracking.

Parameters* required
docket_idstring
Docket ID to track
include_recent_activityboolean
Include recent docket activity in status reportdefault: true
status_historyboolean
Include historical status changesdefault: false
get_case_documents🔒 PREMIUM ACCESS REQUIRED | EXPERIMENTAL: Retrieve case documents from PACER with full text extraction. Access orders, motions, briefs, and opinions. Note: This function requires CourtListener premium API access and is experimental - may not work with basic API keys.4 params

🔒 PREMIUM ACCESS REQUIRED | EXPERIMENTAL: Retrieve case documents from PACER with full text extraction. Access orders, motions, briefs, and opinions. Note: This function requires CourtListener premium API access and is experimental - may not work with basic API keys.

Parameters* required
docket_idstring
Docket ID to get documents for
document_typestring
Type of documents to retrieveone of all · orders · motions · briefs · opinionsdefault: all
include_textboolean
Include extracted full text content (may be large)default: false
limitnumber
Maximum number of documents to returndefault: 20

CourtListener MCP Server

A Model Context Protocol server that gives AI assistants access to the CourtListener legal database (US federal + state court opinions, dockets, RECAP filings, PACER data, oral arguments, judges) and the Electronic Code of Federal Regulations via the official CourtListener API v4.

Use it with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, ChatGPT Desktop, or any MCP-compatible client.

Forked from Travis-Prall/court-listener-mcp. This fork adds a hosted endpoint, bring-your-own-key (BYOK) auth, a /health route, Dockerfile hardening, a full eCFR (federal regulations) tool suite, cursor pagination, per-client rate limiting, and read-only tool annotations. See the changelog for details.

When to use this vs. the official server

Free Law Project (who run CourtListener) host an official MCP at https://mcp.courtlistener.com/ (OAuth, free with any CourtListener account) - see their announcement. Prefer it if you want OAuth and the broadest CourtListener coverage. Use this server if you want: eCFR federal-regulations tools (the official server has none), simple BYOK header auth (no OAuth dance), or a self-hosted/embeddable Python server. The two are complementary.

Discord

Use the hosted endpoint (no install)

The Vaquill team runs a public instance for the community:

https://courtlistener-mcp.vaquill.ai/mcp/

You bring your own free CourtListener token from courtlistener.com/help/api/rest/, the server forwards it. We never see or store your key.

Claude Desktop / Claude Code

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": {
        "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN"
      }
    }
  }
}

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
    }
  }
}

VS Code (GitHub Copilot Chat)

.vscode/mcp.json:

{
  "servers": {
    "courtlistener": {
      "type": "http",
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
    }
  }
}

Claude Web (custom connector)

Settings → Connectors → Add custom connector → paste the URL and add X-CourtListener-Token as a header. Workspace owners only.

Windsurf, Continue, etc.

Any client that supports MCP streamable HTTP with custom headers works. For stdio-only clients, run the server locally (see below) or proxy with mcp-remote.

Tools

34 tools across 4 groups (each group is namespaced). All are read-only.

GroupTools
Search (CourtListener)search_opinions, search_dockets, search_dockets_with_documents, search_recap_documents, search_audio, search_people
Get (CourtListener)get_opinion, get_docket, get_audio, get_court, get_person, get_cluster
Citationcitation_lookup_citation, citation_batch_lookup_citations, citation_verify_citation_format, citation_parse_citation_with_citeurl, citation_extract_citations_from_text, citation_enhanced_citation_lookup
eCFR (federal regulations)ecfr_list_titles, ecfr_get_title_versions, ecfr_get_title_structure, ecfr_get_ancestry, ecfr_get_source_xml, ecfr_list_agencies, ecfr_list_all_corrections, ecfr_list_corrections_by_title, ecfr_search_regulations, ecfr_get_search_count, ecfr_get_search_summary, ecfr_get_title_search_counts, ecfr_get_daily_search_counts, ecfr_get_hierarchy_search_counts, ecfr_get_search_suggestions
Systemstatus

Search tools accept a cursor param and return a next_cursor for pagination. See app/README.md for full parameter details.

Authentication

Two modes, in priority order:

  1. Per-request header (BYOK) — preferred for hosted / shared deployments. Send the user's CourtListener key on every MCP request:
    • X-CourtListener-Token: <key> (preferred), or
    • Authorization: Token <key> (CourtListener's native scheme — only works if the MCP server itself isn't already gated by Authorization).
  2. Server env fallback — set COURT_LISTENER_API_KEY on the server. Used when no per-request header is supplied. Leave unset on public instances to force BYOK and avoid burning the operator's quota.

If neither is provided, tools return a ValueError with a clear message.

Self-host

Docker

git clone https://github.com/Vaquill-AI/courtlistener-mcp.git
cd courtlistener-mcp
cp .env.example .env  # optionally set COURT_LISTENER_API_KEY for single-tenant
docker compose up -d
# server at http://localhost:8000/mcp/

Python (uv)

uv sync
uv run python -m app --transport http

Stdio (local CLI integration)

uv run python -m app --transport stdio

Add to Claude Desktop:

{
  "mcpServers": {
    "courtlistener-local": {
      "command": "uv",
      "args": ["run", "--directory", "/abs/path/to/courtlistener-mcp", "python", "-m", "app", "--transport", "stdio"],
      "env": { "COURT_LISTENER_API_KEY": "your_token" }
    }
  }
}

Configuration

VarRequiredDefaultNotes
COURT_LISTENER_API_KEYOptional*—Fallback when no per-request header. Leave unset on public servers.
COURTLISTENER_BASE_URLNohttps://www.courtlistener.com/api/rest/v4/
COURTLISTENER_TIMEOUTNo30seconds
MCP_TRANSPORTNostdiostdio | http | sse
MCP_PORTNo8000http/sse only
HOSTNo0.0.0.0http/sse only
ECFR_BASE_URLNohttps://www.ecfr.goveCFR API base (no key required)
RATE_LIMIT_ENABLEDNotruePer-client MCP rate limiting
RATE_LIMIT_RPSNo15Max requests/sec per client
RATE_LIMIT_BURSTNo40Burst capacity per client

* Required only if running in single-tenant mode without BYOK.

Health check

curl https://courtlistener-mcp.vaquill.ai/health
# {"status":"healthy","service":"courtlistener-mcp","version":"..."}

Development

uv sync --dev
uv run pytest
uv run ruff format . && uv run ruff check .
uv run mypy app/

Changelog

0.2.0

  • Added a full eCFR (federal regulations) tool suite (15 tools): titles, structure, versions, ancestry, source XML, agencies, corrections, and full-text regulation search + analytics. This is the differentiator over CourtListener-only servers.
  • Fixed a validation crash: optional search filters are now nullable (str | None), so clients that send explicit JSON null no longer get a ValidationError (previously broke search_dockets / search_recap_documents).
  • Real pagination: removed the no-op hit param; search tools now honor limit and expose a next_cursor token plus an input cursor.
  • Read-only tool annotations on all tools (better client UX, no write prompts).
  • Per-client rate limiting middleware (configurable, on by default).
  • Migrated import_server → mount (FastMCP 3), fixed the API-key env-var alias, refreshed project metadata, and got the test suite green (unit tests mocked; live-API tests gated behind RUN_INTEGRATION=1).

Credits & License

  • Original implementation: Travis-Prall/court-listener-mcp
  • Hosted by: Vaquill — courtlistener-mcp.vaquill.ai
  • License: MIT (see LICENSE)

CourtListener data is provided by the Free Law Project under their respective terms. eCFR data is from ecfr.gov.

Community

Questions, ideas, or want to contribute? Join the Vaquill community on Discord.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
Registryactive
TransportHTTP
AuthRequired
UpdatedMay 15, 2026
View on GitHub

More from vaquill-ai

  • Vaquill3
  • CanLII2