MCP Leyes Chile

io.github.billibu-nPublished by GitHub account billibu-nv0.2.4Updated Nov 7, 2026

Leyes chilenas con cita verificable, fichas notariales y documentos .odt/.pdf

VerifiedSTDIODesktop onlyFiles & StorageKnowledge & Memory

Overview

AI-generated overview

Local MCP server for Chilean law: search a bundled legal corpus, get literal article text with verifiable citations, and generate draft documents.

What you can do
  • Search and read articles from a local corpus of nine Chilean legal bodies, with literal text, source, validity dates and historical versions
  • Verify a batch of citations and report which are missing or lack a verifiable source
  • Look up curated notary-procedure sheets with fees and status per field
  • Generate .odt drafts and derive .pdf, .docx or .md with a DRAFT mark and the template's legal basis
  • Report what the corpus covers, up to when, and what it does not cover
When to use it
Useful when you need Chilean statutory text quoted accurately, want to check that a citation actually exists, or need a first draft of a notary document to bring to the office. It is explicitly not legal advice.
Requirements
A local Python environment with the mcp-leyes-chile package installed from PyPI, run over stdio. An initial ingestion step downloads the corpus from LeyChile and builds a local SQLite database; the database path can be set with the MCP_LEYES_DB environment variable. Network access is needed for that download.
Before you install
The package does not redistribute the corpus; it downloads it from LeyChile on your machine, and the source's terms could not be verified. Notary fee amounts are nominal 1998 values and no final price is calculated. It does not cover case law, courts, current prices or document signing. Generated documents are marked as drafts and are not legal advice.

Installation

In SourceWeft

  1. Open MCP Leyes Chile in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

ToolPara qué
cl_buscarBusca artículos por texto en el corpus local (SQLite FTS5)
cl_articuloTexto 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_versionesHistorial de versiones de una norma (83 en el DL 825)
cl_citarVerifica un lote: ok, faltantes, sin_fuente_verificable
cl_notaria27 fichas: trámite, arancel y estado por campo (24 generadas del Decreto 587)
cl_documentoGenera .odt y deriva .pdf (por defecto), .docx o .md, con marca de BORRADOR y la base legal de la plantilla
cl_coberturaQué cubre, hasta cuándo, y qué no cubre

Instalación

Desde PyPI:

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

O desde el código:

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

Configuración en un host MCP (ejemplo):

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

Formulario HTML

bash
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.

bash
cd skillpython3 scripts/consulta.py normaspython3 scripts/consulta.py buscar "compraventa" --limite 5python3 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:

DefectoAntesAhora
Consulta de 54.000 caracteres44 s de bloqueo11 ms (recorte a 24 términos)
Fecha ayer o 2020-13-45viajaba a LeyChile: 90 s y el texto de otra versión[invalid_arg] local en 1 ms
Centinela 2222-02-02 como fecharespuesta con fecha falsa[invalid_arg] que explica el centinela
cl_citar con una referencia sueltarechazo del protocoloacepta "6369/14" y la clasifica
Formato de cl_documento desconocidocaía en silencio a PDF[invalid_arg]
Base legal de la plantillasiempre art. 2116 (mandato)1793 y 1801 para compraventa, 2116 para poder
Salida .mddejaba {OTORGANTE} sin sustituirsustituye los campos
Dos documentos a la vezse pisaban el mismo .odtcarpeta propia por llamada
40 artículos concurrentes7,2 s0,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

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

Source: README.md at commit 43af5dd

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.4LatestNov 7, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts