Are you the author? Sign in to claim
MCP server para el CENDOJ 🇪🇸 — Acceso automatizado a resoluciones judiciales de España, filtros avanzados de jurisprud
Este proyecto proporciona una API REST (FastAPI) y un Servidor MCP (Model Context Protocol) para buscar y consultar sentencias y resoluciones judiciales del CENDOJ (Centro de Documentación Judicial de España).
Dado que el CENDOJ no dispone de una API pública y protege sus búsquedas con Javascript interactivo y validaciones de autocompletado, este servicio utiliza Playwright para simular búsquedas reales de forma automatizada y robusta, devolviendo resultados limpios en formato JSON y abstrayendo la descarga y extracción de texto de los PDFs de sentencias.
GET /api/status: Verifica la salud y configuración del servicio.GET /api/search: Realiza búsquedas avanzadas con parámetros:
query: Texto libre opcional.fecha_desde / fecha_hasta: Rango de fechas (YYYY-MM-DD o DD/MM/AAAA).jurisdiccion: Civil, Penal, Contencioso-Administrativo, Social, Militar.roj: Identificador ROJ (ej. STS 2849/2026).ecli: Código ECLI (ej. ES:TS:2026:2849).n_resolucion: Número de resolución.n_recurso: Número de recurso.ponente: Nombre del magistrado ponente.norma: Legislación o norma de interés.localizacion: Lista de localizaciones o Comunidades Autónomas (ej. Andalucía, Cataluña, Madrid).GET /api/decision: Resuelve el contenedor de documentos del CENDOJ, descarga el archivo PDF y extrae su texto plano en español./mcp (para clientes remotos o web).buscar_jurisprudencia: Realiza búsquedas con todos los filtros detallados (query, roj, ecli, ponente, recurso, resolución, norma, etc.).obtener_texto_resolucion: Descarga un PDF y extrae su texto completo.NotImplementedError en subprocess) en entornos Windows.Para facilitar la configuración en Windows, hemos incluido scripts que automatizan todo el proceso:
Ejecutar configuración automática:
Haz doble clic en el archivo setup.bat (o ejecútalo desde tu consola). Este script se encargará de:
.venv.requirements.txt)..env por defecto.Registrar en Clientes MCP (Automático): Una vez finalizado el setup, ejecuta la utilidad de instalación automática para vincular el servidor MCP con tus clientes locales:
.venv\Scripts\python.exe install_mcp.py
Este comando detectará la ruta absoluta de tu repositorio y registrará automáticamente el servidor CENDOJ en las configuraciones globales de:
claude_desktop_config.json)mcp_config.json)Si no deseas utilizar los scripts de automatización, puedes inicializar el proyecto manualmente siguiendo estos pasos:
Crear el entorno virtual de Python:
python -m venv .venv
Activar el entorno virtual:
.venv\Scripts\Activate.ps1
source .venv/bin/activate
Instalar dependencias:
pip install --upgrade pip
pip install -r requirements.txt
Instalar el navegador Chromium para Playwright:
playwright install chromium
Crear el archivo de configuración .env:
Crea un archivo llamado .env en la raíz del proyecto y escribe la siguiente línea:
CENDOJ_HEADLESS=true
El script run.py es el punto de entrada unificado:
Para levantar el servidor web:
.venv\Scripts\python.exe run.py api
El servidor se iniciará en http://localhost:8000.
Para iniciar el servidor MCP utilizando la entrada y salida estándar (ideal para integrar en herramientas de escritorio locales):
.venv\Scripts\python.exe run.py mcp
Si prefieres realizar el registro de manera manual en lugar de usar install_mcp.py:
Para conectar este servidor MCP con Claude Desktop, edita tu archivo de configuración claude_desktop_config.json (usualmente en %APPDATA%\Claude\claude_desktop_config.json en Windows) y añade la configuración del servidor:
{
"mcpServers": {
"cendoj-jurisprudencia": {
"command": "c:/workspace-github/MCP-CENDOJ/.venv/Scripts/python.exe",
"args": ["c:/workspace-github/MCP-CENDOJ/run.py", "mcp"],
"env": {
"CENDOJ_HEADLESS": "true"
}
}
}
}
Para utilizar el servidor en Cursor:
CENDOJcommandc:/workspace-github/MCP-CENDOJ/.venv/Scripts/python.exe c:/workspace-github/MCP-CENDOJ/run.py mcpEsta guía muestra cómo puedes hablarle al asistente en lenguaje natural y conversacional (como si hablaras con un colega o un abogado), y cómo la IA se encarga de traducir tu petición en consultas técnicas para el buscador del CENDOJ.
Consultar dudas sobre accidentes en situaciones modernas
"accidente de trabajo", "teletrabajo", "cocina" u "domicilio" en la jurisdicción social, descarga los textos de las sentencias y analiza los hechos probados.Investigar fallos en una zona geográfica específica
localizacion: ["Valladolid"]), busca los términos "despido disciplinario" y "quedarse dormido" o "vigilante" en la jurisdicción social, ordenando por fecha reciente.Analizar la doctrina del Tribunal Supremo sobre temas familiares
"pensión de alimentos", "hijos mayores de edad", "estudios", "aprovechamiento".Reclamaciones contra administraciones locales
"responsabilidad patrimonial", "caída peatón", "socavón" o "bache", analizando la concurrencia de culpas.Resumir y explicar sentencias de gran repercusión
"Wizink", "revolving", "usura"), descarga su PDF completo usando obtener_texto_resolucion, lee los fundamentos de derecho y redacta el resumen ejecutivo.El proyecto incluye scripts en el directorio temporal o de scratchpad para pruebas de desarrollo rápidas:
test_scraper.py busca un término e intenta descargar el primer PDF.test_api.py verifica el estado, realiza una consulta y ejecuta la descarga del PDF a través del servidor FastAPI en ejecución.test_mcp_stdio_client.py inicia el servidor MCP en un subproceso y realiza las llamadas JSON-RPC oficiales simulando un cliente real.[!WARNING] LEER ATENTAMENTE ANTES DE UTILIZAR LA HERRAMIENTA
Este software es una utilidad de automatización de código abierto provista únicamente con fines educativos, de investigación académica y para consultas individuales de carácter privado.
El sitio web del portal del CENDOJ (Centro de Documentación Judicial del Consejo General del Poder Judicial de España) establece términos de acceso específicos. Al utilizar este software, el usuario asume toda la responsabilidad de cumplir con dichas políticas:
Las sentencias publicadas por el CENDOJ han sido previamente sometidas a un proceso de anonimización/seudonimización. El Reglamento General de Protección de Datos (RGPD) y la Ley Orgánica 3/2018 (LOPDGDD) prohíben estrictamente el uso de estas informaciones para la reidentificación de personas físicas implicadas en los procedimientos judiciales. El usuario final es el único responsable legal del tratamiento que dé a los textos extraídos por este software.
Los desarrolladores y contribuidores de este proyecto:
Browser automation using accessibility snapshots instead of screenshots
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows