🏛️ 한국 법률/판례 검색 MCP 서버
국가법령정보센터 Open API를 활용한 고성능 MCP (Model Context Protocol) 서버입니다.
AI 에이전트(Claude Desktop, Cursor 등)가 실시간으로 한국 법령, 판례, 행정규칙을 검색하고 분석할 수 있도록 합니다.
✨ 주요 기능
🔍 법령 검색
- 키워드 기반 법령 검색: 민법, 상법, 근로기준법 등 다양한 법령 검색
- 법령 상세 조회: 특정 법령의 전문(조문) 및 상세 정보 조회
- 법령 기본 정보: 소관부처, 공포일자, 시행일자, 개정 정보 포함
⚖️ 판례 검색
- 판례 키워드 검색: 손해배상, 계약, 부당해고 등 판례 검색
- 판례 상세 조회: 판결요지, 판시사항, 판례 전문 조회
- 법원 필터링: 대법원, 헌법재판소 등 법원별 필터링 지원
- 참조조문/판례: 관련 법령 및 참조 판례 정보 제공
📋 행정규칙 검색
- 행정규칙 검색: 각 부처의 행정규칙 검색
- 소관부처 정보: 제정일자, 시행일자 등 상세 정보
🚀 성능 최적화
- 전략적 캐싱: 법령/판례 데이터를 24시간 캐싱하여 API 호출 최소화
- 빠른 응답 속도: 캐시 기반 즉시 응답
- 안정적인 운영: 에러 핸들링 및 로깅 시스템
🎯 활용 사례
법률 전문가
- 계약서 검토: AI가 계약서를 분석하고 관련 법령 및 판례를 자동 참조
- 법률 자문: 특정 사안에 대한 관련 법령 및 판례를 즉시 조회
- 판례 연구: 유사 판례를 빠르게 검색하고 비교 분석
기업 법무팀
- 기업 컴플라이언스: 사업 관련 법령을 실시간 조회
- 노무 관리: 근로기준법 등 노동 관련 법령 및 판례 검색
- 소송 준비: 관련 판례 및 법령 자동 수집
스타트업/개발자
- 서비스 법률 검토: 개인정보보호법, 전자상거래법 등 관련 법령 확인
- 약관 작성: 관련 법령을 참조하여 약관 작성
- 법률 리스크 분석: AI가 서비스 기획서를 분석하고 관련 법률 리스크 파악
일반 사용자
- 법률 상담: AI 에이전트를 통한 기본적인 법률 정보 조회
- 권리 확인: 소비자 권리, 임차권 등 관련 법령 및 판례 검색
- 민원 준비: 행정심판, 소송 준비를 위한 법률 정보 수집
🛠️ 기술 스택
- MCP Framework: FastMCP
- Data Validation: Pydantic
- HTTP Client: Requests
- XML Parsing: xml.etree.ElementTree
- Caching: cachetools (24시간 TTL)
- Async Processing: asyncio
- Environment: Python-dotenv
📦 설치 및 설정
1) 의존성 설치
pip install -r requirements.txt
💡
uv를 사용하는 경우:uv sync
2) API 키 발급
국가법령정보센터 Open API 키를 발급받아야 합니다:
- 국가법령정보센터 Open API 사이트 방문
- 회원가입 및 로그인
- 공동활용 서비스 > Open API 메뉴에서 API 신청
- 승인 후 인증키(OC) 발급받기
📌 참고: API 키 발급은 보통 즉시 승인되며, 무료로 이용 가능합니다.
3) 환경 변수 설정
프로젝트 루트에 .env 파일을 생성하고 API 키를 설정합니다:
cp env.law.example .env
.env 파일 내용:
LAW_API_KEY=your_law_api_key_here
LOG_LEVEL=INFO
PORT=8096
4) 서버 실행
python -m src.law_main
또는 HTTP 서버로 실행:
python src/law_main.py
🐳 Docker 실행
Docker를 사용하여 간편하게 실행할 수 있습니다:
# 이미지 빌드
docker build -t korean-law-mcp:latest .
# 컨테이너 실행
docker run --rm \
-e LAW_API_KEY=your_law_api_key_here \
-p 8096:8096 \
korean-law-mcp:latest
🧰 사용 가능한 도구 (Tools)
1. health
- 설명: 서비스 상태 및 API 키 설정 확인
- 파라미터: 없음
- 반환: 서비스 상태 객체
2. search_law_tool
- 설명: 법령을 키워드로 검색
- 파라미터:
query(string, 필수): 검색할 법령 키워드 (예: '민법', '상법')page(integer, 선택): 페이지 번호 (기본값: 1)page_size(integer, 선택): 페이지당 결과 수 (기본값: 10, 최대: 50)
- 반환: 검색된 법령 목록 (법령명, 소관부처, 공포일자, 시행일자 등)
예시 응답:
{
"total": 152,
"page": 1,
"page_size": 10,
"laws": [
{
"법령ID": "001122",
"법령명": "민법",
"법령구분": "법률",
"소관부처": "법무부",
"공포일자": "19580222",
"시행일자": "19600101"
}
]
}
3. get_law_detail_tool
- 설명: 특정 법령의 상세 정보 및 전문(조문) 조회
- 파라미터:
law_id(string, 필수): 법령 ID (법령 검색 결과에서 얻은 법령ID)
- 반환: 법령의 상세 정보와 모든 조문 내용
예시 응답:
{
"법령ID": "001122",
"법령명": "민법",
"법령구분": "법률",
"소관부처": "법무부",
"공포일자": "19580222",
"시행일자": "19600101",
"조문수": 1118,
"조문": [
{
"조문번호": "제1조",
"조문제목": "법원",
"조문내용": "민사에 관하여 법률에 규정이 없으면..."
}
]
}
4. search_precedent_tool
- 설명: 판례를 키워드로 검색
- 파라미터:
query(string, 필수): 검색할 판례 키워드 (예: '손해배상', '계약')page(integer, 선택): 페이지 번호 (기본값: 1)page_size(integer, 선택): 페이지당 결과 수 (기본값: 10, 최대: 50)court(string, 선택): 법원 구분 (예: '대법원', '헌법재판소')
- 반환: 검색된 판례 목록
예시 응답:
{
"total": 2453,
"page": 1,
"page_size": 10,
"precedents": [
{
"판례일련번호": "202012345",
"사건명": "손해배상(기)",
"사건번호": "2020다123456",
"선고일자": "20201015",
"선고": "파기환송",
"법원명": "대법원",
"사건종류명": "민사",
"판시사항": "...",
"판결요지": "..."
}
]
}
5. get_precedent_detail_tool
- 설명: 특정 판례의 상세 정보 조회
- 파라미터:
precedent_id(string, 필수): 판례 일련번호
- 반환: 판례의 상세 정보 (판결요지, 참조조문, 판례 전문 등)
예시 응답:
{
"판례일련번호": "202012345",
"사건명": "손해배상(기)",
"사건번호": "2020다123456",
"선고일자": "20201015",
"선고": "파기환송",
"법원명": "대법원",
"판시사항": "...",
"판결요지": "...",
"참조조문": "민법 제750조, 제751조",
"참조판례": "대법원 2019다234567...",
"판례내용": "【전문】..."
}
6. search_administrative_rule_tool
- 설명: 행정규칙을 키워드로 검색
- 파라미터:
query(string, 필수): 검색할 행정규칙 키워드page(integer, 선택): 페이지 번호 (기본값: 1)page_size(integer, 선택): 페이지당 결과 수 (기본값: 10, 최대: 50)
- 반환: 검색된 행정규칙 목록
💡 사용 예시
Claude Desktop에서 사용
- Claude Desktop 설정 파일 (
claude_desktop_config.json) 수정:
{
"mcpServers": {
"korean-law": {
"command": "python",
"args": ["-m", "src.law_main"],
"env": {
"LAW_API_KEY": "your_api_key_here"
}
}
}
}
-
Claude Desktop 재시작
-
Claude에게 질문:
- "민법 제750조에 대해 알려줘"
- "부당해고 관련 판례 찾아줘"
- "개인정보보호법 검색해줘"
Cursor에서 사용
Cursor의 MCP 설정에서 위와 동일하게 추가하면 됩니다.
📁 프로젝트 구조
korean-law-mcp/
├── src/
│ ├── __init__.py
│ ├── law_main.py # MCP 서버 메인 파일
│ └── law_tools.py # 법률 API 호출 도구
├── .env # 환경 변수 파일 (API 키 등)
├── env.law.example # 환경 변수 예시 파일
├── requirements.txt # Python 의존성
├── README_LAW.md # 프로젝트 문서 (이 파일)
└── pyproject.toml # 프로젝트 설정
🚀 로드맵
- 법령 개정 이력 조회
- 법령/판례 전문 PDF 다운로드
- 자연어 기반 법령 해석
- 법령 비교 분석 기능
- 판례 유사도 분석
- 법률 용어 사전
💰 비즈니스 모델
이 MCP 서버는 판매용 제품으로 개발되었습니다:
타겟 고객
- 🏢 법률사무소/로펌: 법률 리서치 자동화
- 🏭 기업 법무팀: 컴플라이언스 관리
- 🚀 스타트업: 법률 리스크 분석
- 🎓 법학 연구자: 판례 연구 도구
가격 책정 (참고)
- Basic: 30만원 (기본 검색 기능)
- Pro: 100만원 (AI 분석 기능 추가)
- Enterprise: 200만원+ (커스터마이징, 기술 지원)
차별화 포인트
- ✅ 국가 공식 데이터 활용
- ✅ AI 에이전트 직접 통합
- ✅ 실시간 최신 법령/판례 조회
- ✅ 한국어 완벽 지원
- ✅ 복잡한 API 처리 자동화
⚠️ 저장소 이전 안내 (Repository Moved)
본 프로젝트는 더 확장된 구조와 명확한 목적을 반영하여
아래 저장소로 이전 및 계속 개발되고 있습니다.
👉 LexGuard MCP
https://github.com/SeoNaRu/lexguard-mcp
이 저장소(korean-law-mcp)는 더 이상 유지보수되지 않습니다.
최신 기능 및 업데이트는 새로운 저장소를 이용해주세요.
