legal-research-mcp
Legal Research MCP MVP 0.2-dev — Render Free
Готовый к развёртыванию на Render исследовательский MCP только для чтения для запланированного исследовательского слоя legal-tax-advisor-de v2.3.0.
Что добавляет 0.2-dev
0.2-dev сохраняет консервативный контракт истории поправок из 0.1 и добавляет одну целевую возможность извлечения:
get_official_document_text: открывает уже идентифицированный официальный немецкий PDF/HTML-документ из строгого allowlist HTTPS-хостов, ищет локатор/запрос и возвращает evidence с учётом страниц и хэшами содержимого.
Это закрывает пробел D1, наблюдавшийся в Copilot Studio: агент мог идентифицировать Bundesrat-Drucksache 5/26, но не мог открыть Art. 30 Nr. 1, чтобы проверить конкретную команду о внесении поправки.
Related MCP server: de-eli-mcp
Инструменты
search_primary_sources
Контролируемый поиск по небольшому проверенному реестру законодательства (KStG, EStG, AO, GewStG). Только поиск.
get_norm
Извлекает текущую официальную консолидированную норму с gesetze-im-internet.de и возвращает метаданные структуры/evidence.
trace_norm_amendments
Безопасная реализация подключения к истории поправок. Может предоставлять заголовок поправок ко всему закону как поисковую подсказку, но намеренно остаётся partial/unknown, пока не будет реализован резолвер цепочек для конкретных норм.
get_official_document_text
Открывает идентифицированный официальный документ и извлекает точный фрагмент.
Принимаемые входные данные:
один из
urlилиdocument_id;locatorи/илиquery;необязательные
max_passagesиcontext_chars.
Поддерживаемые сокращения document-id:
BR-Drs. 5/26-> PDF сервера документов Бундесрата;BT-Drs. 21/3343-> PDF сервера документов Бундестага;BGBl. 2026 I Nr. 33-> официальная страница публикацииrecht.bund.de.
Пример цели проверки поправки:
get_official_document_text(
document_id="BR-Drs. 5/26",
locator="Artikel 30",
query="§ 8b Absatz 6 Satz 2"
)Успешное совпадение по нормализованному запросу возвращает coverage_status=complete и evidence фрагмента с full_checked. Результат только по локатору является навигационным evidence и не должен рассматриваться как доказательство запрашиваемой формулировки поправки.
Безопасность SSRF / загрузки
get_official_document_text намеренно ограничен:
только HTTPS;
точный allowlist официальных хостов;
каждый переход по редиректу повторно проверяется;
учётные данные и нестандартные порты отклоняются;
размер загрузки ограничен 20 МБ;
только извлечение текста из PDF, без JavaScript/выполнения браузера;
только запросы на чтение.
Текущие разрешённые семейства включают официальный сервер документов Бундестага/Бундесрата, recht.bund.de, gesetze-im-internet.de, веб-хосты Бундестага/Бундесрата и сайт Федерального министерства финансов.
Развёртывание на Render
Используйте включённый Blueprint render.yaml. Сервис остаётся настроенным как:
Web Service;
Docker runtime;
Free plan;
регион Frankfurt;
проверка здоровья
/health;динамическая привязка к
PORTRender;конечная точка MCP на
/mcp;явный allowlist хостов из
RENDER_EXTERNAL_HOSTNAME.
Подробные шаги: docs/render-free-deploy.md.
Локальная настройка
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
python -m pytest -q
uvicorn app:app --reload --port 8080Локальные конечные точки:
Health:
http://localhost:8080/healthMCP:
http://localhost:8080/mcp
Всё ещё не реализовано
резолвер исторических версий законов;
полный резолвер цепочек поправок для конкретных норм;
автоматическое обнаружение всех документов Bundesgesetzblatt/Bundestag/Bundesrat;
поиск судебной практики;
комплексный поиск руководств BMF;
производственная аутентификация.
Граница безопасности DEV
Развёртывание Render Free остаётся намеренно неаутентифицированным для DEV-тестирования. Не публикуйте агента Copilot и не отправляйте конфиденциальные факты клиентов/дел через конечную точку.
Бесплатные Web Services Render могут выключаться после бездействия и не являются производственной целью.
Обновление 0.1 -> 0.2
Замените файлы репозитория этим пакетом и закоммитьте/запушьте в ветку, которую развёртывает Render.
Дождитесь, пока развёртывание Render станет Live.
Проверьте, что
/healthвозвращает версию0.2.0-dev.В Copilot Studio откройте существующую конфигурацию MCP-сервера
Legal Research DEи проверьте, чтоget_official_document_textдоступен/включён.Запустите тест извлечения поправок D1 и проверьте Activity Trace.
Подробную последовательность обновления/тестирования см. в docs/render-free-deploy.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
German federal statutes and ordinances (Bundesrecht) — search by title or official abbreviation…
1Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
XRechnung and ZUGFeRD e-invoicing (EN 16931): create, validate, check Leitweg-IDs, German VAT.
German federal and Land statutes plus court decisions for agents. Keyless, read-only, CC BY 4.0.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP 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.10MIT
- AlicenseAqualityAmaintenanceSearches and retrieves German federal legislation from NeuRIS, the official legal information portal, providing verifiable ELI identifiers and German citations.15248 PyPI4Apache 2.0
- AlicenseNot gradedqualityFmaintenanceProvides LLM-friendly access to German federal legislation via the NeuRIS API, enabling tool-based retrieval of laws, norms, and statutory text.18 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to current German federal law, supporting legislation search, provision retrieval, and citation handling.Apache 2.0