Skip to main content
Glama
kheidkamp

legal-research-mcp

by kheidkamp

Legal Research MCP MVP 0.2-dev - Render Free

MCP de investigación de solo lectura listo para Render para la capa de investigación planificada de legal-tax-advisor-de v2.3.0.

Qué añade 0.2-dev

0.2-dev mantiene el contrato conservador de historial de enmiendas de 0.1 y añade una capacidad de recuperación específica:

  • get_official_document_text: abre un documento oficial alemán en PDF/HTML ya identificado desde una lista blanca estricta de hosts HTTPS, busca un localizador/consulta y devuelve evidencia con conciencia de página y hashes de contenido.

Esto cierra la brecha D1 observada en Copilot Studio: el agente podía identificar la Bundesrat-Drucksache 5/26 pero no podía abrir el Art. 30 Nr. 1 para verificar el comando de enmienda concreto.

Related MCP server: de-eli-mcp

Herramientas

search_primary_sources

Descubrimiento controlado para un pequeño registro de legislación validada (KStG, EStG, AO, GewStG). Solo descubrimiento.

get_norm

Recupera la disposición consolidada oficial vigente de gesetze-im-internet.de y devuelve metadatos de estructura/evidencia.

trace_norm_amendments

Implementación segura de conectividad de historial de enmiendas. Puede exponer un encabezado de enmiendas de estatuto completo como pista de descubrimiento, pero deliberadamente permanece partial/unknown hasta que se implemente un resolvedor de cadenas específico de disposiciones.

get_official_document_text

Abre un documento oficial identificado y recupera un pasaje exacto.

Entradas aceptadas:

  • uno de url o document_id;

  • locator y/o query;

  • max_passages y context_chars opcionales.

Atajos de ID de documento admitidos:

  • BR-Drs. 5/26 -> PDF del servidor de documentos del Bundesrat;

  • BT-Drs. 21/3343 -> PDF del servidor de documentos del Bundestag;

  • BGBl. 2026 I Nr. 33 -> página oficial de promulgación de recht.bund.de.

Ejemplo de objetivo de verificación de enmienda:

get_official_document_text(
  document_id="BR-Drs. 5/26",
  locator="Artikel 30",
  query="§ 8b Absatz 6 Satz 2"
)

Una coincidencia de consulta normalizada exitosa devuelve coverage_status=complete y evidencia de pasaje full_checked. Un resultado solo con localizador es evidencia de navegación y no debe tratarse como prueba de la frase de enmienda solicitada.

Seguridad SSRF / descarga

get_official_document_text está deliberadamente restringido:

  • Solo HTTPS;

  • lista blanca exacta de hosts oficiales;

  • cada salto de redirección se revalida;

  • se rechazan credenciales y puertos no estándar;

  • tamaño de descarga limitado a 20 MB;

  • solo extracción de texto PDF, sin ejecución de JavaScript/navegador;

  • solo solicitudes de solo lectura.

Las familias actuales en lista blanca incluyen el servidor oficial de documentos del Bundestag/Bundesrat, recht.bund.de, gesetze-im-internet.de, hosts web del Bundestag/Bundesrat y el sitio web del Ministerio Federal de Finanzas.

Despliegue en Render

Use el Blueprint render.yaml incluido. El servicio permanece configurado como:

  • Web Service;

  • runtime Docker;

  • plan Free;

  • región Frankfurt;

  • comprobación de salud /health;

  • enlace dinámico al PORT de Render;

  • endpoint MCP en /mcp;

  • lista blanca de Host explícita desde RENDER_EXTERNAL_HOSTNAME.

Pasos detallados: docs/render-free-deploy.md.

Configuración local

python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
python -m pytest -q
uvicorn app:app --reload --port 8080

Endpoints locales:

  • Salud: http://localhost:8080/health

  • MCP: http://localhost:8080/mcp

Aún no implementado

  • resolvedor de versiones históricas de estatutos;

  • resolvedor completo de cadenas de enmiendas específico de disposiciones;

  • descubrimiento automático de cada documento del Bundesgesetzblatt/Bundestag/Bundesrat;

  • recuperación de jurisprudencia;

  • recuperación integral de directrices del BMF;

  • autenticación de producción.

Límite de seguridad DEV

El despliegue de Render Free permanece intencionalmente sin autenticación para pruebas DEV. No publique el agente de Copilot y no envíe hechos confidenciales de clientes/asuntos a través del endpoint.

Los Web Services gratuitos de Render pueden suspenderse tras inactividad y no son un objetivo de producción.

Actualización 0.1 -> 0.2

  1. Reemplace los archivos del repositorio con este paquete y haga commit/push a la rama que Render despliega.

  2. Espere a que el despliegue de Render pase a Live.

  3. Verifique que /health devuelve la versión 0.2.0-dev.

  4. En Copilot Studio, abra la configuración existente del servidor MCP Legal Research DE y verifique que get_official_document_text está expuesto/habilitado.

  5. Ejecute la prueba de recuperación de enmiendas D1 e inspeccione el Activity Trace.

Consulte docs/render-free-deploy.md para la secuencia detallada de actualización/prueba.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for accessing and searching German federal law documents from gesetze-im-internet.de. Provides tools to retrieve specific paragraphs, perform full-text searches, and list available laws.
    10
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Searches and retrieves German federal legislation from NeuRIS, the official legal information portal, providing verifiable ELI identifiers and German citations.
    15
    248 PyPI
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides LLM-friendly access to German federal legislation via the NeuRIS API, enabling tool-based retrieval of laws, norms, and statutory text.
    18 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to current German federal law, supporting legislation search, provision retrieval, and citation handling.
    Apache 2.0