UK Legal Research MCP Server
uk-legal-mcp
영국 법률 조사를 위한 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/mcpMCP Inspector로 검사:
npx @modelcontextprotocol/inspector http://localhost:8000/mcp도구
판례법
도구 | 기능 |
| 영국 판결문 전문 검색. 법원, 판사, 당사자, 날짜 범위별 필터링. |
| 패턴과 일치하는 판결문 내 단락 찾기. 적중당 |
리소스 템플릿 (resources/read 또는 ResourcesAsTools로 생성된 read_resource 도구를 통해 읽기):
URI 템플릿 | 반환 값 |
| 메타데이터 헤더 (당사자, 판사, 인용). 약 1k 토큰. |
| 행당 단락 eId + 첫 줄. 약 4k 토큰. 단락을 찾으려면 이 경로를 탐색하세요. |
| 하위 단락을 포함한 단일 단락. 400~1700 토큰. |
업스트림: TNA Find Case Law (Atom/XML). 속도 제한: 1,000 요청/5분. 1시간 캐시됨.
법률
도구 | 기능 |
| legislation.gov.uk에서 의회 법률 및 법정 문서 검색. |
| 법률 목차 — 부, 장, 조, 별표. |
| 영토 범위, 시행 상태 및 버전 날짜가 포함된 특정 조항 검색. |
리소스 템플릿 (URI 주소 읽기를 선호하는 클라이언트를 위한 위 도구의 대안):
URI 템플릿 | 반환 값 |
| CLML XML 형식의 전체 법률/SI. |
| CLML XML 형식의 특정 조항. |
| 목차를 위한 평면 |
| YYYY-MM-DD 날짜에 대한 시점별 CLML. |
업스트림: legislation.gov.uk (CLML XML + Atom 피드). 24시간 캐시됨. CloudFront 437을 우회하기 위해 Chrome 가장(impersonation)을 사용하는 curl_cffi 사용; 2006년 회사법은 현재 간헐적으로 AWS WAF JS 챌린지에 걸립니다.
참고: 항상 extent 필드를 확인하세요. 조항이 잉글랜드와 웨일스에는 적용되지만 스코틀랜드나 북아일랜드에는 적용되지 않을 수 있습니다.
의회
도구 | 기능 |
| 정확한 구문으로 한사드(Hansard) 토론 기여 내용 검색. |
| 정책 주제에 대한 의회 반응 평가. 한사드를 검색한 후 LLM 샘플링을 사용하여 감정, 지지자, 반대자 및 우려 사항을 분류. |
| 이름으로 하원의원 또는 상원의원 조회. |
| 특정 의원의 한사드 기여 내용 검색 (주제별 필터링 가능). |
| 의원의 등록된 재정적 이해관계(기부금, 주식 보유 등) 확인. |
| 키워드로 영국 의회 청원 검색. |
업스트림: hansard-api.parliament.uk + members-api.parliament.uk + petition.parliament.uk. 캐시되지 않음 (실시간 데이터).
법안
도구 | 기능 |
| 키워드, 회기 또는 유형별로 현재 및 과거 의회 법안 검색. |
| 전체 법안 세부 정보 가져오기 — 단계, 후원자, 간행물. |
업스트림: bills-api.parliament.uk. 1시간 캐시됨.
투표
도구 | 기능 |
| 키워드 또는 날짜별로 하원 및 상원 분할 투표 기록 검색. |
| 전체 분할 투표 세부 정보 가져오기 — 투표 수, 각 의원의 투표 방식. |
업스트림: commonsvotes-api.parliament.uk + lordsvotes-api.parliament.uk. 24시간 캐시됨.
위원회
도구 | 기능 |
| 키워드로 의회 특별 위원회 검색. |
| 위원회 세부 정보 가져오기 — 구성원, 소위원회. |
| 위원회에 제출된 구두 및 서면 증거 검색. |
업스트림: committees-api.parliament.uk. 1시간 캐시됨.
인용
도구 | 기능 |
| 자유 텍스트에서 모든 OSCOLA 인용 추출. 표준 URL로 해결. LLM 샘플링을 통해 모호한 법원 코드를 명확히 함. |
| 단일 인용 문자열을 파싱하여 표준 URL로 해결. |
| TNA에서 판결문을 가져와 그 안의 모든 인용(판례, 법률, SI, EU 법)을 매핑. |
독립형. 외부 API 없음. 네트워크 의존성 없음 (판결문 XML을 가져오는 citations_network 제외).
지원되는 인용 형식:
형식 | 예시 |
중립 인용 |
|
법률 보고서 (권 번호 포함 여부) |
|
법률 조항 |
|
법정 문서 (SI) |
|
유지된 EU 법 |
|
HMRC
도구 | 기능 |
| 상품 또는 서비스에 대한 VAT 세율 조회. 2023년 가을 성명 기준 정적 테이블. |
| VRN에 대한 Making Tax Digital VAT 의무 상태 확인. HMRC OAuth 자격 증명 필요. |
| 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각 모듈은 네임스페이스 접두사(case_law_, legislation_ 등)와 함께 게이트웨이에 마운트된 독립형 FastMCP 인스턴스입니다. 모든 모듈은 게이트웨이의 수명 주기 컨텍스트를 통해 단일 httpx 클라이언트 풀을 공유합니다.
미들웨어 스택 (게이트웨이 수준):
미들웨어 | 목적 |
| 처리되지 않은 예외 포착 |
| 지속 시간 및 페이로드 크기가 포함된 JSON 로깅 |
| 도구별 타이밍 로그 |
| 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.ukDocker
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 -v35개의 모든 인용 테스트는 API 자격 증명 없이 오프라인으로 실행됩니다.
업스트림 API 및 라이선스
소스 | API | 라이선스 | 인증 |
TNA Find Case Law |
| 없음 | |
legislation.gov.uk |
| 없음 | |
UK Parliament Hansard |
| 없음 | |
UK Parliament Members |
| Open Parliament Licence | 없음 |
UK Parliament Petitions |
| Open Parliament Licence | 없음 |
UK Parliament Bills |
| Open Parliament Licence | 없음 |
UK Parliament Votes |
| Open Parliament Licence | 없음 |
UK Parliament Committees |
| Open Parliament Licence | 없음 |
HMRC |
| OGL / 상업적 조건 | OAuth 2.0 |
GOV.UK Search |
| OGL v3 | 없음 |
스택
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