MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Servidor MCP (Model Context Protocol) que conecta IA en vivo con Ley Chile de la BCN. Transforma el ordenamiento jurídico chileno en herramientas forenses: busca normas, extrae incisos o numerales exactos, controla vigencia intertemporal, compara versiones históricas y analiza vías procesales. Herramienta metodológica no oficial.

Created 6/17/2026
Updated about 4 hours ago
Repository documentation and setup instructions

⚖️ 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.

Quick Setup
Installation guide for this server

Install Package (if required)

uvx leychile-mcp

Cursor configuration (mcp.json)

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