Skip to main content

mcp-leyes-chile

mcp-name: io.github.billibu-n/mcp-leyes-chile

Servidor MCP de leyes chilenas con cita verificable (v0.2.4), fichas notariales curadas y generación de documentos .odt (editable), .pdf y .docx.

No es asesoría legal. Es una herramienta para que una persona llegue a la notaría con el borrador hecho y para que un abogado no presente una cita que no exista.

Qué hace

Tool Para qué
cl_buscar Busca artículos por texto en el corpus local (SQLite FTS5)
cl_articulo Texto literal + cita con vigente_desde, fuente y aviso; acepta vigente_al (AAAA-MM-DD) para la versión histórica y cuerpo para desambiguar compendios
cl_versiones Historial de versiones de una norma (83 en el DL 825)
cl_citar Verifica un lote: ok, faltantes, sin_fuente_verificable
cl_notaria 27 fichas: trámite, arancel y estado por campo (24 generadas del Decreto 587)
cl_documento Genera .odt y deriva .pdf (por defecto), .docx o .md, con marca de BORRADOR y la base legal de la plantilla
cl_cobertura Qué cubre, hasta cuándo, y qué no cubre

Instalación

Desde PyPI:

pip install mcp-leyes-chile
mcp-leyes-chile --ingesta      # ~20 s: 9 normas, 6.246 artículos, 556 versiones
mcp-leyes-chile --selftest     # lista las 7 tools

O desde el código:

python3 -m venv .venv && . .venv/bin/activate
pip install -e .
python -m mcp_leyes --ingesta
python -m mcp_leyes --notaria-generar  # crea fichas desde el arancel (idempotente)
python -m mcp_leyes --smoke            # genera .odt + .pdf de prueba
python -m mcp_leyes                    # sirve por stdio

Configuración en un host MCP (ejemplo):

{"mcpServers": {"leyes-chile": {"command": "python", "args": ["-m", "mcp_leyes"],
  "env": {"MCP_LEYES_DB": "/ruta/a/corpus.db"}}}}

Formulario HTML

python -m mcp_leyes --formulario 8801
# http://127.0.0.1:8801/  -> pregunta los campos -> .odt + .pdf

Skill para agentes

La carpeta skill/ es la misma herramienta empaquetada como skill para clientes de agentes (Claude, Agensi, etc.): SKILL.md, dos referencias y un script sin dependencias que lee un corpus local en data/corpus.jsonl.

cd skill
python3 scripts/consulta.py normas
python3 scripts/consulta.py buscar "compraventa" --limite 5
python3 scripts/consulta.py articulo 172986 1793

El corpus (skill/data/corpus.jsonl, 6.852 textos, 5,6 MB) no se versiona: se regenera con python exportar-corpus.py (descarga el XML de LeyChile y conserva la jerarquía de compendios) o se toma del ZIP publicado en cada release (leyes-chile-skill.zip, 1,1 MB). La skill no usa red, no escribe archivos y no llama al MCP: es autónoma.

Publicación

En el registro oficial: io.github.billibu-n/mcp-leyes-chile 0.2.4 (https://registry.modelcontextprotocol.io), paquete PyPI mcp-leyes-chile.

server.json cumple el esquema del registro: registryType: pypi, transport: stdio. Publicar requiere mcp-publisher login github y autorización del dueño.

Qué cambió en 0.2.4 y 0.2.3

0.2.4 — compendios, segunda parte. cl_articulo acepta cuerpo="Ley 4.808" y devuelve el artículo de ese cuerpo dentro del DFL 1; si el cuerpo no existe, el error lista los disponibles. Sin cuerpo se mantiene el primero y se declara coincidencias.

0.2.3 — atribución. El DFL 1 mezcla el Código Civil con leyes anexas (Registro Civil, menores, abandono de familia, herencias). El parser perdía la jerarquía y citaba un "art. 31" de la Ley 4.808 como "Código Civil, art. 31". Ahora cada parte guarda cuerpo y cuerpo_corto, la cita usa el cuerpo real y la base existente se migra sola.

Qué cambió en 0.2.2

El servidor pasó por una prueba de alto estrés de 41 comprobaciones por el protocolo real (parámetros hostiles, FTS5 roto, concurrencia, documentos en paralelo, lotes de 200). Encontró nueve defectos; esta versión los corrige:

Defecto Antes Ahora
Consulta de 54.000 caracteres 44 s de bloqueo 11 ms (recorte a 24 términos)
Fecha ayer o 2020-13-45 viajaba a LeyChile: 90 s y el texto de otra versión [invalid_arg] local en 1 ms
Centinela 2222-02-02 como fecha respuesta con fecha falsa [invalid_arg] que explica el centinela
cl_citar con una referencia suelta rechazo del protocolo acepta "6369/14" y la clasifica
Formato de cl_documento desconocido caía en silencio a PDF [invalid_arg]
Base legal de la plantilla siempre art. 2116 (mandato) 1793 y 1801 para compraventa, 2116 para poder
Salida .md dejaba {OTORGANTE} sin sustituir sustituye los campos
Dos documentos a la vez se pisaban el mismo .odt carpeta propia por llamada
40 artículos concurrentes 7,2 s 0,15 s (prefiltro en SQL y conexiones cerradas)

Además, esta versión incorpora las correcciones del ejercicio de evaluación de T-105, que hasta ahora solo estaban en el repositorio: fuente con i=None, cita de artículo derogado que decía «vigente», [not_found] sin nombre de norma, documento sin base legal, la Ley 19.496 en el corpus y las claves con sufijo (DEL ART. 2).

Cobertura y límites

  • 9 cuerpos legales: DL 825, Código del Trabajo, Código Civil, Comercio, Penal, Constitución, Ley 19.628, Ley 19.496 y Arancel de notarios.
  • No cubre jurisprudencia, tribunales, SII más allá de las normas, competencia territorial notarial estructurada, precios actuales ni firma de documentos.
  • Los montos del arancel son nominales de 1998: el servidor los muestra y advierte, no calcula el precio final.

Datos y licencias

  • Código: Apache-2.0 (LICENSE).
  • Fuente: LeyChile / BCN. El paquete no redistribuye el corpus: lo descarga en la máquina del usuario. Los términos de LeyChile no se pudieron verificar (2026-11-06).
  • Fichas notariales: CC BY 4.0, con fuente y fecha por campo.

Pruebas

python -m pytest -q                     # 34 tests
python -m eval.estres                   # 41 comprobaciones de estrés por stdio
python -m eval.correr --banco 60        # 66 tareas: exactitud 1.0, 0 alucinaciones
python -m eval.ejercicio                # 10 tareas de razonamiento (22/22)
python -m mcp_leyes --notaria           # 27 fichas, 0 fallos

Metadata

Release files for mcp-leyes-chile 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-leyes-chile 0.2.4
File Size Uploaded Provenance Actions
mcp_leyes_chile-0.2.4.tar.gz 47.1 kB Without provenance Details for mcp_leyes_chile-0.2.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-leyes-chile 0.2.4
File Interpreter ABI Platform Actions
mcp_leyes_chile-0.2.4-py3-none-any.whl Python 3 none any Details for mcp_leyes_chile-0.2.4-py3-none-any.whl

Total release size: 95.7 kB

Release files / mcp_leyes_chile-0.2.4.tar.gz

Download URL mcp_leyes_chile-0.2.4.tar.gz
Size 47.1 kB
Tags Source
SHA-256 checksum
How to use checksums
95e3aaed176f2acea3c9cf167f5efe0447f0b9f01e227e1b7c90081f96f9f45a
BLAKE2b-256 checksum
How to use checksums
1fcb976bc75be6801b1bb55f89fceda83fb313aed2a20a354259d665e9a157a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Release files / mcp_leyes_chile-0.2.4-py3-none-any.whl

Download URL mcp_leyes_chile-0.2.4-py3-none-any.whl
Size 48.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6e93061304c89e36aafdd064991e55f649fa8d106ffe8234bdeb0ba0607e911a
BLAKE2b-256 checksum
How to use checksums
6f17fd7b0ba582425e4fad6a47eb2f472bc619b415909e18236828c97643220d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Security for mcp-leyes-chile 0.2.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page