LeyChile MCP

LeyChile MCP

MCP server that connects AI to the Chilean legislation system (Ley Chile) for retrieving legal norms, citations, and intertemporal analysis.

Category
Visit Server

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.

CI Python License

⚠️ 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-DD para 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_ley resuelve leyes; para otros tipos use id_norma o 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_ley entrega 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured