Give any MCP-compatible AI access to 18M+ legal documents across 110+ countries. Just paste the URL — you'll be asked to sign in, and you're connected.
Works with Claude.ai, Claude Code, Claude Desktop, Cursor, and any MCP-compatible client. You'll be asked to sign in with GitHub or Google — no API key needed.
Built into Claude Code — agents can run this directly:
claude mcp add --transport http legal-data-hunter https://legaldatahunter.com/mcp
Auto-detects Cursor, VS Code, Lawvable, Windsurf, JetBrains, and Copilot — configures them all at once:
npx legal-data-hunter setup --yes
Drop --yes for interactive mode. Or use npx add-mcp https://legaldatahunter.com/mcp
Legal Data HunterAdd to your project's .mcp.json:
{
"mcpServers": {
"legal-data-hunter": {
"type": "streamable-http",
"url": "MCP_URL_PLACEHOLDER"
}
}
}
On first use, you'll be prompted to sign in via your browser.
Add to claude_desktop_config.json:
{
"mcpServers": {
"legal-data-hunter": {
"type": "streamable-http",
"url": "MCP_URL_PLACEHOLDER"
}
}
}
On first use, you'll be prompted to sign in via your browser.
Add to .cursor/mcp.json:
{
"mcpServers": {
"legal-data-hunter": {
"type": "streamable-http",
"url": "MCP_URL_PLACEHOLDER"
}
}
}
On first use, you'll be prompted to sign in via your browser.
Lawvable is a VS Code fork — add to .vscode/mcp.json in your project:
{
"mcpServers": {
"legal-data-hunter": {
"type": "streamable-http",
"url": "MCP_URL_PLACEHOLDER"
}
}
}
On first use, you'll be prompted to sign in via your browser.
| Tool | Description |
|---|---|
search | Hybrid semantic + keyword search across 18M+ legal documents. Supports filters: country, court_tier, jurisdiction, date range, language. |
get_document | Retrieve the full text and metadata of any document by source + source_id. |
discover_countries | List all available countries with document counts. |
discover_sources | List data sources for a specific country — source IDs, types, court names, tiers, counts. |
get_filters | Get available filter values (courts, jurisdictions, languages, date ranges) for a source. |
resolve_reference | Resolve a loose legal citation (e.g. "art. 6 code civil", ECLI, CELEX) to the exact document(s). Supports 55+ countries. |
report_source_issue | Report problems with a data source: broken URLs, missing data, indexing errors, or data quality issues. |
search — 11 parameters| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | required | Search query text |
namespace | string | case_law | case_law, legislation, or doctrine |
top_k | integer | 10 | Number of results (1-100) |
alpha | float | 0.7 | Semantic weight (1.0 = pure semantic, 0.0 = pure keyword) |
country | string[] | — | ISO country codes, e.g. ["FR","DE"] |
court_tier | integer | — | 1 = supreme, 2 = appellate, 3 = first instance |
jurisdiction | string | — | Jurisdiction name filter |
subdivision | string | — | Court subdivision filter |
date_start | string | — | Start date (YYYY-MM-DD) |
date_end | string | — | End date (YYYY-MM-DD) |
language | string | — | Language code, e.g. fr |
get_document — 2 parameters| Parameter | Type | Description |
|---|---|---|
source | string | Source identifier, e.g. FR/Judilibre |
source_id | string | Document ID within the source |
resolve_reference — 3 parameters| Parameter | Type | Default | Description |
|---|---|---|---|
reference | string | required | The legal citation to resolve, e.g. "art. 6 code civil" |
hint_country | string | — | ISO country code hint for faster resolution |
hint_type | string | — | case_law or legislation |
discover_countries — no parametersReturns all countries with document counts by type.
discover_sources — 1 parameter| Parameter | Type | Description |
|---|---|---|
country_code | string | ISO country code, e.g. FR |
get_filters — 1 parameter| Parameter | Type | Description |
|---|---|---|
source | string | Source identifier, e.g. FR/Judilibre |
report_source_issue — 3 parameters| Parameter | Type | Default | Description |
|---|---|---|---|
source | string | required | Source identifier, e.g. FR/Judilibre |
issue_type | string | required | One of: unavailable, indexing, invalid_url, data_quality, other |
description | string | "" | Additional details about the issue |
For best results, guide your agent through this discovery pattern:
1. discover_countries() → find country codes + doc counts 2. discover_sources("FR") → see what sources exist for France 3. get_filters("FR/Judilibre") → see available courts, date ranges 4. search("droit à l'oubli", ...) → targeted search with filters 5. get_document("FR/Judilibre", id) → read full decision text 6. resolve_reference("art. 6 CEDH") → resolve a citation to its document
If your MCP client doesn't support OAuth, you can use an API key instead. Create one on your account page, then add the Authorization header:
{
"mcpServers": {
"legal-data-hunter": {
"type": "streamable-http",
"url": "MCP_URL_PLACEHOLDER",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Not using MCP? You can call the REST API directly:
# Search for case law curl -X POST BASE_URL_PLACEHOLDER/v1/search \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"q": "droit à l oubli", "namespace": "case_law", "top_k": 5}'