Skip to main content
Glama

legalize-mcp

비공식. legalize-dev 프로젝트와 제휴하거나 보증하지 않습니다. 공식 legalize-dev MCP 서버가 legalize.dev API를 대상으로 개발 중입니다. 이 커넥터는 대신 공개 git 코퍼스를 읽습니다.

MCP 서버 하나, 32개 관할권(21개 EU). Model Context Protocol 읽기 전용 서버 — legalize-dev 코퍼스 위에서 동작하며, 국가 법률을 law-as-git으로 저장: Markdown 파일 하나당 법률 하나, 모든 개정은 Git 커밋, 각각 8개 필드의 ELI 스타일 frontmatter(Legalize Format Spec v0.2) 포함. 이 커넥터는 Apache-2.0입니다.

Matematic Solutions가 eu-legal-mcp 라인의 일부로 구축했습니다. 단일 국가용 *-eli-mcp 커넥터와 달리, 이 커넥터는 단일 서버에서 여러 관할권을 제공합니다. 기본 코퍼스가 이미 하나의 형식으로 정규화되어 있기 때문입니다.

존재 이유

모든 응답에는 이 라인의 나머지 부분이 사용하는 인용 계약이 포함됩니다:

  • source_url — 법률 자체 frontmatter의 공식 정부 출처 (예: boe.es, riigiteataja.ee, legifrance.gouv.fr). 절대 임의로 만들지 않습니다.

  • github_url — 실제로 읽은 검증 가능한 legalize-dev 사본.

  • human_readable_citation — "<title> (<identifier>)".

RODO/GDPR에 안전하며 자체 호스팅이 가능합니다: GitHub에 대한 읽기 전용 GET 외에는 사용자 머신을 벗어나는 것이 없습니다.

Related MCP server: lawyer-mcp

관할권

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

실시간 목록은 legalize_list_countries를 호출하세요(eu_only=true를 추가하면 필터링됩니다).

도구

도구

키 없이?

용도

legalize_list_countries

✅

관할권 목록(코드, 이름, EU 플래그, 저장소).

legalize_search_laws

GITHUB_TOKEN 필요

국가 법률 내 키워드 검색 → law_id + 스니펫.

legalize_get_meta

✅

Frontmatter만(저비용 인용 확인).

legalize_get_law

✅

law_id로 전체 메타데이터 + 본문; 과거 버전은 sha=를 전달하세요.

legalize_list_reforms

✅

법률의 개정 타임라인(커밋); SHA는 legalize_get_law에 전달됩니다.

legalize_coverage

이 커넥터가 다루는 범위, 각 계열이 캡처된 시기, 그리고 명시적으로 다루지 않는 범위를 선언합니다. 모든 공백에는 대체 수단이 있습니다.

law_id는 Markdown 파일명 줄기입니다(예: 스페인 헌법의 BOE-A-1978-31229, 에스토니아의 숫자 id). legalize_search_laws 또는 공식 인용에서 얻으세요 — 제목 유사 검색은 없습니다.

설치

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

Claude Code (.mcp.json):

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

Smart App Control이 포함된 Windows 11

Smart App Control은 서명되지 않은 실행 파일을 차단하며, 여기에는 uvx.exe, pip.exe 그리고 pip가 설치 시 작성하는 legalize-mcp.exe 런처가 포함됩니다. python.org 설치 프로그램의 python.exe와 py.exe는 Python Software Foundation이 서명하므로, 인터프리터를 통해 모듈을 실행하면 작동합니다:

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

pip.exe도 같은 이유로 차단되므로 pip install이 아닌 python -m pip으로 설치하세요. python이 PATH에 없으면 Windows 런처를 사용하세요: py -3 -m legalize_mcp.

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

이 문제를 우회하려고 Smart App Control을 끄지 마세요 - Windows를 다시 설치하지 않으면 다시 켤 수 없습니다.

GITHUB_TOKEN(또는 GH_TOKEN)은 선택 사항입니다 — legalize_search_laws에만 필요하며, legalize_list_reforms의 GitHub 속도 제한을 해제합니다.

구성

환경 변수

기본값

용도

GITHUB_TOKEN / GH_TOKEN

—

코드 검색 활성화; 속도 제한 해제.

LEGALIZE_AUDIT_DIR

~/.matematic/audit

JSONL 감사 로그 위치(AI Act 제12조).

거버넌스

모든 도구 호출은 ~/.matematic/audit/legalize-mcp.jsonl에 한 줄을 추가합니다(입력 해시, 지속 시간, 상태 — 페이로드 없음). 모든 도구는 읽기 전용이며 멱등적입니다. CONSTITUTION.md를 참조하세요.

개발

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

출처 표시

입법 데이터 © 해당 국가 당국(각 법률의 source 참조). 코퍼스 정규화는 legalize-dev 프로젝트가 수행했습니다.

코퍼스의 라이선스는 국가별로 다르며 MIT가 아닙니다. MIT 라이선스는 legalize-dev의 파이프라인과 도구에만 적용됩니다. 각 국가 저장소는 자체 공식 출처에서 물려받은 조건을 지닙니다 - legalize-es는 출처 인용을 의무화하는 BOE 재사용 조건을 따르고, legalize-at은 CC BY 4.0이며, 나머지는 각각 다릅니다. 텍스트를 신뢰하거나 인용하거나 재배포하기 전에 국가 저장소를 확인하세요. 코퍼스를 MIT로 취급하면 실제로 지켜야 할 출처 표시 의무를 건너뛰게 됩니다.

정정: Enrique Lop(legalize-dev)이 issue #18, 2026-08-24에서 제공. 이 커넥터는 코퍼스를 재배포하지 않으며, 요청 시 읽습니다.

Available Tools

5 tools
legalize_get_lawA
Read-onlyIdempotent

Fetch a law's metadata and full text by id (optionally at a historical commit).

NameRequiredDescriptionDefault
shaNooptional commit SHA for a historical version (from ``legalize_list_reforms``).
law_idYesthe filename stem (e.g. ``"BOE-A-1978-31229"``).
countryYesISO-3166 alpha-2 code (e.g. ``"es"``).

Output Schema

NameRequiredDescription
shaNoGit commit SHA if a historical version was requested.
rankNoCountry-specific legal text type.
extraNoCountry-specific frontmatter fields.
titleNo
law_idYesOfficial identifier (the .md filename stem).
statusNoin_force | repealed | ...
contentYesFull law text (Markdown, frontmatter stripped).
countryYes
byte_sizeNo
github_urlYesRaw provenance URL on github.com/legalize-dev.
source_urlNoOfficial source URL (frontmatter `source`).
last_updatedNo
publication_dateNo
human_readable_citationNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide safety profile (readOnly, idempotent, non-destructive). The description adds that it returns both metadata and full text, which is beyond what annotations cover. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with action and resource. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the input schema has full descriptions and an output schema exists, the description is complete for the tool's purpose. It mentions the key optional feature (historical commit) and the fact it returns both metadata and full text.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters. The description reinforces the purpose but does not add new meaning beyond stating 'by id' and the optional historical commit, which is already clear from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Fetch' and identifies the resource 'a law's metadata and full text' with a clear method 'by id (optionally at a historical commit)'. It distinguishes from siblings like legalize_get_meta by indicating it returns both metadata and full text, and from legalize_list_reforms by noting the optional commit SHA.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: when you have the law ID and optionally want a historical version using the SHA from legalize_list_reforms. However, it does not explicitly state when not to use or provide alternatives beyond the implied sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

legalize_get_metaA
Read-onlyIdempotent

Fetch only a law's frontmatter metadata (no body) - cheap for citation checks.

NameRequiredDescriptionDefault
law_idYesthe filename stem.
countryYesISO-3166 alpha-2 code.

Output Schema

NameRequiredDescription
rankNoCountry-specific legal text type.
extraNoCountry-specific frontmatter fields.
titleNo
law_idYesOfficial identifier (the .md filename stem).
statusNoin_force | repealed | ...
countryYes
github_urlYesRaw provenance URL on github.com/legalize-dev.
source_urlNoOfficial source URL (frontmatter `source`).
last_updatedNo
publication_dateNo
human_readable_citationNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and no destructive hint. The description adds valuable behavioral context by noting the tool is 'cheap', indicating low cost or fast performance, which is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with key action and resource, no wasted words. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, return values need no explanation. The description fully covers the tool's role: fetching only metadata, cheap, for citation checks, and distinguishes from siblings. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented. The description does not add further meaning to the parameters beyond the schema, staying at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (fetch), resource (law's frontmatter metadata), and distinguishes it from sibling tools like legalize_get_law by explicitly saying 'no body'. The phrase 'cheap for citation checks' further clarifies the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for citation checks and distinguishes from legalize_get_law (full body). It provides clear context but does not explicitly state when not to use or list alternatives beyond the implied distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

legalize_list_countriesB
Read-onlyIdempotent

List the jurisdictions available in the legalize-dev corpus.

NameRequiredDescriptionDefault
eu_onlyNoif true, restrict to EU member states.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description merely restates the list action without adding behavioral context. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. However, it could include a brief note about the output format or purpose without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 optional param, no required fields, annotations present, output schema exists), the description is minimally adequate but lacks additional context that could help an agent, such as mentioning that this tool returns country names or codes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single boolean parameter is already documented. The description does not add any extra meaning or usage details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists jurisdictions in the legalize-dev corpus. It uses a specific verb (list) and resource (jurisdictions), and distinguishes from sibling tools that deal with laws, reforms, and metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like legalize_get_meta, nor does it provide any context on prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

legalize_list_reformsA
Read-onlyIdempotent

List the reform history (commits) of a law - the legislative timeline.

NameRequiredDescriptionDefault
limitNomax reforms, newest first (1-100, default 20).
law_idYesthe filename stem.
countryYesISO-3166 alpha-2 code.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds context by specifying 'reform history (commits)' and 'legislative timeline,' but does not elaborate on ordering, pagination, or potential nuances beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded with the core action. No redundant or unnecessary words; every part contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but indicated), the description is fairly complete. It could hint at the return structure (e.g., 'reform history includes dates and changes'), but the output schema likely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with each parameter having a description (e.g., 'ISO-3166 alpha-2 code', 'filename stem'). The description adds no additional meaning to parameters beyond what the schema provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the reform history (commits) of a law - the legislative timeline,' which specifies the verb (list) and resource (reform history of a law). It effectively distinguishes from siblings like legalize_get_law (likely gets current law) and legalize_search_laws (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing legislative timeline, but does not explicitly state when to use this tool versus alternatives. No exclusion or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

legalize_search_lawsA
Read-onlyIdempotent

Search a jurisdiction's laws by keyword (GitHub code search; requires a token).

NameRequiredDescriptionDefault
limitNomax hits (1-100, default 10).
queryYeskeyword(s) to find inside the law texts.
countryYesISO-3166 alpha-2 code (e.g. ``"ee"``, ``"es"``).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. The description adds value by disclosing the token requirement and the underlying GitHub code search mechanism, which are not present in annotations. However, it does not detail pagination behavior or error handling beyond the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action, and includes the critical token note in parentheses. No extraneous words, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has three parameters, full schema coverage, and an output schema (not shown), the description provides sufficient context for the core operation. However, it could briefly mention result scope (e.g., returns matching law snippets) to complete the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a description. The description does not add new semantic information beyond the schema, so it meets the baseline for full schema coverage without additional parameter insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches a jurisdiction's laws by keyword, specifies it uses GitHub code search, and notes the token requirement. This distinguishes it from siblings like legalize_get_law (retrieve a specific law) and legalize_list_countries (list jurisdictions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies search use but does not explicitly guide when to use this tool over alternatives. The token requirement is mentioned but no when-to-use or when-not-to-use guidance is provided, leaving the agent to infer based on tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.1
    • First observedlegalize_get_law
    • First observedlegalize_get_meta
    • First observedlegalize_list_countries
    • First observedlegalize_list_reforms
    • First observedlegalize_search_laws

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: retrieving full law text, retrieving metadata only, listing available countries, listing reform history, and searching laws. No ambiguity.

Naming Consistency5/5

All tools follow the consistent pattern of 'legalize_' prefix followed by verb_noun (e.g., get_law, list_countries, search_laws). Perfectly uniform.

Tool Count5/5

With 5 tools, the server covers core operations for a legal document retrieval system without being sparse or bloated. Well-scoped.

Completeness5/5

The server provides full retrieval (by ID), metadata-only retrieval, jurisdiction listing, reform timeline, and keyword search. For a read-only legal database, this is complete.

Maintenance

ActivitySlowing
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers