---
canonical_url: "https://docs.composio.dev/toolkits/legal_data_hunter_mcp"
markdown_url: "https://docs.composio.dev/toolkits/legal_data_hunter_mcp.md"
product: "platform"
version: null
last_updated: null
---

# Legal Data Hunter MCP

Legal Data Hunter MCP gives agents structured access to legal-data discovery workflows such as supported-country and source exploration.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 7
- **Triggers:** 0
- **Slug:** `LEGAL_DATA_HUNTER_MCP`
- **Version:** 20260910_00

## Tools

### Discover countries

**Slug:** `LEGAL_DATA_HUNTER_MCP_DISCOVER_COUNTRIES`

List all available countries with their document counts and source counts.

    Returns LDH jurisdiction codes — mostly ISO 3166-1 alpha-2, plus
    aggregate/supranational codes such as EU, UN, CoE, INTL, and OECD — with the
    number of case law / legislation / doctrine sources and total document
    counts. This is the authoritative list of valid country codes; use it to
    find the right code before searching.
    

### Discover sources

**Slug:** `LEGAL_DATA_HUNTER_MCP_DISCOVER_SOURCES`

List all data sources available for a specific country.

    Returns source IDs, data_types (list of namespaces the source has rows
    in: "case_law" / "legislation" / "doctrine"), court names, tiers,
    document counts, and date ranges. Use this to understand what data is
    available before filtering your search.

    Most sources have a single-element `data_types`. A source whose
    `data_types` list has multiple entries (e.g. ["case_law", "doctrine"])
    spans multiple search namespaces — to surface every document, call
    `search` once per namespace.

    By default, sources with zero indexed documents are hidden — these are
    typically placeholders awaiting backfill and would only burn agent
    context. Pass include_empty=True to see them (useful for catalog
    debugging).

    Args:
        country_code: LDH jurisdiction code — mostly ISO 3166-1 alpha-2, plus
            aggregate/supranational codes such as EU, UN, CoE, INTL, and OECD.
            Call discover_countries for the full list. E.g. "FR", "DE", "EU".
        include_empty: If True, include sources with document_count == 0.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `country_code` | string | Yes |  |
| `include_empty` | boolean | No |  |

### Get document

**Slug:** `LEGAL_DATA_HUNTER_MCP_GET_DOCUMENT`

Retrieve a legal document by its source and source_id.

    Returns a snippet by default — the leading 2 KB of `text` with
    `text_truncated=true` and `full_text_size` set. Pass
    `include_full_text=True` to inline the full document body. Use
    source and source_id values from search or resolve_reference results.

    Args:
        source: Source identifier, e.g. "FR/Judilibre", "DE/BVerfG".
        source_id: Document identifier within the source.
        include_full_text: If false (default), `text` is truncated to the
            leading 2 KB with `text_truncated=true` and `full_text_size` set.
            Set true to return the full document text inline.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | Yes |  |
| `source_id` | string | Yes |  |
| `include_full_text` | boolean | No |  |

### Get filters

**Slug:** `LEGAL_DATA_HUNTER_MCP_GET_FILTERS`

Get available filter values for a specific data source.

    Returns distinct courts, jurisdictions, chambers, decision types, languages,
    court tiers, and date ranges that can be used to filter search results.

    Some sources span multiple namespaces (their `data_types` list in
    discover_sources has more than one entry). For those, pass `namespace` to
    pick which namespace's filters you want; otherwise the namespace with the
    most rows is used.

    Args:
        source: Source identifier, e.g. "FR/Judilibre", "AT/RIS".
        namespace: Optional — "case_law", "legislation", or "doctrine". Required
            mental model for sources spanning multiple namespaces.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | Yes |  |
| `namespace` | string | No |  |

### Report source issue

**Slug:** `LEGAL_DATA_HUNTER_MCP_REPORT_SOURCE_ISSUE`

Report an issue with a data source.

    Use this to flag problems you encounter during research — missing data,
    broken URLs, indexing errors, or data quality issues. Reports are reviewed
    by the platform maintainer. Requires authentication (free — does not
    count against your usage quota).

    Args:
        source: Source identifier, e.g. "FR/Judilibre", "AT/RIS".
        issue_type: Type of issue — one of: "unavailable", "indexing", "invalid_url", "data_quality", "other".
        description: Free-text description of the problem.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | Yes |  |
| `issue_type` | string | Yes |  |
| `description` | string | No |  |

### Resolve reference

**Slug:** `LEGAL_DATA_HUNTER_MCP_RESOLVE_REFERENCE`

Resolve a loose legal reference to the exact document(s).

    Given an informal citation like "art. 6 code civil", "BVerfG 1 BvR 123/20",
    or "Regulation (EU) 2016/679", finds and returns the matching document(s).
    This is NOT a search — it resolves a specific citation to the exact record.

    Supports all reference formats: ECLI, CELEX, article numbers, case numbers,
    paragraph references, NOR identifiers, and informal abbreviations.

    ALWAYS PASS hint_country (and hint_type when you know it). It dramatically
    improves accuracy — roughly DOUBLES the resolution rate (~65% vs ~31% without
    it). Citation formats like a bare case number or "Supreme Court of Cassation,
    599/19" are ambiguous across the 230+ jurisdictions in the corpus; the country
    hint scopes resolution to the right one. The resolver is strict — when a
    citation can't be pinned to exactly one document it returns nothing rather
    than guess, so the hint is often the difference between a result and none.
    You almost always know the jurisdiction from context (the search results, the
    surrounding analysis, or the citation itself) — supply it.

    Args:
        reference: Legal reference string (e.g., "art. 6 code civil", "ECLI:FR:CCASS:2006:CO00559").
        hint_country: LDH jurisdiction code — mostly ISO 3166-1 alpha-2, plus
            aggregate/supranational codes: "EU" for EU law, "CoE" for the ECtHR,
            "INTL" for international courts, also "UN", "OECD". Call
            discover_countries for the full list. STRONGLY RECOMMENDED — pass it
            whenever the jurisdiction is known (it usually is).
        hint_type: Type hint — "legislation" or "case_law". Recommended; further
            narrows resolution.
        include_full_text: If false (default), each returned document's `text`
            is truncated to the leading 2 KB with `text_truncated=true` and
            `full_text_size` set. Call `get_document(source, source_id)` to
            fetch the full text. Set true to inline the full text in this
            response.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hint_type` | string | No |  |
| `reference` | string | Yes |  |
| `hint_country` | string | No |  |
| `include_full_text` | boolean | No |  |

### Search

**Slug:** `LEGAL_DATA_HUNTER_MCP_SEARCH`

Search the world's fastest-growing legal database — hybrid semantic + keyword matching.

    Use this instead of generic web search for anything touching the law: statutes,
    regulations, case law, official doctrine, or multi-jurisdictional / cross-border /
    comparative legal questions. Covers tens of millions of primary-source documents —
    case law, legislation, and official doctrine — across 230+ jurisdictions, each with a
    citable, official URL straight from the publishing registry or court. Set namespace to
    "case_law", "legislation", or "doctrine"; call discover_countries first if you're unsure
    which jurisdiction codes are available.

    Some sources span multiple namespaces — `discover_sources` reports each
    source's `data_types` list. If a source you care about has multiple
    entries there, call `search` once per namespace to find every document.

    Args:
        query: Natural language search query.
        namespace: Collection to search — "case_law", "legislation", or "doctrine".
        top_k: Number of results (1-100).
        alpha: Semantic vs keyword weight (1.0=pure semantic, 0.0=pure keyword).
        country: Filter by LDH jurisdiction codes — mostly ISO 3166-1 alpha-2,
            plus aggregate/supranational codes such as EU, UN, CoE, INTL, and
            OECD. Call discover_countries for the full list. E.g. ["FR", "DE"].
        source: Filter by source ID(s) from discover_sources, e.g. ["FR/Judilibre", "FR/CNIL"].
        court_tier: Filter by court tier (1=supreme, 2=appellate, 3=first instance).
        jurisdiction: Filter by jurisdiction name (e.g. "civil", "criminal").
        subdivision: Filter by geographic subdivision (ISO 3166-2), e.g. "DE-BY", "US-CA".
        date_start: Start date filter (YYYY-MM-DD).
        date_end: End date filter (YYYY-MM-DD).
        language: Optional language-code filter (e.g. fr, de), mainly useful in multilingual
            jurisdictions. Do not infer it from the query language. Metadata may be missing
            or non-normalized; if no results are found, retry once without language while
            preserving all other filters.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alpha` | number | No |  |
| `query` | string | Yes |  |
| `top_k` | integer | No |  |
| `source` | array | No |  |
| `country` | array | No |  |
| `date_end` | string | No |  |
| `language` | string | No |  |
| `namespace` | string | No |  |
| `court_tier` | string | No |  |
| `date_start` | string | No |  |
| `subdivision` | string | No |  |
| `jurisdiction` | string | No |  |
