by chrisryugj
법제처 국가법령정보를 LLM에서 바로 조회하는 MCP 서버. 법령·판례·조례 검색과 인용 검증 | MCP server for Korean law — search statutes, precedents, and ordinances, and verify citations
# Add to your Claude Code skills
git clone https://github.com/chrisryugj/korean-law-mcpGuides for using mcp servers skills like korean-law-mcp.
Last scanned: 4/27/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@hono/node-server: @hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@xmldom/xmldom: xmldom: Uncontrolled recursion in XML serialization leads to DoS",
"severity": "high"
},
{
"type": "npm-audit",
"message": "express-rate-limit: express-rate-limit: IPv4-mapped IPv6 addresses bypass per-client rate limiting on servers with dual-stack network",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono Vulnerable to Cookie Attribute Injection via Unsanitized domain and path in setCookie()",
"severity": "high"
},
{
"type": "npm-audit",
"message": "path-to-regexp: path-to-regexp vulnerable to Denial of Service via sequential optional groups",
"severity": "high"
}
],
"status": "WARNING",
"scannedAt": "2026-04-27T06:27:56.636Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}korean-law-mcp is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by chrisryugj. 법제처 국가법령정보를 LLM에서 바로 조회하는 MCP 서버. 법령·판례·조례 검색과 인용 검증 | MCP server for Korean law — search statutes, precedents, and ordinances, and verify citations. It has 2,489 GitHub stars.
korean-law-mcp returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/chrisryugj/korean-law-mcp" and add it to your Claude Code skills directory (see the Installation section above).
korean-law-mcp is primarily written in TypeScript. It is open-source under chrisryugj on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh korean-law-mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
법제처 42개 API를 10개 도구로. 법령, 판례, 행정규칙, 자치법규, 조약, 해석례(국세청 포함) + LLM 환각 방지 인용 검증(법령·판례, 실존+내용) + 조문 영향 그래프 + 시점 비교 자동 diff + 이럴 땐 이렇게 — 5단계 안내 + 판례 생사 확인(Citator) + 행위시법 판단 + 조례 정비 레이더 + 폐지 법령 후속 규정 안내를 AI 어시스턴트나 터미널에서 바로 사용.
법제처 Open API 기반 MCP 서버 + CLI. Claude Desktop, Cursor, Windsurf, Zed, Claude.ai 등에서 바로 사용 가능.
▶ 클릭하면 유튜브에서 재생됩니다.
| Claude에 연결하기 | ChatGPT에 연결하기 |
|---|---|
![]() |
![]() |
법률 자문 3축(법적 정합성·토큰 효율·응답 성능)을 실측해 등록 이슈 62건(#88~#149)을 한 번에 해결한 배치(#150, @humdrum00001010)와, 머지 전 도메인별 리뷰에서 찾은 결함 31건의 후속 수리. 테스트 196 → 701.
자료가 있는데 "없다"고 답하던 경로를 막았다. 이 서버에서 가장 나쁜 실패는 느린 게 아니라 실재하는 법령·판례를 부존재로 단정하는 것이다.
[NOT_FOUND]로 단정하던 HTML 폴백 경로 차단 — 이제 기구 고장과 자료 부존재를 구분한다응답이 멈추거나 끊기지 않는다.
MCP_CHAIN_DEADLINE_MS) — 만료되면 받은 갈래까지 조립해 부분 결과를 돌려주고 못 받은 자리는 마커로 남긴다. 업스트림이 느릴 때 MCP 클라이언트 타임아웃(60초)에 걸려 통째로 날리던 것이 사라졌다인용 검증이 더 정확해졌다.
verify_citations가 법령+판례 2축으로 확장 — 실존 불가와 미확인을 구분해 표기한다impact_map이 조번호에 더해 법령명까지 대조 — 형법 제1조 질의에 군형법 제1조가 섞이던 것 차단. 판정이 애매하면 버리지 않고 보류한다(위헌심판의 "구 OO법" 인용 포함)cite_check가 판시사항을 배열·객체 형태로 받아도 읽는다(종전에는 조용히 실패)별표·검색. 100건 창 밖의 별표에 도달(도로교통법 시행규칙 263건 중 별표28 본문 확인), 별표 1의2를 별표 1로 조용히 바꿔 주던 오선택 차단, discover_tools 응답 65% 감축(정답 잔존 10/10).
사용자 가시 변경 2건: 날짜 표기가
2024.1.5.→2024.01.05로 통일(빈 시행일은N/A),discover_tools응답이 포인터·랭킹 형식으로 바뀌었다.
한 번의 요청이 업스트림 호출 수백 건으로 증폭되거나, 클라이언트가 끊은 뒤에도 서버가 계속 일하던 구조를 정리했다.
MCP_MAX_UPSTREAM_REQUESTS 기본 48)exports 대상 부재를 게시 전에 차단⚠️ Breaking: HTTP 바인드 기본값이
0.0.0.0→127.0.0.1,TRUST_PROXY기본값이1→false(허용값도 1~10 정수만),get_batch_articles입력 상한(법령 20개·법령당 조문 50개·요청당 100개). 자세한 마이그레이션은 CHANGELOG 참조.
폐지된 법령명으로 검색하면 0건만 돌아오던 것을, 연혁을 추적해 폐지 사유와 후속 통합 규정을 안내하도록 바꿨다. 법령·행정규칙 양쪽 모두 지원한다. "지금은 없는 법"을 묻는 질문이 막다른 길로 끝나지 않는다.
법제처 키 없이 공개 서버(mcp.gomdori.app/law)를 쓰는 사용자가 429를 반복해서 맞던 문제. 서버 키 폴백 쿼터는 무키 사용자 전원이 공유하는 전역 한도인데, 고정창(fixed window) 방식이라 창 초반 몇 명이 소진하면 나머지 사용자가 남은 창 내내 차단됐다. 실측(2026-08-12 프로덕션)에서 무키 요청 3건 중 2건이 즉시 429였다.
src/lib/rate-limit.ts): 연속 리필이라 소진 후에도 몇 초 뒤 다시 통과한다. 평균 처리율은 그대로 두고 버스트만 흡수 — 한 대화 턴에 도구를 여러 번 부르는 MCP 사용 패턴에 맞다Retry-After 헤더 + 대기 초 안내: 429 본문이 retry in Ns를 포함하고, IP 한도 초과 응답도 JSON-RPC 형식으로 통일(기존 {error} 평문은 MCP 클라이언트가 파싱하지 못했다)FALLBACK_DAILY_CAP 신설: 분당 한도를 풀어도 하루 총량은 묶어 서버 키의 법제처 quota를 보호. 0이면 비활성(기본)30 → 120으로 완화하고 일일 캡 43,200(종전 분당 한도의 24시간 이론 총량)을 걸었다 — 총량은 유지, 버스트만 4배 완화자체 법제처 키를 헤더(apikey)로 넘기는 사용자는 이 게이트를 타지 않는다(무료 발급: https://open.law.go.kr).
verify_citations를 환각 게이트로 파이프라인에 걸어 쓸 때 가장 위험한 실패는 "검증 실패"가 아니라 검증 미가동이다. 법령명을 못 뽑으면 조문 실존 검증에 진입조차 못 하는데 출력은 경고(⚠)로만 보여서, 같은 텍스트에 없는 조문이 섞여 있어도 ✗가 나오지 않는다. 사용자에겐 "통과"로 읽힌다. 표기 3종을 실사용 제보로 확인해 막았다.
「노인장기요양보험법」 제38조제1항 및 같은 법 시행규칙 제30조
before ⚠ 0 실존 / 2 확인필요 — '119긴급신고의 관리 및 운영에 관한 법률 시행규칙'으로만 매칭
after ✓ 노인장기요양보험법 제38조(재가 및 시설 급여비용의 청구 및 지급 등) 제1항 실존
✓ 노인장기요양보험법 시행규칙 제30조(장기요양급여비용의 청구 등) 실존
└ 같은 텍스트의 제999조 → ✗ NOT_FOUND (존재 범위: 제1조~제44조) — 환각 게이트 가동
「법령명」 제N조에서 추출 실패 (#69, @BW-YU): LAW_NAME_REGEX가 $ 앵커로 법령명 종단을 찾는데 표준 인용 표기의 닫는 낫표가 lookback 끝에 남아 앵커가 안 걸렸다(후행 공백만 제거하고 있었음)ㆍ(U+318D)인데 실무 문서·판결문·LLM 출력은 라틴 중점 ·(U+00B7)가 보통이라, 표기만 다른 같은 법이 불일치로 떨어졌다. ·ㆍ‧•・ 5종 흡수 — 무관 법령 차단(민법→난민법)은 유지같은 법 시행규칙 조응 미해소 (#70, @gonnarun): 「A법」 제N조 및 같은 법 시행규칙 제M조 는 법제처 조문·관공서 서식의 표준 표기다. ① 후보 축약이 접미사 단독 후보(시행규칙)를 만들어 무관 법령을 물어오고 ② 선행 법령명이 승계되지 않았다. 직전 법령명을 승계하되 선행 법령명이 없거나 빈 줄로 문단이 바뀌면 승계하지 않는다 — 무관 법령을 근거로 판정하는 게 더 나쁜 오답이다. 후보가 0개면 검색을 시도하지 않고 ⚠ 법령명 불명확으로 떨어진다(검색 0건을 ✗ NOT_FOUND로 낙인하면 '법령명 미상'이 '환각'으로 오보된다)행위시법 판단·연혁 파싱·검색 리졸버·재시도·폐지 법령 처리 정확도 개선.
applicable_law가 잘못된 버전을 "기준일 시행 중"으로 특정하던 것findLaws 기본 조회 20이 관련도 정렬을 굶김 (#66): 정확매칭이 앞 20건에 없어 무관 부분매칭 1위를 신뢰하던 문제 → 100건 + 무관 1위 차단 가드⌛ REPEALED로 분리 보고(존재≠생존)ordinance_radar)"상위법 바뀌었는데, 우리 조례는 아직 그대로 아닌가?" — 조례 담당 공무원이 매년 반복하는 상위법 개정 추적을 한 번의 호출로.
korean-law "광진구 주차장 조례" → ordinance_radar(ordinanceName="...")
📡 조례 정비 레이더
조례: 서울특별시 광진구 주차장 설치 및 관리 조례 (시행 20260227)
근거 상위법령 3건 대조:
⚠️ 주차장법 — 현행 시행 20260603 (조례보다 약 4개월 뒤 개정 → 정비 검토 대상)
✅ 주차장법 시행령 — 현행 시행 20250817 (조례 시행 시점까지 반영)
⚠️ 주차장법 시행규칙 — 현행 시행 20260331 (조례보다 약 1개월 뒤 개정 → 정비 검토 대상)
search_law 오법령 반환 차단 — 「인공지능 발전과 신뢰 기반 조성 등에 관한 기본법」의 통칭 "인공지능법"이 정식 제명의 부분문자열이 아니라 검색 0건 → 확장쿼리("AI법")에 법제처가 검색어를 무시한 무관 법령 50건을 반환하던 문제. 약칭 등록 + hasRelatedHit 가드(쿼리와 포함관계인 결과가 없으면 채택하지 않음)verify_citations가 수식어 앞 법령명("절도죄는 형법 제329조…")에서 PARTIAL_VERIFIED로 저하돼 환각을 놓치던 문제 수정 (#55) + hono 보안 패치(HIGH 5건 해소, #54)legal_research가 scenario 값을 task에 잘못 받아도 재배치해 툴콜 실패 제거 + ordinance_radar query 별칭 추가 (PlayMCP 심사 피드백)get_ordinance id 별칭 수용 + get_article_history 날짜 미지정 시 전체기간 자동적용destructiveHint 추가, 한글 title 제거search_law 자치법규 자동 폴백 — 조례·지역명 쿼리 0건 시 search_ordinance 자동 시도MCP_MAX_BATCH_CALLS) + graceful shutdown idle 연결 정리(clean exit) + get_article_history lawName 정확매칭 우선(가나다순 오매칭 방지)verify_citations 내용 검증: 조문 실존 확인에 더해, 민법 제750조(계약해제)처럼 존재하는 조문에 엉뚱한 제목을 붙인 내용 환각을 [CONTENT_MISMATCH]로 탐지. 기존엔 제750조만 실존하면 통과했으나, 이제 인용한 조문 제목이 실제와 일치하는지 대조합니다(LexDiff citation-content-matcher 이식 — 정규화 후 공통 substring + 문자 bigram Jaccard). legal_analysis(mode=verify_citations)에도 동일 적용location.assign JS 리다이렉트 페이지를 반환할 때, 난독화 URL을 파싱해 토큰 URL로 자동 우회(최대 3홉, 토큰 URL 404 시 원본 재시도). 로컬/등록 IP에선 no-op — Referer 주입(v4.0.9)으로도 안 뚫리는 클라우드 환경의 방어층search_law가 시행예정(target=eflaw) 보조검색을 수행해 결과에 병기합니다.
zod를 ^4로 고정 — 신규 설치가 zod 3.x를 해석해 listTools 첫 호출에서 z.toJSONSchema is not a function으로 크래시하던 문제 해결get_annexes 행정규칙 별표/서식 조회 복구 — 응답 키 admrulbyl 우선 파싱 + "...시행세칙" 자동 판별 + 동일 bylSeq 별표/서식 충돌 분리 (#50/#49/#51)required 버그 수정 — .default() 필드(legal_research.task·search_law.display)가 필수 입력으로 노출되던 문제(io:"input" 명시) + legal_analysis 비용 옵션 패스스루 + 비호환 scenario 경고 노트MCP 클라이언트가 매 세션 읽는 도구 목록(ListTools)을 ~15.1KB → ~7.2KB로 줄였습니다.
chain_* 8개 → legal_research 하나로 (task 파라미터: full_research·law_system·action_basis·dispute_prep·amendment_track·ordinance_compare·procedure_detail·document_review)verify_citations·cite_check·applicable_law·impact_map) → legal_analysis 하나로 (mode 파라미터)execute_tool 경유 모두 그대로 동작. 광고 목록에서만 빠짐"이 판례 아직 유효한가?" + "사건 시점엔 어떤 법이 적용되나?" — 법률 실무에서 가장 위험한 두 실수를 잡는다.
cite_check — 판례 생사 확인 (한국형 Shepard's Citator)"2007다27670 아직 유효해?"
→ 그 사건번호를 인용한 후속 판례를 본문검색으로 역추적 + 전원합의체 후속 판결 본문 정밀 스캔 → 변경·폐기 선언 감지:
📊 판정: ❌ 변경·폐기 신호 감지 — 2018다248626(판례 변경 선언, 저촉 범위 변경)
맥락: "…2008년 전원합의체 판결은 이 판결의 견해와 배치되는 범위에서 변경하기로 한다…"
판결문이 사건번호 대신 "(이하 '2008년 전원합의체 판결'이라 한다)" 별칭으로