Skip to main content
Glama
paulieb89

UK Legal Research MCP Server

uk-legal-mcp

SafeSkill 92/100 uk-legal-mcp MCP server

Сервер протокола контекста модели (MCP) для юридических исследований в Великобритании. Подключает ИИ-ассистентов к прецедентному праву, законодательству, парламентским дебатам, законопроектам, голосованиям, комитетам, парсингу цитат OSCOLA и налоговым данным HMRC через единую конечную точку.

24 инструмента в 8 модулях. Одно подключение. Только для чтения. Для 23 из 24 инструментов не требуются ключи API.

MCP Client (Claude, Cursor, etc.)
        |
        v
  uk-legal-mcp gateway  (Streamable HTTP)
  +----------------------------------------------------+
  |                                                    |
  |  case_law      TNA Find Case Law API               |
  |  legislation   legislation.gov.uk Atom feed         |
  |  parliament    Hansard API + Members API            |
  |  bills         Parliamentary Bills API              |
  |  votes         Commons + Lords division records     |
  |  committees    Select committees + evidence         |
  |  citations     OSCOLA regex parser (no network)     |
  |  hmrc          HMRC sandbox/prod + GOV.UK search    |
  |                                                    |
  +----------------------------------------------------+

Быстрый старт

Подключение к размещенному серверу

Добавьте в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "uk-legal": {
      "type": "streamable-http",
      "url": "https://uk-legal-mcp.fly.dev/mcp"
    }
  }
}

Затем попробуйте:

  • "Найди прецедентное право о велосипедных авариях"

  • "Получи раздел 172 Закона о компаниях 2006 года"

  • "Разбери цитаты в: Суд применил Donoghue v Stevenson [1932] AC 562 и s.2 Закона об ответственности владельцев помещений 1957 года"

  • "Что парламент говорит о коротких продажах?"

Запуск локально

pip install -e .
python -m src.gateway
# Server starts on http://localhost:8000/mcp

Проверка с помощью инспектора MCP:

npx @modelcontextprotocol/inspector http://localhost:8000/mcp

Инструменты

Прецедентное право

Инструмент

Что он делает

case_law_search

Полнотекстовый поиск по судебным решениям Великобритании. Фильтрация по суду, судье, стороне, диапазону дат.

case_law_grep_judgment

Поиск абзацев в судебном решении, соответствующих шаблону. Возвращает {eId, snippet, match} для каждого совпадения.

Шаблоны ресурсов (чтение через resources/read или инструмент read_resource, созданный ResourcesAsTools):

Шаблон URI

Возвращает

judgment://{slug*}/header

Заголовок метаданных (стороны, судьи, цитирование). ~1 тыс. токенов.

judgment://{slug*}/index

eId абзаца + первая строка для каждой строки. ~4 тыс. токенов. Используйте для поиска абзацев.

judgment://{slug*}/para/{eId}

Отдельный абзац, включая его подпункты. 400–1700 токенов.

Источник: TNA Find Case Law (Atom/XML). Лимит запросов: 1000 запросов/5 мин. Кэширование 1 час.

Законодательство

Инструмент

Что он делает

legislation_search

Поиск Актов Парламента и Статутных инструментов на legislation.gov.uk.

legislation_get_toc

Оглавление Акта — части, главы, разделы, приложения.

legislation_get_section

Получение конкретного раздела с указанием территориального действия, статуса вступления в силу и даты версии.

Шаблоны ресурсов (альтернатива инструментам выше для клиентов, предпочитающих чтение по URI):

Шаблон URI

Возвращает

legislation://{type}/{year}/{number}

Полный Акт/SI в формате CLML XML.

legislation://{type}/{year}/{number}/section/{section}

Конкретный раздел в формате CLML XML.

legislation://{type}/{year}/{number}/toc

Плоские строки id: title для оглавления.

legislation://{type}/{year}/{number}/{date}

CLML на определенный момент времени для даты YYYY-MM-DD.

Источник: legislation.gov.uk (CLML XML + лента Atom). Кэширование 24 часа. Использует curl_cffi с имитацией Chrome для обхода CloudFront 437; Закон о компаниях 2006 года периодически вызывает проверку AWS WAF JS.

Примечание: Всегда проверяйте поле extent. Раздел может применяться к Англии и Уэльсу, но не к Шотландии или Северной Ирландии.

Парламент

Инструмент

Что он делает

parliament_search_hansard

Поиск вкладов в дебаты Hansard по точной фразе.

parliament_vibe_check

Оценка парламентского восприятия темы политики. Ищет в Hansard, затем использует выборку LLM для классификации настроений, сторонников, противников и опасений.

parliament_find_member

Поиск депутата или лорда по имени. Возвращает ID члена для использования с member_debates.

parliament_member_debates

Получение вкладов конкретного члена в Hansard, опционально с фильтрацией по теме.

parliament_member_interests

Получение зарегистрированных финансовых интересов члена (пожертвования, владение акциями и т.д.).

parliament_search_petitions

Поиск петиций в Парламент Великобритании по ключевым словам.

Источник: hansard-api.parliament.uk + members-api.parliament.uk + petition.parliament.uk. Не кэшируется (живые данные).

Законопроекты

Инструмент

Что он делает

bills_search_bills

Поиск текущих и исторических парламентских законопроектов по ключевому слову, сессии или типу.

bills_get_bill

Получение полной информации о законопроекте — стадии, спонсоры, публикации.

Источник: bills-api.parliament.uk. Кэширование 1 час.

Голосования

Инструмент

Что он делает

votes_search_divisions

Поиск записей о голосованиях в Палате общин и Палате лордов по ключевому слову или дате.

votes_get_division

Получение полной информации о голосовании — подсчет голосов, как проголосовал каждый член.

Источник: commonsvotes-api.parliament.uk + lordsvotes-api.parliament.uk. Кэширование 24 часа.

Комитеты

Инструмент

Что он делает

committees_search_committees

Поиск парламентских специальных комитетов по ключевому слову.

committees_get_committee

Получение информации о комитете — состав, подкомитеты.

committees_search_evidence

Поиск устных и письменных доказательств, представленных в комитеты.

Источник: committees-api.parliament.uk. Кэширование 1 час.

Цитаты

Инструмент

Что он делает

citations_parse

Извлечение всех цитат OSCOLA из свободного текста. Разрешение в канонические URL. Разрешение неоднозначности кодов судов через выборку LLM.

citations_resolve

Парсинг и разрешение одной строки цитирования в канонический URL.

citations_network

Получение судебного решения из TNA и отображение каждой цитаты в нем — дела, законодательство, SI, право ЕС.

Автономный. Нет внешнего API. Нулевая сетевая зависимость (кроме citations_network, который получает XML судебного решения).

Поддерживаемые форматы цитирования:

Формат

Пример

Нейтральное цитирование

[2024] UKSC 12

Юридический отчет (с томом или без)

[2024] 1 WLR 100, [1932] AC 562

Раздел законодательства

s.47 Companies Act 2006

Статутный инструмент

SI 2018/1234

Сохраненное право ЕС

Regulation (EU) 2016/679

HMRC

Инструмент

Что он делает

hmrc_get_vat_rate

Поиск ставки НДС для любого товара или услуги. Статическая таблица актуальна на момент Осеннего заявления 2023 года.

hmrc_check_mtd_status

Проверка статуса мандата Making Tax Digital VAT для VRN. Требуются учетные данные OAuth HMRC.

hmrc_search_guidance

Поиск руководств HMRC на GOV.UK.

hmrc_get_vat_rate и hmrc_search_guidance не требуют учетных данных. hmrc_check_mtd_status требует HMRC_CLIENT_ID и HMRC_CLIENT_SECRET — зарегистрируйтесь на developer.service.hmrc.gov.uk. По умолчанию используется песочница; установите HMRC_API_BASE=https://api.service.hmrc.gov.uk для продакшена.


Архитектура

src/
  gateway.py            FastMCP gateway — mounts all modules, applies middleware
  deps.py               Shared httpx clients (lifespan-managed) + error formatting
  modules/
    case_law/           TNA Find Case Law (Atom/XML parsing)
    legislation/        legislation.gov.uk (CLML XML + Atom feed)
    parliament/         Hansard API + Members API + Petitions (JSON)
    bills/              Parliamentary Bills API (JSON)
    votes/              Commons + Lords division records (JSON)
    committees/         Select committees + evidence (JSON)
    citations/          OSCOLA regex engine (compiled once, lru_cache)
    hmrc/               HMRC OAuth + GOV.UK search (JSON)
tests/
  test_citations.py     35 unit tests — regex patterns, resolution, disambiguation

Каждый модуль — это отдельный экземпляр FastMCP, подключенный к шлюзу с префиксом пространства имен (case_law_, legislation_ и т.д.). Все модули используют общий пул клиентов httpx через контекст жизненного цикла шлюза.

Стек промежуточного ПО (уровень шлюза):

Промежуточное ПО

Цель

ErrorHandlingMiddleware

Перехват необработанных исключений

StructuredLoggingMiddleware

JSON-логирование с длительностью и размером полезной нагрузки

DetailedTimingMiddleware

Логи времени выполнения для каждого инструмента

ResponseLimitingMiddleware

Ограничение в 80 000 символов (LegalDocML XML может превышать 200 тыс.)

Кэширование для каждого модуля: ResponseCachingMiddleware с TTL — case_law (1 час), legislation (24 часа), bills (1 час), votes (24 часа), committees (1 час), hmrc (90 дней). Парламент и цитаты не кэшируются.


Развертывание

Fly.io

fly auth login
fly launch --name uk-legal-mcp --region lhr
fly deploy

Опциональные секреты:

fly secrets set HMRC_CLIENT_ID=your_id HMRC_CLIENT_SECRET=your_secret
# For production HMRC (default is sandbox):
fly secrets set HMRC_API_BASE=https://api.service.hmrc.gov.uk

Docker

docker build -t uk-legal-mcp .
docker run -p 8000:8000 uk-legal-mcp

Тестирование

pip install -e '.[test]'  # or: pip install pytest
pytest tests/test_citations.py -v

Все 35 тестов цитирования выполняются в автономном режиме без учетных данных API.


Исходные API и лицензии

Источник

API

Лицензия

Авторизация

TNA Find Case Law

caselaw.nationalarchives.gov.uk

Open Justice Licence

Нет

legislation.gov.uk

legislation.gov.uk

OGL v3

Нет

UK Parliament Hansard

hansard-api.parliament.uk

Open Parliament Licence

Нет

UK Parliament Members

members-api.parliament.uk

Open Parliament Licence

Нет

UK Parliament Petitions

petition.parliament.uk

Open Parliament Licence

Нет

UK Parliament Bills

bills-api.parliament.uk

Open Parliament Licence

Нет

UK Parliament Votes

commonsvotes-api.parliament.uk

Open Parliament Licence

Нет

UK Parliament Committees

committees-api.parliament.uk

Open Parliament Licence

Нет

HMRC

test-api.service.hmrc.gov.uk

OGL / коммерческие условия

OAuth 2.0

GOV.UK Search

www.gov.uk/api/search.json

OGL v3

Нет


Стек

  • Python 3.10+

  • FastMCP v3 (потоковый транспорт HTTP)

  • httpx (асинхронный HTTP с пулом соединений)

  • lxml (парсинг LegalDocML и CLML XML)

  • Pydantic v2 (валидация ввода, сериализация вывода)

  • Fly.io (регион Лондон, авто-остановка/запуск)

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/paulieb89/uk-legal-mcp'

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