LeyChile MCP
MCP server that connects AI to the Chilean legislation system (Ley Chile) for retrieving legal norms, citations, and intertemporal analysis.
README
⚖️ LeyChile MCP
Servidor MCP (Model Context Protocol) que conecta a Claude — u otra IA compatible — en vivo y directamente con Ley Chile, el sistema de legislación de la Biblioteca del Congreso Nacional de Chile (BCN).
Convierte el ordenamiento jurídico chileno en herramientas de nivel forense, pensadas para el estudio y la práctica de estudiantes de Derecho, abogados litigantes y jueces: buscar normas, leer el texto vigente, citar con precisión incisos/numerales/letras, controlar la vigencia intertemporal, comparar versiones, aislar transitorios, mapear especialidad y vías procesales, y razonar con prompts jurídicos guiados.
⚠️ Herramienta no oficial, sin afiliación con la BCN. Los textos provienen de Ley Chile. No constituye asesoría jurídica: verifique siempre contra la fuente oficial. Es una ayuda metodológica; el criterio jurídico es del profesional.
¿Por qué este servidor?
A diferencia de un volcado estático y parcial, LeyChile MCP consulta a BCN en cada llamada, por lo que entrega la versión consolidada y vigente de cada norma, con cobertura completa del ordenamiento (leyes, decretos, DFL, códigos, resoluciones). Está en español, con citas verificables y enlace oficial.
Arquitectura en 3 capas (honesta)
La API de BCN entrega datos, no juicios jurídicos. Para no “alucinar derecho”, el servidor separa:
| Capa | Qué es | Fuente de verdad |
|---|---|---|
| A — Datos | Recuperación y parsing determinista del XML de BCN | obtxml (BCN, en vivo) |
| B — Conocimiento | Catálogos curados y verificados (códigos, especialidad, reenvíos procesales) | Tablas mantenidas + verificación de vigencia en vivo |
| C — Razonamiento | Prompts que guían el análisis usando A+B | El modelo, citando A/B |
Así, los datos los aporta BCN; el método lo aportan los prompts; y toda conclusión queda anclada a normas citadas.
Características destacadas
- 🔎 Búsqueda por palabra clave o materia, con filtro por tipo.
- 📄 Texto consolidado y vigente de cualquier norma (por idNorma o N° de ley).
- 🧷 Segmentación forense: extrae el inciso, numeral o letra exactos (p. ej. “art. 254 inciso segundo del CPC”, “art. 434 N° 4”).
- 🕰️ Vigencia intertemporal: cómo estaba redactado un artículo a una fecha dada, versión histórica exacta (
idVersion), línea de tiempo y comparación de versiones. - ⚖️ Alerta de ultraactividad procesal: avisa cuando, en normas adjetivas, los plazos o actuaciones ya iniciados podrían regirse por la ley antigua.
- 📘 Texto refundido e instrumento fijador; vacancia legal (publicada pero no vigente).
- 🧩 Transitorios, definiciones legales y anexos (p. ej. sentencias del Tribunal Constitucional) aislados.
- 🔗 Modificaciones desde notas marginales e Historia de la Ley con las leyes modificatorias.
- 🗂️ Índice sistemático anti-desborde para códigos extensos y categorías temáticas de BCN.
- 🧠 Capa de conocimiento: resolución de códigos por nombre, mapa de especialidad (arts. 4° y 13 CC) y reenvíos sustantivo↔adjetivo con verificación de vigencia de la vía procesal.
- 💬 6 prompts jurídicos: antinomías, ratio legis, derogación orgánica, vigencia intertemporal, minuta de alegato y mapa normativo del caso.
- 📌 Citas en texto libre: pega «art. 1698 inc. 1° del Código Civil» y obtén el texto exacto (
leychile_citar). - 🔦 Buscar dentro de una norma (
leychile_buscar_en_norma) y concordancias/remisiones de un artículo (leychile_concordancias_articulo). - 🏷️ Leyes por nombre popular: «Ley Karin», «Ley Emilia», etc. (
leychile_resolver_ley_por_nombre). - 🛡️ Resiliencia: User-Agent de navegador (anti-403), failover de hosts BCN, caché diaria, reintentos, plegado de acentos.
- 🔌 Transporte stdio (local) y streamable-HTTP (servicio).
Instalación
Requisitos: Python 3.10+.
git clone https://github.com/IanGuiloff/leychile-mcp.git
cd leychile-mcp
pip install -e .
Esto deja disponible el comando leychile-mcp.
Uso en Claude Desktop
Edita el archivo de configuración (%APPDATA%\Claude\claude_desktop_config.json en Windows; ~/Library/Application Support/Claude/claude_desktop_config.json en macOS) y agrega:
{
"mcpServers": {
"leychile": { "command": "leychile-mcp" }
}
}
Reinicia Claude Desktop: aparecerán las herramientas leychile_*. (Ver examples/claude_desktop_config.json para la variante sin instalar.)
Uso en Claude Code
claude mcp add leychile -- leychile-mcp
Publicarlo como servicio (HTTP / Docker)
leychile-mcp --transport http --host 0.0.0.0 --port 8000 # endpoint: http://host:8000/mcp
# o con Docker:
docker build -t leychile-mcp . && docker run -p 8000:8000 leychile-mcp
Ejemplos (en lenguaje natural a la IA)
- “Tráeme el inciso segundo del artículo 254 del Código de Procedimiento Civil.”
- “Resuelve la cita: art. 19 N° 12 de la Constitución.”
- “Busca ‘fuero maternal’ dentro del Código del Trabajo.”
- “¿A qué artículos y leyes remite el art. 23 de la Ley 19.628?”
- “¿Qué ley es la ‘Ley Karin’?”
- “¿Cómo estaba redactado el artículo 17 de la Ley 19.628 el 1 de enero de 2005?”
- “Compara el artículo 17 de la Ley 19.628 entre 2010 y hoy.”
- “Dame los artículos transitorios del Código del Trabajo.”
- “¿Qué leyes especiales priman en materia de consumo? ¿Siguen vigentes?”
- “¿Cuál es la vía procesal para una acción reivindicatoria?”
- “Arma una minuta de alegato sobre término de contrato de arrendamiento urbano.”
Herramientas y prompts
28 herramientas (búsqueda, texto, fragmentos, vigencia, versiones, transitorios, modificaciones, definiciones, anexos, categorías, códigos, especialidad, vía procesal, Historia de la Ley) y 6 prompts jurídicos. Referencia completa en docs/HERRAMIENTAS.md.
Todas las herramientas aceptan response_format = markdown (por defecto) o json. Las de texto aceptan formato_texto = limpio (quita notas marginales) u original.
Cómo funciona
Usa el servicio abierto obtxml de Ley Chile:
- Búsqueda:
obtxml?opt=61&cadena=…&cantidad=… - Norma consolidada:
obtxml?opt=7&idNorma=…(&idVersion=YYYY-MM-DDpara texto histórico exacto) - Recientes:
opt=3· Categorías:opt=30· Normas por categoría:opt=6
El XML se parsea preservando la jerarquía oficial (Libros/Títulos/Capítulos/Párrafos/Artículos) y la fecha de versión por artículo, base del control intertemporal.
Documentación de la fuente: Servicios web de Ley Chile · Esquema XML
Desarrollo
pip install -e ".[dev]"
pytest -q
Estructura del paquete: client.py (HTTP), parser.py (XML), segmenter.py (incisos/numerales/letras), timeline.py (vigencia intertemporal), catalog.py (capa B), prompts.py (capa C), formatting.py (salida + citas), service.py (orquestación), server.py (FastMCP).
Limitaciones
- Depende de la disponibilidad del servicio de BCN (con reintentos, failover y caché).
numero_leyresuelve leyes; para otros tipos useid_normao búsqueda.- La línea de tiempo se deriva del historial observable del texto vigente; para precisión absoluta a una fecha, contraste con la versión oficial.
leychile_historia_leyentrega enlaces a la tramitación (no descarga los PDF).- Las capas B y C son apoyo metodológico curado, no dictan derecho.
Créditos y datos
Datos: servicio público Ley Chile de la Biblioteca del Congreso Nacional de Chile (BCN). Proyecto creado y mantenido por Ian Guiloff.
Licencia
MIT © 2026 Ian Guiloff.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.