An MCP server for searching and retrieving CourtListener data, including U.S. opinions, federal dockets, judge records, courts, citation networks, and oral argument recordings. It supports STDIO and Streamable HTTP transports and can be used with a CourtListener API token for local/self-hosted access.
From the registry: Search US court opinions, federal dockets, judges, citations, and oral arguments via CourtListener.
Please install the `courtlistener-mcp-server` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Create a CourtListener API token** — Generate a CourtListener API token from your CourtListener account settings. This token is required for the server to access the CourtListener API. (https://www.courtlistener.com/profile/settings/)
Optional prerequisites:
- Install Node.js or Bun — Install Bun v1.3.2+ or Node.js v24+ to run the server locally. Prefer Node.js if using the npx install path. (https://bun.sh/)
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","@cyanheads/courtlistener-mcp-server@latest"]
- required environment variables:
- `MCP_TRANSPORT_TYPE`: Transport type for the MCP server. For local stdio usage, set this to stdio. (example: `stdio`)
- `COURTLISTENER_API_TOKEN`: API token from your CourtListener account settings. (example: `<your-api-token>`)
- optional environment variables:
- `MCP_LOG_LEVEL`: Log level for server output. (example: `info`)
- `COURTLISTENER_BASE_URL`: Override the CourtListener API base URL. (example: `<your-courtlistener-api-base-url>`)
- `MCP_HTTP_PORT`: HTTP server port when using HTTP transport. (example: `<your-http-port>`)
- `MCP_HTTP_ENDPOINT_PATH`: HTTP endpoint path when using HTTP transport. (example: `<your-http-endpoint-path>`)
- `MCP_PUBLIC_URL`: Public origin for TLS-terminating reverse-proxy deployments. (example: `<your-public-url>`)
- `MCP_AUTH_MODE`: Authentication mode: none, jwt, or oauth. (example: `<your-auth-mode>`)
- `MCP_GC_PRESSURE_INTERVAL_MS`: Opt-in Bun-only forced-GC pressure loop interval in milliseconds. (example: `<your-gc-pressure-interval-ms>`)
- `LOGS_DIR`: Directory for log files when running under Node.js. (example: `<your-logs-dir>`)
- `STORAGE_PROVIDER_TYPE`: Storage backend type: in-memory, filesystem, supabase, or cloudflare-kv/r2/d1. (example: `<your-storage-provider-type>`)
- `OTEL_ENABLED`: Enable OpenTelemetry instrumentation. (example: `<true-or-false>`)
Note: A public hosted Streamable HTTP instance is also available at https://courtlistener.caseyjhand.com/mcp. Canonical hosted HTTP shape: URL https://courtlistener.caseyjhand.com/mcp with no documented required headers. The README also documents self-hosted HTTP mode, but the simplest portable local install path is stdio via npx.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.COURTLISTENER_API_TOKENrequiredCourtListener API token used for authenticated local/self-hosted accessMCP server for searching Airweave collections with natural language queries.