법령·판례·헌재·조세심판·관세해석·공정위·노동위까지 17개 도메인을 Claude·Cursor·Windsurf·Zed·Claude.ai 웹에서 네이티브로 호출.
그리고 AI가 지어낸 가짜 조문·가짜 판례를 법제처 DB로 실시간 교차검증하는 verify_citations.
ChatGPT·Claude가 법률 답변을 쓰면서 "상법 제401조의2 제7항"이라고 적는다. 실제로는 제2항이 끝이다. verify_citations가 본문에서 조문 인용을 정규식으로 뽑고, 30자 lookback으로 법령명을 역추적하고, 법제처 API로 병렬 교차검증한 뒤 ✓ · ✗ · ⚠로 돌려준다.
v3.5.4에서 환각 탐지됐는데 "검증 성공"으로 오인되던 버그 수정. LLM이 실패 응답을 명확히 감지하도록 [NOT_FOUND] / [HALLUCINATION_DETECTED] 머신 파싱 마커 도입.
법제처 API가 `항번호`를 `"① "` 형태로 리턴하는데 기존 `parseInt(raw.replace(/[^\d]/g, ""))`가 유니코드 원숫자를 제거해 NaN. "근로기준법 제60조 제1항이 없다"고 오판정되던 버그를 `parseHangNumber()` 유틸로 수정.
"민법" 질의가 "난민법"으로 잘못 매칭되던 사례. `lib/law-search.ts` 공용 모듈로 추출해 chains·verify_citations가 같은 scoring 사용, 중복 제거 + display=100 사용해 짧은 법령명 누락 해결.
maskSensitiveUrl()로 API 키 포함 URL 로그 유출 차단, TRUST_PROXY 환경변수로 X-Forwarded-For 스푸핑 rate-limit 우회 방어.
v2는 API 하나당 도구 하나 — 89개 스키마. AI가 컨텍스트의 절반을 도구 목록에 썼다. v3는 `Dispatch Table + Domain Enum` 패턴으로 17개 결정례 도메인을 search_decisions(domain) + get_decision_text(domain) 2개로 접어넣었다. 커버리지 100% 유지, 컨텍스트 비용 110KB → 20KB.
판시사항·판결요지·주문은 규범 재사용이라 full, "이유" 전문은 사안별 사실관계라 축약 대상. compactBody(앞 800자 + 중략 + 뒤 400자), densifyLawRefs, densifyPrecedentRefs로 판례 응답 평균 −42% · 헌재 −80% · 행심 −82% · 종합 −74%.
| 도메인 | Before | After | 절감 |
|---|---|---|---|
| 판례 | 5,230 | 3,049 | −42% |
| 헌재 | 8,368 | 1,703 | −80% |
| 행심 | 8,429 | 1,491 | −82% |
| 종합 | 7,606 | 1,960 | −74% |
8개 체인이 법률 도메인의 실무 동선을 그대로 옮긴다. 시나리오 키워드(과태료·FTA·위임입법·타임라인·상위법 적합성)를 자동 감지해 관련 분석을 체인에 얹는다.
chain_full_researchchain_law_systemchain_action_basischain_dispute_prepchain_amendment_trackchain_ordinance_comparechain_procedure_detailchain_document_reviewv3.3.1에서 11 → 52종. 산안법·중처법·청탁금지법·공정거래법·하도급법·개보법·정보통신망법·특금법까지 자동 매핑. 데이터 추가만으로 기존 검색 경로가 자동 혜택.
"제38조" ↔ "003800". 사람의 언어와 기계의 언어 사이, 오래된 번역 문제를 도구 한 개로. parse_jo_code는 모든 체인 내부에서 재사용.
법률 별표·별지서식이 HWP로 배포되는 한국식 문제. kordoc v2.4 엔진을 내장해 표·텍스트를 Markdown으로 변환, get_annexes에서 바로 조회.
Fly.io OOM kill로 세션이 무효화되던 문제를 근본 해결. MCP 공식 stateless 패턴 + AsyncLocalStorage 키 격리. 재시작·스케일아웃·배포 모두 무손실.
법제처 Open API 키(무료, 1분)만 있으면 Claude Code, Claude.ai 웹, 데스크톱 앱, 로컬 설치, 터미널 CLI 어디서든 동일한 16개 도구. 기존 ?profile=lite 파라미터도 그대로 호환.
두 줄이면 끝. 설치 중 API 키를 자동으로 물어봅니다.
/plugin marketplace add chrisryugj/korean-law-mcp /plugin install korean-law@korean-law-marketplace
Claude Pro/Max/Team — 커스텀 커넥터에 URL 하나.
https://korean-law-mcp.fly.dev/mcp ?oc=YOUR_KEY
config에 url 한 줄 추가. SSE/STDIO 모두 지원.
"korean-law": {
"url": "https://korean-law-mcp.fly.dev/mcp?oc=..."
}
오프라인·보안이 필요하면 로컬 실행. 설치 마법사 포함.
npx korean-law-mcp setup
개발자라면 그냥 터미널에서.
npm i -g korean-law-mcp korean-law "민법 제1조"