Skip to main content
Glama
kheidkamp

legal-research-mcp

by kheidkamp

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;

  • динамическая привязка к PORT Render;

  • конечная точка 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/health

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

Всё ещё не реализовано

  • резолвер исторических версий законов;

  • полный резолвер цепочек поправок для конкретных норм;

  • автоматическое обнаружение всех документов Bundesgesetzblatt/Bundestag/Bundesrat;

  • поиск судебной практики;

  • комплексный поиск руководств BMF;

  • производственная аутентификация.

Граница безопасности DEV

Развёртывание Render Free остаётся намеренно неаутентифицированным для DEV-тестирования. Не публикуйте агента Copilot и не отправляйте конфиденциальные факты клиентов/дел через конечную точку.

Бесплатные Web Services Render могут выключаться после бездействия и не являются производственной целью.

Обновление 0.1 -> 0.2

  1. Замените файлы репозитория этим пакетом и закоммитьте/запушьте в ветку, которую развёртывает Render.

  2. Дождитесь, пока развёртывание Render станет Live.

  3. Проверьте, что /health возвращает версию 0.2.0-dev.

  4. В Copilot Studio откройте существующую конфигурацию MCP-сервера Legal Research DE и проверьте, что get_official_document_text доступен/включён.

  5. Запустите тест извлечения поправок D1 и проверьте Activity Trace.

Подробную последовательность обновления/тестирования см. в docs/render-free-deploy.md.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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.
    8
    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.
    14
    1
    Apache 2.0
  • 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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kheidkamp/legal-research-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server