# legalize-mcp [Health: Active]

**Category:** ⚖️ Legal  
**Repository:** https://github.com/matematicsolutions/legalize-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/legalize-mcp

## Description
Legislation for 32 jurisdictions (21 EU) as law-as-git, keyless, with ELI-style citations.

## Tools
Capabilities this server exposes over MCP:

- **legalize_list_countries** — List jurisdictions (code, name, EU flag, repo).
- **legalize_search_laws** — Keyword search inside a country's laws → `law_id` + snippet.
- **legalize_get_meta** — Frontmatter only (cheap citation check).
- **legalize_get_law** — Full metadata + text by `law_id`; pass `sha=` for a historical version.
- **legalize_list_reforms** — Reform timeline (commits) for a law; SHAs feed `legalize_get_law`.
- **legalize_coverage**

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "legalize-mcp": {
    "command": "uvx",
    "args": ["legalize-mcp"]
  }
}
```

## Documentation & README

# legalize-mcp

> **Unofficial.** Not affiliated with, or endorsed by, the legalize-dev project.
> An official legalize-dev MCP server is in development against the legalize.dev API;
> this one reads the public git corpus instead.


<!-- mcp-name: io.github.matematicsolutions/legalize-mcp -->

**One MCP server, 32 jurisdictions (21 EU).** A read-only [Model Context Protocol](https://modelcontextprotocol.io)
server over the [legalize-dev](https://github.com/legalize-dev) corpus — national legislation stored
as **law-as-git**: one law per Markdown file, every reform a Git commit, each with an 8-field
ELI-style frontmatter (Legalize Format Spec v0.2). This connector is
Apache-2.0.

Built by [Matematic Solutions](https://matematic.co) as part of the `eu-legal-mcp` line. Unlike the
single-country `*-eli-mcp` connectors, this one serves **many jurisdictions from a single server**,
because the underlying corpus is already normalised to one format.

## Why this exists

Every response carries the **citation contract** the rest of the line uses:

- `source_url` — the **official** government source from the law's own frontmatter
  (e.g. `boe.es`, `riigiteataja.ee`, `legifrance.gouv.fr`). Never invented.
- `github_url` — the verifiable legalize-dev copy actually read.
- `human_readable_citation` — `"<title> (<identifier>)"`.

It is **RODO/GDPR-safe and self-hostable**: nothing leaves the user's machine except read-only GETs
to GitHub.

## Jurisdictions

EU: `at be cz de ee es eu fi fr gr ie it lt lu lv nl pl pt ro se sk`
· Other: `ad ar ch cl co kr li no uk us uy`

Call `legalize_list_countries` for the live list (add `eu_only=true` to filter).

## Tools

| Tool | Keyless? | Purpose |
| --- | --- | --- |
| `legalize_list_countries` | ✅ | List jurisdictions (code, name, EU flag, repo). |
| `legalize_search_laws` | needs `GITHUB_TOKEN` | Keyword search inside a country's laws → `law_id` + snippet. |
| `legalize_get_meta` | ✅ | Frontmatter only (cheap citation check). |
| `legalize_get_law` | ✅ | Full metadata + text by `law_id`; pass `sha=` for a historical version. |
| `legalize_list_reforms` | ✅ | Reform timeline (commits) for a law; SHAs feed `legalize_get_law`. |
| `legalize_coverage` | Declare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback. |

`law_id` is the Markdown **filename stem** (e.g. `BOE-A-1978-31229` for the Spanish Constitution, a
numeric id for Estonia). Get it from `legalize_search_laws` or an official citation — there is no
fuzzy title lookup.

## Install

```bash
uvx legalize-mcp           # run directly
# or
pip install legalize-mcp
```

Claude Code (`.mcp.json`):

```json
{
  "mcpServers": {
    "legalize": { "command": "uvx", "args": ["legalize-mcp"] }
  }
}
```

### Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers `uvx.exe`, `pip.exe`
and the `legalize-mcp.exe` launcher that pip writes at install time. The `python.exe` and
`py.exe` from the python.org installer are signed by the Python Software
Foundation, so running the module through the interpreter works:

```bash
python -m pip install legalize-mcp
python -m legalize_mcp
```

`pip.exe` is blocked for the same reason, so install with `python -m pip`, not
`pip install`. If `python` is not on PATH, use the Windows launcher: `py -3 -m legalize_mcp`.

```json
{ "mcpServers": { "legalize-mcp": { "command": "python", "args": ["-m", "legalize_mcp"] } } }
```

Do not turn Smart App Control off to work around this - it cannot be re-enabled
without reinstalling Windows.

`GITHUB_TOKEN` (or `GH_TOKEN`) is **optional** — required only for `legalize_search_laws`, and it
lifts the GitHub rate limit on `legalize_list_reforms`.

## Configuration

| Env var | Default | Purpose |
| --- | --- | --- |
| `GITHUB_TOKEN` / `GH_TOKEN` | — | Enables code search; lifts rate limits. |
| `LEGALIZE_AUDIT_DIR` | `~/.matematic/audit` | JSONL audit log location (AI Act art. 12). |

## Governance

Every tool call appends one line to `~/.matematic/audit/legalize-mcp.jsonl` (input hash, duration,
status — no payloads). All tools are read-only and idempotent. See `CONSTITUTION.md`.

## Development

```bash
python -m venv .venv && .venv/Scripts/python -m pip install -e ".[dev]"
.venv/Scripts/python -m pytest -q          # offline unit tests
.venv/Scripts/python -m ruff check src tests
```

## Attribution

Legislative data © the respective national authorities (see each law's `source`). Corpus
normalisation by the [legalize-dev](https://github.com/legalize-dev) project.

**Licence of the corpus is per country, not MIT.** The MIT licence covers legalize-dev's
pipeline and tooling. Each country repository carries terms inherited from its own official
source - `legalize-es` follows the BOE reuse conditions, which make citing the source
mandatory; `legalize-at` is CC BY 4.0; others differ. **Check the country repository before
you rely on, quote or redistribute a text.** Treating the corpus as MIT would skip an
attribution obligation you actually have.

*Correction supplied by Enrique Lop (legalize-dev) in issue #18, 2026-08-24.*
This connector does not redistribute the corpus; it reads it on demand.

