LegalMCP
# LegalMCP
[](https://github.com/Mahender22/legal-mcp/actions/workflows/ci.yml)
[](https://python.org)
[](LICENSE)
[](https://pypi.org/project/legal-mcp/)
**The first comprehensive US legal MCP server for AI assistants.**
Connect Claude, GPT, Cursor, or any MCP-compatible AI to 4M+ US court opinions, Clio practice management, and PACER federal filings. Research in seconds, not hours.
---
## 30-Second Demo
```
You: Find Supreme Court cases about Fourth Amendment and cell phone location data
LegalMCP: Found 52 results. Top case:
Carpenter v. United States, 585 U.S. 296 (2018)
The Court held that accessing historical cell-site location
information constitutes a search under the Fourth Amendment,
requiring a warrant supported by probable cause.
→ 127 cases cite this opinion
→ Full text: courtlistener.com/opinion/4578834
```
## Why LegalMCP?
| | Traditional Research | AI + LegalMCP |
|---|---|---|
| Find relevant cases | 45-90 min | **< 30 sec** |
| Trace citation history | Open Westlaw, click around | *"Who cited this case?"* |
| Pull client billing | Log into Clio, navigate menus | *"Total hours on Henderson?"* |
| Monthly cost | $200-400 (Westlaw/Lexis) | **Free** |
## Quick Start
### Install
We recommend using a virtual environment to avoid conflicts with other packages:
```bash
# Create and activate a virtual environment
python -m venv legal-mcp-env
# Windows
legal-mcp-env\Scripts\activate
# Mac/Linux
source legal-mcp-env/bin/activate
# Install
pip install legal-mcp
```
Or install from GitHub:
```bash
pip install git+https://github.com/Mahender22/legal-mcp.git
```
### Run
Want to try it without API keys? Enable demo mode first (optional):
```bash
# Mac/Linux
export LEGAL_MCP_DEMO=true
# Windows
set LEGAL_MCP_DEMO=true
```
Then start the server:
```bash
legal-mcp
```
### Connect to Claude Desktop
Add to your `claude_desktop_config.json`:
**Windows** (`%APPDATA%\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"legal-mcp": {
"command": "C:/path/to/legal-mcp-env/Scripts/legal-mcp.exe",
"env": {
"LEGAL_MCP_DEMO": "true"
}
}
}
}
```
**Mac/Linux** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"legal-mcp": {
"command": "/path/to/legal-mcp-env/bin/legal-mcp",
"env": {
"LEGAL_MCP_DEMO": "true"
}
}
}
}
```
> **Note:** Use the full path to `legal-mcp` inside your virtual environment. Remove the `LEGAL_MCP_DEMO` line and add your API keys for real data (see [SETUP.md](SETUP.md)).
### Connect to Claude Code
Run this command to add LegalMCP globally (available in every session):
**Mac/Linux:**
```bash
claude mcp add legal-mcp /path/to/legal-mcp-env/bin/legal-mcp
```
**Windows:**
```bash
claude mcp add legal-mcp C:\path\to\legal-mcp-env\Scripts\legal-mcp.exe
```
To enable demo mode, add the env flag:
**Mac/Linux:**
```bash
claude mcp add legal-mcp -e LEGAL_MCP_DEMO=true -- /path/to/legal-mcp-env/bin/legal-mcp
```
**Windows:**
```bash
claude mcp add legal-mcp -e LEGAL_MCP_DEMO=true -- C:\path\to\legal-mcp-env\Scripts\legal-mcp.exe
```
> **Tip:** To add it to a specific project only, add `-s project` flag or create a `.mcp.json` file in your project root.
### Connect to Cursor / Windsurf
LegalMCP works with any MCP-compatible client. Add the `legal-mcp` command to your AI tool's MCP server configuration.
## Configuration
Set environment variables for API access. See [SETUP.md](SETUP.md) for step-by-step instructions.
| Variable | Required | Description |
|----------|----------|-------------|
| `COURTLISTENER_TOKEN` | Optional | Higher rate limits for case law search |
| `CLIO_TOKEN` | For Clio tools | OAuth token for practice management |
| `PACER_USERNAME` | For PACER tools | PACER account username |
| `PACER_PASSWORD` | For PACER tools | PACER account password |
| `LEGAL_MCP_DEMO` | Optional | Set `true` for demo mode (no API keys) |
## All 18 Tools
### Case Law
| Tool | What It Does |
|------|-------------|
| `search_case_law` | Search 4M+ US court opinions by topic, court, date range |
| `get_case_details` | Get full opinion text for a specific case |
| `get_case_record` | Get docket — parties, judges, procedural history |
| `find_citing_cases` | Find cases that cite a specific opinion |
| `find_cited_cases` | Find cases that an opinion relies on |
| `parse_legal_citations` | Parse Bluebook citations from any text |
| `list_available_courts` | List all 400+ courts and their codes |
| `list_reporter_abbreviations` | Decode reporter abbreviations (U.S., F.3d, etc.) |
### Practice Management — Clio
| Tool | What It Does |
|------|-------------|
| `search_clients` | Search contacts by name, email, phone |
| `search_matters` | Search matters by number, description, status |
| `get_matter_details` | Full matter info — client, billing, deadlines |
| `get_time_entries` | Billable hours by matter, attorney, date range |
| `get_matter_tasks` | Tasks and to-dos for a matter |
| `get_matter_documents` | Documents attached to a matter |
| `get_calendar` | Hearings, deadlines, and meetings |
### Court Filings — PACER
| Tool | What It Does |
|------|-------------|
| `search_federal_cases` | Search PACER for federal court cases |
| `get_federal_case` | Get case details from PACER |
| `get_court_filings` | Get docket entries and filings |
> **Note:** PACER charges $0.10/page for document downloads. LegalMCP searches and lists for free — it does not auto-download paid documents.
## Pricing
**Free and open source.** All 18 tools, MIT license, no paywall. Just install and go.
## Docker
```bash
# Copy and configure environment
cp .env.example .env
# Edit .env with your API keys
# Run
docker-compose up
```
This starts the MCP server on port 8000 and the waitlist API on port 8080.
## How It Works
LegalMCP is a [Model Context Protocol](https://modelcontextprotocol.io/) server. MCP is an open standard that lets AI assistants call external tools — like searching case law or querying your Clio data.
```
┌──────────────┐ MCP ┌──────────────┐ API ┌──────────────┐
│ │ ──────────► │ │ ──────────► │ │
│ Claude / │ Tool calls │ LegalMCP │ HTTP │ CourtListener│
│ GPT / │ ◄────────── │ Server │ ◄────────── │ Clio / PACER │
│ Cursor │ Results │ (your PC) │ JSON │ │
└──────────────┘ └──────────────┘ └──────────────┘
```
Your data stays on your machine. LegalMCP runs locally and connects directly to the APIs.
## Development
```bash
# Clone and install
git clone https://github.com/Mahender22/legal-mcp.git
cd legal-mcp
pip install -e ".[dev,waitlist]"
# Run tests
pytest legal_mcp/tests/ -v
# Run server locally
python -m legal_mcp.src.server
```
## License
[MIT](LICENSE) — use it however you want.
TDQS
Scored across 18 tools
Several tools could be confused (get_federal_case, get_case_record, get_court_filings all provide case/docket information), but descriptions help clarify the differences. The separation between search_case_law and search_federal_cases is clear, and citation tools are distinct.
All tools follow a consistent verb_noun pattern (search_, get_, find_, parse_, list_) with snake_case. Minor deviations like get_matter_documents (which actually searches) don't cause confusion.
18 tools is slightly above the ideal range of 3-15, but the server covers three distinct domains (Clio practice management, PACER federal cases, and case law research), so each tool earns its place.
Covers search/retrieval for clients, matters, federal cases, opinions, and citation analysis. Missing tools like get_client_details and full-text document access for court filings are minor gaps that can be worked around.