MCP Puerto Rico Sentencias

MCP Puerto Rico Sentencias

Search, locate, and read Puerto Rico Supreme Court decisions and other public court documents directly from MCP clients, with strict source verification to prevent citation hallucinations.

Category
访问服务器

README

MCP Puerto Rico Sentencias 🇵🇷

Busca y lee sentencias de Puerto Rico desde Claude, ChatGPT y otros clientes MCP

MCP Puerto Rico Sentencias permite a Claude Desktop / Cowork, ChatGPT y otros clientes compatibles con MCP buscar, localizar y leer sentencias de Puerto Rico directamente desde fuentes públicas. Está diseñado para investigación jurídica rápida y verificable: encuentra los precedentes más relevantes disponibles para una cuestión, recupera el documento y permite extraer pasajes del texto fuente, junto con su número de caso, cita y fuente, cuando esos datos aparecen en el documento.

Código abierto (MIT). Todo el código de búsqueda, extracción y verificación está en este repositorio y puede auditarse, modificarse o autoalojarse libremente — ver Licencia y contenido de terceros.

🚀 Inicio rápido

Endpoint MCP público de esta instancia de demostración:

https://mcp-puerto-rico-sentencias.onrender.com/mcp

⚠️ Esto es una instancia de demostración/prueba, no un servicio con SLA. Corre en el plan gratuito de Render, así que tras un período de inactividad la primera solicitud puede tardar ~50 segundos o más en responder mientras el servicio "despierta". No la trates como infraestructura garantizada para producción — para eso, autoaloja tu propia instancia (ver opción C abajo).

Tres formas de usar este proyecto, según lo que necesites:

Qué es Para quién
A. Instancia pública Conecta directamente al endpoint de arriba desde ChatGPT u otro cliente MCP-HTTP. Cero instalación. Probar el proyecto rápido. Ver Conectar la URL remota a ChatGPT.
B. Instalación local Corre el servidor en tu máquina y conéctalo a Claude Desktop o Claude Code por stdio. Uso diario con Claude, con la ejecución bajo tu control. Ver Instalación local.
C. Autoalojar tu propia instancia Despliega tu propio fork en Render (u otro proveedor) con Docker. Necesitas un endpoint propio, disponible 24/7 y bajo tu control — p. ej. para ChatGPT o un equipo. Ver Servidor remoto.

Descripción

Un servidor MCP enfocado en jurisprudencia de Puerto Rico. Convierte fuentes públicas de decisiones judiciales en herramientas que los asistentes compatibles con MCP pueden consultar en lenguaje natural, reduciendo el tiempo necesario para localizar precedentes y revisar el texto de las opiniones.

El objetivo es combinar velocidad + precisión + trazabilidad: encontrar rápidamente candidatos relevantes, leer sus documentos y devolver pasajes verificables sin inventar autoridades ni completar datos que no estén en la fuente.

No inventa jurisprudencia. Si una sentencia, cita, nombre, número de caso o dato jurídico no puede verificarse en una fuente identificable, el MCP lo marca como no verificado o informa que no fue encontrado.

Claude + ChatGPT

El proyecto ofrece un mismo conjunto de herramientas y reglas de integridad para distintos clientes MCP:

  • Claude Desktop / Cowork: ejecución local mediante stdio.
  • ChatGPT: ejecución remota mediante Streamable HTTP sobre HTTPS.
  • Otros clientes MCP: pueden utilizar el transporte que soporte el cliente.

El código de búsqueda, extracción y verificación es compartido. El cliente —Claude, ChatGPT u otro— no es la fuente de la autoridad jurídica.

ChatGPT: MCP remoto

ChatGPT no se conecta directamente a un servidor MCP que solo esté ejecutándose en el ordenador local. Para usar este proyecto desde ChatGPT, el servidor debe estar desplegado en una URL HTTPS accesible y exponer el endpoint MCP:

https://TU-DOMINIO/mcp

El repositorio incluye remote_server.py, Dockerfile y render.yaml para facilitar ese despliegue. El transporte utilizado es Streamable HTTP, el transporte HTTP actual del SDK de MCP.

Después del despliegue, la URL /mcp puede utilizarse al crear/configurar una app MCP personalizada en ChatGPT, sujeto a la disponibilidad y permisos del plan o espacio de trabajo de ChatGPT.

Qué hace

  • 🔎 Busca sentencias de Puerto Rico desde Claude, ChatGPT u otros clientes MCP.
  • ⚡ Diseñado para búsquedas rápidas y consultas directas.
  • 📄 Lee decisiones públicas en HTML y PDF.
  • 🎯 Ordena candidatos por coincidencia con la consulta dentro de los metadatos que realmente aparecen en la fuente.
  • 📌 Extrae pasajes del documento fuente y conserva su procedencia; en PDF, incluye página cuando puede determinarse.
  • ⚖️ Devuelve número de caso, cita TSPR y otros metadatos únicamente cuando aparecen en la fuente.
  • 🔗 Conserva el enlace a la fuente original para verificación.
  • 🛡️ Aplica una política estricta de zero citation hallucination.
  • 🔒 Las herramientas son de investigación/lectura: no crean, modifican ni eliminan información en las fuentes judiciales.

Regla crítica: integridad de citas

Este MCP NO puede inventar casos, sentencias, citas, nombres de las partes, jueces, fechas, números de caso, holdings ni citas textuales.

La regla es source-first / zero citation hallucination:

  1. Una autoridad jurídica solo se presenta como verificada cuando sus datos identificadores provienen de una fuente pública identificable.
  2. Los campos que la fuente no proporciona se dejan vacíos; el servidor no los completa por inferencia.
  3. buscar_por_cita exige coincidencia exacta de la cita y no sustituye una cita inexistente por una parecida.
  4. Si una autoridad no puede verificarse, el servidor devuelve encontrado: false y no genera una alternativa plausible.
  5. Los pasajes y citas textuales deben provenir del documento recuperado; nunca se presenta texto generado por un modelo como si fuera texto judicial.
  6. Los enlaces a la fuente se conservan para que el abogado pueda verificar la autoridad original.

Es preferible devolver “no encontrado” que una autoridad jurídica falsa.

Fuentes

  • Poder Judicial de Puerto Rico — Tribunal Supremo: fuente oficial de decisiones del Tribunal Supremo.
  • LexJuris: fuente complementaria para localizar jurisprudencia y documentos cuando estén públicamente accesibles.

Cuando exista una publicación oficial verificable, esta debe preferirse para la comprobación final de la autoridad.

Herramientas MCP

  • investigar_sentencias — la herramienta principal para argumentos jurídicos: busca dentro del texto real de las sentencias públicas (no solo en el índice), puntúa por coincidencia temática y devuelve las mejores autoridades ya verificadas contra el PDF oficial, con cita, número de caso, página y pasaje exacto. Si no existen suficientes decisiones pertinentes y verificables, devuelve menos de las solicitadas — nunca rellena con casos marginales.
  • buscar_sentencias — búsqueda por palabras/frases, año y máximo de resultados.
  • buscar_por_cita — búsqueda exacta y verificable por cita TSPR.
  • leer_sentencia — descarga y extracción de texto desde HTML/PDF público, con pasajes relevantes y procedencia.
  • opciones_busqueda — fuentes, filtros y reglas de integridad.
  • estado — diagnóstico y garantías de integridad de citas.

Cómo prioriza y por qué puede devolver menos resultados de los pedidos

El índice oficial del Tribunal Supremo no incluye materia/asunto junto a cada enlace — solo la cita. Por eso investigar_sentencias no puede clasificar por tema sin abrir los documentos. Para responder en un tiempo razonable sin descargar cientos de PDFs innecesariamente, la búsqueda avanza por rondas: revisa un año a la vez (empezando por el más reciente), lee y verifica un lote acotado de sus PDFs, y se detiene en cuanto encuentra suficientes resultados verificados o agota su presupuesto de lectura. La respuesta incluye anos_explorados y anos_no_explorados para que quede claro qué se revisó realmente — un año en anos_no_explorados significa que no se llegó a revisar en esa llamada, no que ahí no haya jurisprudencia relevante.

Ejemplos de uso

“Busca las mejores 5 sentencias del Tribunal Supremo de Puerto Rico que apoyen mi argumento sobre pensión alimenticia.”

“Busca la mejor sentencia disponible del Tribunal Supremo de Puerto Rico sobre prescripción de una acción de daños y perjuicios.”

“Encuentra sentencias sobre arbitraje y dame el número de caso y los pasajes exactos donde el Tribunal explica la regla.”

“Busca jurisprudencia sobre legitimación activa y selecciona los resultados más relevantes que puedas verificar.”

“Verifica si existe 2024 TSPR 140 y, si existe, dime el número de caso y extrae los pasajes pertinentes del documento.”

“Si no encuentras la cita, no inventes ni sustituyas la sentencia.”

Arquitectura de confianza

La arquitectura sigue esta secuencia:

FUENTE → EXTRACCIÓN → VALIDACIÓN → MCP → CLIENTE (CLAUDE / CHATGPT / OTRO)

No se utiliza el LLM como fuente de autoridad jurídica. El cliente puede ayudar a interpretar una consulta, ordenar resultados o resumir documentos que ya fueron recuperados y verificados, pero no puede crear una autoridad ni rellenar sus datos faltantes.

Los resultados incluyen campos de procedencia como source, url, verified y verification_status.

Instalación local

Requiere Python 3.10+ y Git.

git clone https://github.com/ericalopezfebo/mcp-puerto-rico-sentencias.git
cd mcp-puerto-rico-sentencias
python -m venv .venv
source .venv/bin/activate   # en Windows: .venv\Scripts\activate
pip install -e .

Para ejecutar las pruebas:

pip install -e ".[test]"
pytest -q

Claude Desktop / Cowork

Agrega esto al archivo de configuración de Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "puerto-rico-sentencias": {
      "command": "/ruta/al/repositorio/.venv/bin/python",
      "args": ["/ruta/al/repositorio/server.py"]
    }
  }
}

En Windows, command apunta a C:\ruta\al\repositorio\.venv\Scripts\python.exe (el layout del venv es distinto: Scripts\ en vez de bin/).

Reinicia Claude Desktop después de guardar el archivo.

Claude Code (CLI)

claude mcp add puerto-rico-sentencias -- /ruta/al/repositorio/.venv/bin/python /ruta/al/repositorio/server.py

En Windows, usa .venv\Scripts\python.exe en vez de .venv/bin/python.

En ambos casos, usa la ruta absoluta al intérprete dentro de .venv creado en el paso anterior (no el python del sistema), para que el servidor arranque con las dependencias del proyecto ya instaladas.

Verifica que quedó conectado

  • Claude Desktop: después de reiniciar, el ícono de 🔌/herramientas en el cuadro de mensaje debe mostrar puerto-rico-sentencias con sus herramientas listadas (investigar_sentencias, buscar_sentencias, buscar_por_cita, leer_sentencia, opciones_busqueda, estado). Si no aparece, revisa que la ruta al .venv/bin/python en el JSON sea absoluta y exista.
  • Claude Code: ejecuta claude mcp list — debe aparecer puerto-rico-sentencias como conectado (no como "Pending approval" ni con error).
  • Prueba rápida en cualquiera de los dos: pídele a Claude que use la herramienta estado del MCP. Debe devolver un JSON con "servidor": "puerto-rico-sentencias" y las garantías de integridad. Esa llamada es instantánea (no toca la fuente pública), a diferencia de investigar_sentencias/buscar_sentencias, que sí consultan el sitio oficial y por eso pueden tardar.

Servidor remoto (para ChatGPT u otros clientes HTTP)

Esta sección explica cómo desplegar tu propia instancia remota. Si solo quieres probar el proyecto sin desplegar nada, usa la instancia pública de demostración del Inicio rápido — con las mismas limitaciones de plan gratuito (arranque en frío) descritas ahí.

Opción con un clic (Render): el repo incluye render.yaml, listo para un despliegue Blueprint:

  1. Entra a render.com e inicia sesión (puedes usar tu cuenta de GitHub).
  2. New +Blueprint → selecciona tu fork/clon de este repositorio en GitHub.
  3. Render detecta render.yaml y Dockerfile automáticamente y crea el servicio. Espera a que el build termine (unos minutos).
  4. Copia la URL pública que Render asigna al servicio (algo como https://mcp-puerto-rico-sentencias.onrender.com) — el endpoint MCP es esa URL + /mcp.

En Render, RENDER_EXTERNAL_HOSTNAME la proporciona la plataforma automáticamente (no hace falta configurarla): el servidor la detecta y la usa para aceptar solicitudes con ese host, así que no se necesita ninguna variable adicional.

Manual / otro proveedor:

python remote_server.py

Por defecto escucha en 0.0.0.0 y usa el puerto 8000 o la variable PORT proporcionada por el proveedor de hosting. El endpoint MCP es /mcp.

Fuera de Render, define MCP_ALLOWED_HOSTS (host público, ej. mcp.tu-dominio.com) y MCP_ALLOWED_ORIGINS (origen HTTPS completo, ej. https://mcp.tu-dominio.com) con el dominio real del despliegue. Sin esto, la protección contra DNS rebinding solo acepta localhost/127.0.0.1 por defecto y toda solicitud externa recibirá 421 Misdirected Request.

Para producción, debe utilizarse un proveedor que proporcione HTTPS y protección operacional adecuada. No se deben publicar credenciales ni información confidencial en variables de entorno o en el repositorio.

Conectar la URL remota a ChatGPT

  1. En ChatGPT, entra a la configuración de conectores/apps (la ubicación exacta depende de tu plan/espacio de trabajo — busca "Connectors", "Apps" o "Conectar aplicaciones" en Configuración).
  2. Agrega un conector personalizado y pega la URL con /mcp al final (paso 4 de arriba).
  3. Guarda y actívalo en la conversación donde quieras usarlo. ChatGPT mostrará un aviso sobre conectar servidores MCP externos — es normal; revisa que la URL sea la tuya antes de aceptar.
  4. Prueba pidiendo que use la herramienta estado para confirmar la conexión, igual que en Claude.

Solución de problemas comunes

  • El MCP no aparece en Claude Desktop después de reiniciar. Revisa que la ruta en command sea absoluta (no ~ ni rutas relativas) y apunte al python dentro de .venv, no al del sistema. Verifica el JSON con un validador — una coma de más lo invalida silenciosamente.
  • ModuleNotFoundError al iniciar. Las dependencias se instalaron en un entorno distinto al que Claude está usando para lanzar el proceso. Vuelve a correr pip install -e . con el mismo .venv referenciado en la configuración.
  • investigar_sentencias/buscar_sentencias parecen "colgados" o tardan mucho. Es esperado: leen y verifican PDFs reales contra el sitio oficial en cada llamada, así que una búsqueda temática amplia puede tardar 1-2 minutos. Si el cliente reporta timeout antes de eso, pide la búsqueda para un año específico (parámetro anos) — es más rápida porque cubre menos terreno.
  • Python menor a 3.10. pip install -e . fallará indicando la versión requerida. Instala Python 3.10+ y vuelve a crear el .venv.
  • Windows: source .venv/bin/activate no funciona. Usa .venv\Scripts\activate en PowerShell o CMD (ya indicado arriba).

Seguridad y acceso

El servidor no intenta eludir CAPTCHA, controles anti-bot, autenticación, paywalls ni límites de acceso. Si una fuente no permite acceso automatizado, se debe utilizar el enlace para consulta manual.

El endpoint remoto está diseñado como MCP de lectura/investigación: no ofrece herramientas para modificar las fuentes judiciales.

ChatGPT advierte que conectar servidores MCP inseguros puede aumentar riesgos como prompt injection. Por ello, el servidor debe desplegarse, revisarse y mantenerse bajo control del propietario antes de conectarlo a un cliente externo.

Privacidad

No se incluyen credenciales en el repositorio. No se almacenan expedientes, consultas ni documentos del usuario por defecto.

Para uso jurídico: las consultas deben estar anonimizadas y no deben incluir información confidencial del cliente cuando no sea necesaria para localizar jurisprudencia.

Uso profesional

El MCP es una herramienta de investigación jurídica. Antes de citar una autoridad en un escrito u opinión, debe verificarse el documento original, su cita, contenido y vigencia/aplicabilidad.

Licencia y contenido de terceros

El código de este repositorio está disponible bajo la MIT License. La licencia MIT aplica al software original de este proyecto; no concede derechos sobre las sentencias, documentos, sitios web, marcas, bases de datos ni otro contenido de terceros que el MCP pueda consultar o recuperar.

Los usuarios son responsables de cumplir las condiciones de uso y los derechos aplicables a cada fuente. Las decisiones judiciales deben verificarse en la fuente original antes de su uso profesional.

Licencia

MIT — ver LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选