Skip to main content
Glama
paulieb89

UK Legal Research MCP Server

uk-legal-mcp

SafeSkill 92/100 uk-legal-mcp MCP server

영국 법률 조사를 위한 Model Context Protocol 서버입니다. AI 어시스턴트를 단일 엔드포인트를 통해 판례법, 법률, 의회 토론, 법안, 투표, 위원회, OSCOLA 인용 파싱 및 HMRC 세무 데이터에 연결합니다.

8개 모듈에 걸친 24개의 도구. 단일 연결. 읽기 전용. 24개 도구 중 23개는 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"
    }
  }
}

그런 다음 시도해 보세요:

  • "자전거 사고에 관한 판례법 검색"

  • "2006년 회사법 제172조 가져오기"

  • "다음 텍스트의 인용문 파싱: The court applied Donoghue v Stevenson [1932] AC 562 and s.2 Occupiers' Liability Act 1957"

  • "공매도에 대해 의회에서 어떤 논의가 있나요?"

로컬에서 실행

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

MCP Inspector로 검사:

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

도구

판례법

도구

기능

case_law_search

영국 판결문 전문 검색. 법원, 판사, 당사자, 날짜 범위별 필터링.

case_law_grep_judgment

패턴과 일치하는 판결문 내 단락 찾기. 적중당 {eId, snippet, match} 반환.

리소스 템플릿 (resources/read 또는 ResourcesAsTools로 생성된 read_resource 도구를 통해 읽기):

URI 템플릿

반환 값

judgment://{slug*}/header

메타데이터 헤더 (당사자, 판사, 인용). 약 1k 토큰.

judgment://{slug*}/index

행당 단락 eId + 첫 줄. 약 4k 토큰. 단락을 찾으려면 이 경로를 탐색하세요.

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

하위 단락을 포함한 단일 단락. 400~1700 토큰.

업스트림: TNA Find Case Law (Atom/XML). 속도 제한: 1,000 요청/5분. 1시간 캐시됨.

법률

도구

기능

legislation_search

legislation.gov.uk에서 의회 법률 및 법정 문서 검색.

legislation_get_toc

법률 목차 — 부, 장, 조, 별표.

legislation_get_section

영토 범위, 시행 상태 및 버전 날짜가 포함된 특정 조항 검색.

리소스 템플릿 (URI 주소 읽기를 선호하는 클라이언트를 위한 위 도구의 대안):

URI 템플릿

반환 값

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

CLML XML 형식의 전체 법률/SI.

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

CLML XML 형식의 특정 조항.

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

목차를 위한 평면 id: title 라인.

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

YYYY-MM-DD 날짜에 대한 시점별 CLML.

업스트림: legislation.gov.uk (CLML XML + Atom 피드). 24시간 캐시됨. CloudFront 437을 우회하기 위해 Chrome 가장(impersonation)을 사용하는 curl_cffi 사용; 2006년 회사법은 현재 간헐적으로 AWS WAF JS 챌린지에 걸립니다.

참고: 항상 extent 필드를 확인하세요. 조항이 잉글랜드와 웨일스에는 적용되지만 스코틀랜드나 북아일랜드에는 적용되지 않을 수 있습니다.

의회

도구

기능

parliament_search_hansard

정확한 구문으로 한사드(Hansard) 토론 기여 내용 검색.

parliament_vibe_check

정책 주제에 대한 의회 반응 평가. 한사드를 검색한 후 LLM 샘플링을 사용하여 감정, 지지자, 반대자 및 우려 사항을 분류.

parliament_find_member

이름으로 하원의원 또는 상원의원 조회. member_debates에 사용할 의원 ID 반환.

parliament_member_debates

특정 의원의 한사드 기여 내용 검색 (주제별 필터링 가능).

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, EU 법)을 매핑.

독립형. 외부 API 없음. 네트워크 의존성 없음 (판결문 XML을 가져오는 citations_network 제외).

지원되는 인용 형식:

형식

예시

중립 인용

[2024] UKSC 12

법률 보고서 (권 번호 포함 여부)

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

법률 조항

s.47 Companies Act 2006

법정 문서 (SI)

SI 2018/1234

유지된 EU 법

Regulation (EU) 2016/679

HMRC

도구

기능

hmrc_get_vat_rate

상품 또는 서비스에 대한 VAT 세율 조회. 2023년 가을 성명 기준 정적 테이블.

hmrc_check_mtd_status

VRN에 대한 Making Tax Digital VAT 의무 상태 확인. HMRC OAuth 자격 증명 필요.

hmrc_search_guidance

HMRC 지침 문서를 위해 GOV.UK 검색.

hmrc_get_vat_ratehmrc_search_guidance는 자격 증명이 필요하지 않습니다. hmrc_check_mtd_statusHMRC_CLIENT_IDHMRC_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

각 모듈은 네임스페이스 접두사(case_law_, legislation_ 등)와 함께 게이트웨이에 마운트된 독립형 FastMCP 인스턴스입니다. 모든 모듈은 게이트웨이의 수명 주기 컨텍스트를 통해 단일 httpx 클라이언트 풀을 공유합니다.

미들웨어 스택 (게이트웨이 수준):

미들웨어

목적

ErrorHandlingMiddleware

처리되지 않은 예외 포착

StructuredLoggingMiddleware

지속 시간 및 페이로드 크기가 포함된 JSON 로깅

DetailedTimingMiddleware

도구별 타이밍 로그

ResponseLimitingMiddleware

80,000자 제한 (LegalDocML XML은 200k를 초과할 수 있음)

모듈별 캐싱: TTL이 포함된 ResponseCachingMiddleware — 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