小马的 AI 工具集

法律检索 MCP

把韩国法制处 42 个法律 API 封成 9 个 MCP 工具,做法令/判例检索与引用校验

法律检索 MCP
类型 MCP 2,362 星标 更新 2026-07-31 许可 MIT 原仓库 主页

法制处 42个API整合为10个工具。 法令、判例、行政规则、自治法规、条约、解释例(包括国税厅)+ LLM 幻觉防止引用验证(存在+内容) + 条款影响图谱 + 时间点对比自动 diff + 这种情况下这样做 — 5步指南 + 判例效力确认(Citator) + 行为时法判断 + 条例整顿雷达,可在AI助手或终端中直接使用。

npm version MCP 1.27 License: MIT

JocoHunt 每周第一 Top 1 优胜者

基于法制处 Open API 的 MCP 服务器 + CLI。可在 Claude Desktop, Cursor, Windsurf, Zed, Claude.ai 等中直接使用。

English

国家法令信息 MCP 使用指南 — 观看视频

▶ 点击即可在 YouTube 上播放。

连接到AI

连接到 Claude连接到 ChatGPT
将法令MCP连接到Claude将法令MCP连接到GPT

v4.9.0 — 解决引用验证中被悄悄跳过的3种标记问题 (当前)

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 末尾,导致锚点未生效(之前仅去除了尾部空格)
  • 中间点标记差异 (#69, @BW-YU): 法制处正式名称使用韩文中间点 (U+318D),但实务文档、判决书、LLM输出通常使用拉丁中点 ·(U+00B7),导致仅因标记不同而被判定为不一致。已吸收 ·ㆍ‧•・ 5种变体 — 保留无关法令阻断(민법난민법)功能
  • 같은 법 시행규칙 对应未解析 (#70, @gonnarun): 「A法」第N条及같은 법施行规则第M条是法制处条款、公文书格式的标准标记。① 候选缩写产生后缀独立候选(施行规则),导致查询无关法令 ② 先行法令名称未继承。现已继承前一法令名称,但若无先行法令名称或段落通过空行分隔,则不继承 — 基于无关法令进行判断是更糟糕的错误答案。候选人数量为0时不尝试搜索,直接降级为⚠ 法令名称不明确(将搜索0条结果标记为 ✗ NOT_FOUND 会导致”法令名称未知”被误报为”幻觉”)

+ v4.8.0 — 外部贡献 PR 5件 (#63~#67)

行为时法判断、沿革解析、搜索解析器、重试、废止法令处理准确度改进。

  • 分阶段施行法令的应用版本误指定 (#64): 条款别施行日不同的法令(重大灾害处罚法 50人以下延缓等)中,applicable_law 将错误版本指定为”基准日施行中”
  • findLaws 默认查询20条缺乏相关性排序 (#66): 精确匹配未出现在前20条中,导致无关部分匹配第1条被信任的问题 → 改为100条 + 无关第1条阻断门禁
  • 将废止法令误判为’幻觉’ (#67): 将废止法令引用分离报告为 ⌛ REPEALED(存在≠生效)
  • 沿革分页提前终止·第21项+不支持 (#65), DRF 间歇性404重试 (#63)

v4.7.0 — 条例整顿雷达 (ordinance_radar)

“上位法改了,但我们的条例是不是还没变?” — 条例负责人每年重复的上位法修改追踪,一次调用即可完成。

korean-law "广津区停车场条例" → ordinance_radar(ordinanceName="...")

📡 条例整顿雷达
条例: 首尔特别市广津区停车场设置及管理条例 (施行 20260227)
依据上位法令3件对照:
  ⚠️ 停车场法 — 现行施行 20260603 (比条例约晚4个月修改 → 整顿审查对象)
  ✅ 停车场法施行令 — 现行施行 20250817 (截至条例施行时点已反映)
  ⚠️ 停车场法施行规则 — 现行施行 20260331 (比条例约晚1个月修改 → 整顿审查对象)
  • 依据法自动提取: 从条例第1条(目的)的「」引用中提取依据法律、施行令、施行规则(也解释”같은 법 시행령”缩略表达)。仅扫描目的条款,而非全文,从而排除附表中无关引用(减免对象定义中的公职选举法等)的过度警报
  • 修改对照: 对比各上位法的现行施行日 vs 条例施行日,自动标记整顿审查对象,附送后续确认用 MST
  • 法制处自治法规关联 API(lnkOrd)覆盖率低,未使用 — 改为解析条例正文标准标记

+ v4.7.1~4.7.4 — 搜索准确度·引用验证补丁

  • v4.7.4: 阻止 search_law 返回错误法令 — 「人工智能发展和信任基础建设等相关基本法」的通称”人工智能法”不是正式名称的部分字符串,搜索0条 → 扩展查询(“AI法”)时,法制处返回忽略搜索词的无关法令50条的问题。已注册简称 + 增加 hasRelatedHit 门禁(查询与结果无包含关系则不采纳)
  • v4.7.2: verify_citations 在修饰语前的法令名(“盗窃罪是刑法第329条…”)中降级为 PARTIAL_VERIFIED导致漏掉幻觉的问题修复 (#55) + hono 安全补丁(解决 HIGH 5件, #54)
  • v4.7.1: legal_researchscenario 值错误接收为 task 时,自动重新分配,消除工具调用失败 + ordinance_radar 增加 query 别名 (PlayMCP 审核反馈)

+ v4.6.1~4.6.6 — 运营稳定性捆绑包

  • v4.6.6: 将握手(initialize/tools/list)排除在 rate limit 之外 — 解决 claude.ai 共享出口 IP 遇到 429 导致”间歇性找不到工具”的根本原因 + 支持 get_ordinance id 别名 + get_article_history 未指定日期时自动应用全期间
  • v4.6.5/4.6.4: 应对 MCP 注册审核 — 添加 ToolAnnotations destructiveHint,移除韩文 title
  • v4.6.3: search_law 自治法规自动回退 — 条例·地区名查询0条时自动尝试 search_ordinance
  • v4.6.2: 回退配额门禁仅应用于 tools/call — 解除握手 429 阻断
  • v4.7.0 安全·运营补丁附送: JSON-RPC 批次的 tools/call 按数量计入 rate limit·回退配额(阻断批次放大,每请求上限20 — MCP_MAX_BATCH_CALLS) + graceful shutdown 空闲连接清理(clean exit) + get_article_history lawName 精确匹配优先(防止按字母顺序误匹配)

v4.6.0 — 引用验证强化(含内容) + 云端反爬虫绕过

  • verify_citations 内容验证: 除确认条款存在外,对于存在但附加了错误标题的内容幻觉,如民法第750条(合同解除),检测为 [CONTENT_MISMATCH]。此前只要第750条存在即通过,现在会对比引用条款标题与实际是否一致(移植 LexDiff citation-content-matcher — 规范化后公共子串 + 字符 bigram Jaccard)。legal_analysis(mode=verify_citations) 也适用相同逻辑
  • law.go.kr JS 反爬虫绕过: 当云端 IP(GCP/AWS/Fly) 上法制处返回 JS 重定向页面(location.assign)而非 API 数据时,解析混淆 URL 自动绕过至令牌 URL(最多3跳,令牌 URL 404 时重试原始请求)。本地/注册 IP 上无操作 — 解决了 v4.0.9 的 Referer 注入也无法突破的云端环境防御层

v4.5.0 — 待施行法令检测 (防止名称变更误判)

search_law 执行待施行(target=eflaw)辅助搜索,并将结果标注于主结果中。

  • 名称变更预定: 如「数据基础行政活性化相关法律」→「人工智能及数据基础行政活性化相关法律」(2026-08-28施行),将公布~施行期间名称变更通过新旧名称映射显示 — 解决仅显示”无精确匹配”导致 LLM 误判为”无法令”的问题
  • 修改待施行: 若搜索到的现行法令有等待施行的修改,则附送施行日、公布编号及待施行本 MST 说明
  • 未施行新法令: 已公布但尚未施行、现行搜索0条的法令,单独说明(含效力未生效警告)

v4.4.1–4.4.3 — 稳定性补丁

  • v4.4.3: 将 zod 固定为 ^4 — 解决新安装时解析 zod 3.x 导致 listTools 首次调用中 z.toJSONSchema is not a function 崩溃的问题
  • v4.4.2: 恢复 get_annexes 行政规则附表/格式查询 — 优先解析响应键 admrulbyl + 自动识别”…施行细则” + 分离同一 bylSeq 的附表/格式冲突 (#50/#49/#51)
  • v4.4.1: 修复广告模式 required 错误 — 解决 .default() 字段(legal_research.task·search_law.display)暴露为必填项的问题(io:"input" 明确指定) + legal_analysis 费用选项透传 + 不兼容 scenario 警告注释

v4.4.0 — 暴露工具合并整合 19个 → 9个 (上下文缩减52%)

将 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)
  • 杀手功能4个(verify_citations·cite_check·applicable_law·impact_map) → 整合为 legal_analysis 一个 (mode 参数)
  • 向后兼容: 直接调用原有工具名或通过 execute_tool 方式均照常工作,仅从广告列表中移除

v4.3 — 判例效力确认 + 行为时法判断

“这个判例还有效吗?” + “事件发生时适用哪个法律?” — 捕捉法律实务中最危险的两个错误。

1. cite_check — 判例效力确认 (韩国型 Shepard’s Citator)

"2007다27670 还有效吗?"

→ 通过正文搜索逆向追踪引用该案件编号的后续判例 + 全员合议体后续判决正文精密扫描 → 检测变更·废弃宣告:

📊 판정: ❌ 변경·폐기 신호 감지 — 2018다248626(판례 변경 선언, 저촉 범위 변경)
   맥락: "…2008년 전원합의체 판결은 이 판결의 견해와 배치되는 범위에서 변경하기로 한다…"

판결문이 사건번호 대신 “(이하 ‘2008년 전원합의체 판결’이라 한다)” 별칭으로 변경 선언하는 관행까지 추적. 변경된 판례를 살아있는 것처럼 인용하는 사고를 차단한다. 무료 도구 중 유일.

2. applicable_law — 행위시법 판단 + 부칙 경과규정

"2023.5.10 당시 도로교통법 제44조"

→ 기준일에 시행 중이던 버전(MST) 특정 → 그 시점 조문 본문 → 현행과 비교 → 이후 개정 부칙의 적용례·경과조치 자동 발췌 + 행위시법(형법 §1)·제재처분 위반행위시법(행정기본법 §14③) 법리 안내. LLM이 현행법으로 오답하는 것을 구조적으로 방지.


v4.0 — 3개 킬러 기능 동시 추가

조문 영향 그래프 + 시점 비교 + 단계별 안내. 법무팀·연구자·실수요자가 매뉴얼로 며칠 걸리던 작업이 한 번에.

1. impact_map — 조문 한 줄의 파급효과 그래프

"민법 제103조 인용한 판례"

→ 대법원 판례·헌재 결정·법령해석·행정심판·자치법규를 역방향 탐색 + 조문이 인용한 다른 법령(정방향) + mermaid 그래프 코드 자동 생성. claude.ai에서 바로 시각화.

graph LR
    민법_제103조["⚖️ 민법 제103조"] --> P["📚 대법원 판례"]
    민법_제103조 --> C["⚖️ 헌재 결정"]
    민법_제103조 --> O["🏛️ 자치법규"]

2. time_travel — 두 시점 본문 자동 diff

"개인정보보호법 2020-01-01 vs 2025-11-01"

→ 임의의 두 시점에 시행 중이었던 본문을 자동으로 가져와 조문 단위 자동 diff: 추가(+) / 삭제(-) / 변경(△) 분류 + 변경 전후 본문 + 자수 변화량.

3. action_plan — 이럴 땐 이렇게, 5단계 안내

"전세금 못 받았어"

→ STEP 1 상황진단(주택임대차보호법 자동 식별) → STEP 2 권리/구제수단(판례) → STEP 3 신청기관/기한(행정규칙+해석) → STEP 4 필요서류/양식(별표) → STEP 5 함정/주의(시효·법률구조공단). 평소 말투 그대로 → 실행 가능한 단계로 변환.

+ v4.2.0 — 법령 현행성 가드 (개정 전 법령 오답 방지)

search_law 결과에 [현행] / ⚠️[연혁-과거버전] 라벨 + 시행일 표기(현행 우선 정렬), get_law_text 본문 헤더에 조회기준일 vs 시행일 비교 라벨(시행 예정·efYd 과거 조회 경고)과 구 법령명(“(구 법령명: 화재예방, 소방시설 설치ㆍ유지 및 안전관리에 관한 법률…)”) 표기. LLM이 분법·개정된 법령을 학습데이터 속 옛 버전과 혼동하지 않도록 도구 출력 단계에서 차단.

+ v4.1.0 — 판례 검색 구조화 + 상세 증거 자동 연결

판례 검색을 공통 구조화 core(searchPrecedentsStructured)로 통합. 긴 자연어/개념형 질의를 compact query로 보정하고, 사건번호→제목→본문검색 순으로 폴백. 상위 판례를 get_precedent_text에 자동 연결(기본 2건/최대 5건)해 근거 본문을 함께 제공하며, search_decisions(domain="precedent", options.includeText=true)로 opt-in. 다건 상세조회 합산 시 뒷 판례가 잘리던 문제도 건당 본문 예산 배분으로 해결. (외부 PR #46 + 후속 최적화)

+ v4.0.9 — 법제처 API Referer 헤더 자동 주입

법제처 OPEN API가 Referer 헤더 없는 요청을 OC 키 유효 여부와 무관하게 거부(“사용자 정보 검증 실패”)하는 문제 대응. law.go.kr 계열 호스트 호출 시 기본 Referer를 자동 주입한다(LAW_REFERER로 override). IP/도메인 등록 문제로 오인되기 쉬운 증상의 실제 근본 원인이었음 — IP 등록을 했는데도 모든 검색이 실패하던 케이스를 해결. (외부 PR #45)

+ v4.0.8 — 법제처 빈/HTML 응답 자동 재시도

법제처 OPEN API가 간헐적으로 200 상태에 빈 본문이나 HTML 점검 페이지를 반환하던 문제 대응. 이 경우 XML 파서가 missing root element로 터지며 “됐다 안 됐다” 증상이 발생했음. fetchWithRetry가 빈/HTML 응답을 일시 장애로 간주해 자동 재시도(exponential backoff)하고, 재시도 소진 후에도 빈 응답이면 search_lawmissing root element 대신 명확한 안내 메시지를 반환하도록 수정. (IP 등록·OC 키와 무관한 외부 응답 불안정 이슈)

+ v4.0.7 — 국세청 판례 본문 fallback

법제처 JSON API에 본문이 비어 오는 판례를 국세청 taxlaw.nts.go.kr에서 HTML로 자동 보강. JSON 실패·파싱 실패·본문 누락 세 경우 모두 fallback으로 진입하며 안전하게 회수됨. 사내망/SSL inspection 환경용 LAW_EXTERNAL_HTTPS_PROXY(선택)·LAW_EXTERNAL_TLS_REJECT_UNAUTHORIZED(진단용) 지원 — 자세한 설정은 아래 “국세청 판례 서버 TLS/프록시 설정” 섹션 참조. (외부 PR #44)

+ v4.0.6 — 법제처 API 프로토콜 설정 + 판례 재검색 개선

폐쇄망/인증서 문제 환경을 위해 LAW_API_PROTOCOL=http 옵션 추가(기본 https). 판례 재검색 키워드 후보 생성 개선으로 매칭률 향상. (외부 PR #41/#42)

+ v4.0.5 — 의존성 취약점 일괄 패치 (Security)

npm audit High 4건(@xmldom/xmldom 5건의 XML injection + DoS, @hono/node-server 경로 우회, express-rate-limit IPv6 우회, fast-uri path traversal) 일괄 패치. 모두 semver-major 변경 없는 patch/minor 업데이트. npm audit0 vulnerabilities. 코드 변경 0건. 자세한 GHSA 목록은 CHANGELOG 참조.

+ v4.0.4 — 약어 부분 매칭

기존 약어 처리는 query 전체가 등록 약어와 정확 일치할 때만 동작 (“화관법” → “화학물질관리법”). v4.0.4는 약어가 다른 토큰과 결합된 query도 풀네임 변형으로 자동 확장.

"화관법 시행령"      → "화학물질관리법 시행령"
"화관법 제5조"       → "화학물질관리법 제5조"
"산안법 시행규칙"    → "산업안전보건법 시행규칙"
"중처법 제4조 책임자" → "중대재해 처벌 등에 관한 법률 제4조 책임자"

extractEmbeddedAliases 신규 + expandLawQuery/expandOrdinanceQuery 통합. 회귀 0건.


v3.5 — AI 법률 답변의 환각을 잡아내다

LLM이 지어낸 가짜 조문을 실시간으로 탐지. 법제처 공식 DB로 모든 인용을 교차검증.

"민법 제750조에 따라 불법행위 손해배상을 청구하고,
 근로기준법 제60조 제1항은 연차유급휴가를 규정하며,
 상법 제401조의2 제7항에 따라 이사 책임을 물을 수 있고,
 형법 제9999조는 가중처벌을 정한다"

verify_citations 한 번으로 (실제 법제처 API 교차검증 결과):

  • ✓ 민법 제750조(불법행위의 내용) 실존
  • ✓ 근로기준법 제60조(연차 유급휴가) 제1항 실존
  • 상법 제401조의2 — 제7항 없음 (최대 제2항)
  • 형법 제9999조 — 해당 조문 없음 (존재 범위: 제1조~제372조)

ChatGPT·Claude가 쓴 법률 답변을 그대로 믿지 마세요. 법률 AI 서비스, 로펌, 학생, 계약서 검토에서 신뢰도 체크 필수.


v3.2.0+ — 자연어로 복합 분석

사용법은 똑같습니다. 그냥 자연어로 물어보세요. AI가 질문을 알아듣고, 필요한 분석을 자동으로 추가해줍니다.

과태료 받았는데, 감경 가능할까?

"식품위생법 영업정지 과태료 감경 가능?"

→ 위반 유형별 처분 기준표 (1차·2차·3차 금액) + 벌칙 조항 원문 + 실제로 감경된 행정심판 사례 + 해당 조항 개정 이력까지 한 번에 나옵니다.

이 물건 수입하려는데, 법적으로 뭘 확인해야 하지?

"수입 통관 FTA 적용 확인"

관세법 + 관세청 유권해석 + FTA 조약 원문 + 세율 별표 + 관세 분쟁 시 조세심판원 판결까지. 예전에는 법제처·관세청·조세심판원·외교부 4곳을 따로 뒤져야 했습니다.

건축허가 처리, 어디서부터 시작하지?

"건축법 허가 절차"

법적 근거 (법률→시행령→시행규칙) + 수수료·서식 + 관련 훈령·예규·고시 + 우리 지자체 조례 특칙 + 유권해석까지 원스톱.

법 하나 고치면 뭐가 같이 바뀌어야 하지?

"건축법 영향도 분석"

하위법령(시행령·시행규칙) + 전국 자치법규 중 영향받는 것 + 관련 행정규칙 목록이 나옵니다.

이 법의 위임 사항, 다 만들어졌나?

"국민건강보험법 위임입법"

→ “시행령으로 정한다”고 돼 있는 조항 중 아직 시행령이 안 만들어진 것을 찾아줍니다.

이 조례, 상위법에 어긋나지 않나?

"주차 조례 상위법 적합성"

헌법재판소 위헌 결정 + 행정심판 취소 사례 중 비슷한 조례 관련 건을 검색하고, 상위법 근거를 대조합니다.

이 조문, 언제 바뀌었고 판례는 어떻게 달라졌지?

"근로기준법 개정이력 타임라인"

신구대조표 + 조문별 개정 이력 + 해당 법령의 판례·해석례를 시간순으로 묶어줍니다.


사용법 변경 없음. 기존처럼 자연어로 물어보면 됩니다. 질문에 따라 AI가 알아서 추가 분석을 붙입니다.

모든 결과 끝에 **“이어서 할 수 있는 조회”**가 제안됩니다. 복사해서 바로 이어가세요.

v3.2.1~v3.5.5 변경 이력

v3.5.5 — 법제처 API 봇 차단 우회 (긴급 핫픽스)

법제처 OPEN API가 Node.js 기본 User-Agent(undici/...)를 봇으로 분류해 거부하기 시작 → fly.dev/Vercel 등 모든 클라우드 호스팅에서 [EXTERNAL_API_ERROR] fetch failed 또는 “사용자 정보 검증에 실패하였습니다” XML로 죽는 현상.

  • fetch-with-retry.ts에 일반 브라우저 UA 기본 헤더 주입 — 호출자 코드 변경 0, 한 줄 패치로 모든 도구 복구. LAW_USER_AGENT 환경변수로 override 가능
  • 에러 메시지가 “정확한 서버장비의 IP주소 및 도메인주소를 등록해 주세요”여서 IP 화이트리스트 차단으로 오인되기 쉬웠음 — 실제 원인은 UA 검증
  • claude.ai 커스텀 커넥터로 https://korean-law-mcp.fly.dev/mcp?oc=... 사용하던 사용자 즉시 영향. v3.5.5 배포로 자동 복구

v3.5.4 — 실사용 피드백 반영: NOT_FOUND 명시 시그널 전면 도입

사용자 피드백: “실사용하면 자꾸 답변 못 찾고 AI가 지맘대로 답변함. 못 찾으면 리턴값을 명확하게.”

근본 원인: 일부 도구가 조회 실패 시 isError 플래그를 세팅하지 않거나 “없습니다”만 반환 → LLM이 실패 감지 못하고 창작 답변 생성.

  • [NOT_FOUND] / [HALLUCINATION_DETECTED] 머신 파싱 마커 전면 도입 — 모든 실패 응답에 기계적으로 감지 가능한 프리픽스 + “⚠️ LLM은 추측/생성 금지” 경고문 표준화
  • verify_citationsfailCount > 0일 때 isError: true 설정. 환각 검출됐는데 “검증 성공”으로 오인되던 심각한 버그 수정
  • annex.ts / law-text.ts / article-detail.ts 등 10+개 파일isError: true 누락 수정
  • 체인 도구 부분 실패 투명화chains.ts의 silent-drop 패턴 제거. 실패한 섹션도 [NOT_FOUND / FAILED] 마커와 사유를 명시 노출 (80자 → 200자 확장)
  • 신규 헬퍼 notFoundResponse(message, suggestions?)로 일관성 확보

v3.5.3verify_citations 실증 검증 후 3개 치명 버그 수정

실제 법제처 API로 5건 테스트 → false negative 3건 발견 → 근본 원인 수정:

  • “민법” → “난민법” 부분매칭 오매칭 — 기존 chains.tsfindLaws/scoreLawRelevance가 이미 해결해둔 로직인데 verify_citations가 재사용하지 않고 자체 로직으로 중복 구현했던 것. 공용 모듈 lib/law-search.ts로 추출하여 양쪽 재사용 (중복 제거)
  • 원숫자(①②③…) 항번호 파싱 실패 — 법제처 API가 항번호"① " 형태로 리턴하는데 기존 parseInt(raw.replace(/[^\d]/g, ""))가 유니코드 원숫자를 제거해 NaN. 근로기준법 제60조 제1항이 실존함에도 “최대 제0항” 오판정 → lib/article-parser.tsparseHangNumber() 원숫자 매핑 유틸 추가
  • 짧은 법령명 검색 누락 — 법제처 lawSearch API가 display=20에서 “상법”을 결과 34번째로 리턴. apiClient.searchLaw에 display 파라미터 추가, verify_citations는 searchDisplay=100으로 호출

---

**翻译说明:**

1. 所有韩文自然语言已翻译为简体中文,保留原文中的代码块、行内代码、URL、HTML标签、Mermaid图表、Markdown语法符号(如`---`、`>`、`<details>`等)。
2. 技术名词、API名称、工具名(如LLM、API、`fetchWithRetry`、`verify_citations`等)保留英文原文。
3. 产品名、项目名(如Claude、ChatGPT、fly.dev、Vercel、claude.ai等)保留英文。
4. 法律专有名词(如“민법”“판례”“법제처”等)翻译为中文,但保留原文中的括号别名和引用格式。
5. 保持原有Markdown结构、标题层级、换行和缩进。
6. 直接输出翻译后的Markdown,无任何额外前言或解释。

验证后 5/5 正确判定(上述示例结果就是其输出)。

**v3.5.2** — kordoc 2.3.0 → 2.4.0 更新(星号/格式解析引擎)

**v3.5.1** — 移除 lite/full 配置文件体系(引入 V3_EXPOSED 16 个固定暴露后实际未使用)。从 `tool-profiles.ts` 中移除 `LITE_TOOLS`/`parseProfile`/`filterToolsByProfile`,健康端点虚假的 `profiles` 字段 → 替换为准确的 `tools: { exposed: 16, total: 92 }`。非 Breaking change(`?profile=lite` 也已是忽略的值)

**v3.5.0** — Killer feature: `verify_citations` 引用验证 + Critical 热修复 + 安全强化

- **`verify_citations`** 新增 — 防止 LLM 幻觉。从用户文本中提取条文引用正则表达式 + 回溯前 30 个字符逆向追踪法令名称 + 与法务部 DB 并行交叉验证。结果:✓(存在)/ ✗(不存在,提示存在范围)/ ⚠(法令名称不明确)
- **Critical 热修复** — 修复 v3.4.0 `full` 参数在 12 个领域(tax_tribunal, customs, ftc, pipc, nlrc, acr, treaty, interpretation 等)中因架构中缺少字段而被静默忽略的问题。`unified-decisions.ts` 在收到子处理程序响应后,通过 `compactLongSections()` 后处理批量应用阶梯式缩写
- **安全 High 2 项** — `fetch-with-retry.ts` 中超时/网络错误时包含 API 密钥的 URL 泄露到日志的问题 → `maskSensitiveUrl()` 对 `OC=***` 进行掩码。`trust proxy true` → `TRUST_PROXY` 环境变量(默认 `1`),阻止通过 X-Forwarded-For 伪造绕过 rate limit
- **质量 3 项** — `decision-compact.ts` 日期正则表达式边界守卫,TAIL 边界 `". "` 误报消除,`stripRepeatedSummary` 终点准确检测
- **UX** — 8 个链的描述具体化(LLM 可自主选择链),搜索结果 "💡 下一步: get_law_text(...)" 提示,`search_law` 简称/拼写错误扩展自动重试,`query-router` 新增 5 个模式,`discover_tools` 别名匹配 27 个

**v3.4.0** — 判例响应 tokens 平均减少 74% + `get_decision_text` 新增 `full` 参数

从法令 RAG 角度重新解读判例响应结构:判决事项·判决要点·主文作为规范复用核心保留全文,"理由"全文因涉及个案事实排列,LLM 大多仅消费后丢弃。利用这一不对称性,对判例/宪法/行政审判(`precedent`/`constitutional`/`admin_appeal`)3 个领域应用 **阶梯式缩写 + structured ref densify**。新增 `lib/decision-compact.ts`:

- **`compactBody`** — 将全文/理由部分缩写为前 800 字 + 省略标记 + 后 400 字。内置判决结束语(`~다.`、`~라 할 것이다.`)和句子边界守卫。`minSave` 守卫对短正文(1300 字以下)跳过
- **`densifyLawRefs`** — 删除引用条款的括号说明(`제390조(채무불이행과 손해배상)` → `제390조`)。平均减少 40~55%
- **`densifyPrecedentRefs`** — 删除引用判例中的 "선고"/"판결" + 压缩日期空格(`2020. 3. 26. 선고 2018두56077 판결` → `2020.3.26. 2018두56077`)
- **`stripRepeatedSummary`** — 检测并删除法务部 API 在判决/要点前部又混入的重复内容

`get_decision_text` 新增 `full?: boolean` 参数。未指定(默认)=缩写,`true`=全文。响应中间的 `⋯ 중략 N자 (full=true로 전문 조회) ⋯` 标记作为重新调用提示。

**实测(实际法务部 API,固定 ID 8 条)**:

| 领域 | Before avg | After avg | 缩减 |
|---|---:|---:|---:|
| 判例 | 5,230 chars | 3,049 chars | **-42%** |
| 宪法 | 8,368 chars | 1,703 chars | **-80%** |
| 行政审判 | 8,429 chars | 1,491 chars | **-82%** |
| **综合** | **7,606 chars (1,901 tok)** | **1,960 chars (490 tok)** | **-74%** |

长决定例(15,000 字以上)中 **80~89%** 缩减效果最显著。短正文由 `minSave` 守卫保留原文。质量无损失(判决·要点·主文始终全文)。

附带 **ListTools 负载也减少 -14%**(9,671 → 8,296 bytes, 344 tokens↓):`chain_*` 8 个描述简洁化,`search_decisions`/`get_decision_text` 字段 describe 中删除 17 个领域重复标注。

**v3.3.1** — 法令简称词典大幅扩展(11 → 52 个,+41)

lexdiff 中发现 "산안기준규칙" 查询通过法务部 aiSearch 的关键词部分匹配被幻觉为 **国家标准化基本法**,因此大幅扩充 `resolveLawAlias` 的 `LAW_ALIAS_ENTRIES`。覆盖高频劳动/安全(산안법·중처법·근기법 等)、个人信息/信息通信(개보법·정보통신망법)、廉洁/利益冲突(청탁금지법·이해충돌방지법)、公共合同(국가계약법·지방계약법)、房地产/租赁(주임법·상임법·부거법)、公平交易(공정거래법·하도급법·약관법·표시광고법·가맹사업법)、金融(자본시장법·특금법·전금법)、城市规划(국토계획법·도정법)、环境(감염병예방법·대기환경법)、运输(여객운수법·화물운수법)、民事·刑事程序(민소법·형소법·민집법)、社会保险(국건법·산재보험법·고보법)、通信(전기통신사업법)。`api-client.ts`/`law-parser.ts` 已使用 `resolveLawAlias`,因此 **仅添加数据即可自动受益于现有搜索路径**。新增 41 个 + 回归 4 个,共 **45/45 测试通过**。

**v3.3.0** — HTTP stateless 模式切换 + kordoc 2.3.0

远程服务器(`korean-law-mcp.fly.dev`)周期性因 OOM kill 重启导致现有 session ID 失效的问题得到根本解决。切换为 MCP 官方 stateless 模式(`sessionIdGenerator: undefined`),每次请求创建全新的 `Server + Transport`,请求结束时立即释放。移除所有 in-memory session Map、InMemoryEventStore、idle cleanup,消除泄漏根源。重启、扩展、部署均无损失。`GET /mcp`、`DELETE /mcp` 与官方示例一致返回 `405`。API 密钥通过 `AsyncLocalStorage` 按请求隔离(防止 race condition)。

- **HTTP stateless 切换** — [src/server/http-server.ts](src/server/http-server.ts)(参考:`@modelcontextprotocol/sdk/examples/server/simpleStatelessStreamableHttp.js`)
- **kordoc 2.2.5 → 2.3.0** — 星号/格式解析引擎更新
- **完全移除 session 管理代码** — 删除 `sessions` Map、`MAX_SESSIONS`、idle cleanup `setInterval`、`InMemoryEventStore`、POST/GET/DELETE 分支逻辑(替代 v3.2.3 的 LRU eviction 方法)

**v3.2.3** — HTTP session 稳定性中间改进。`MAX_SESSIONS` 100→500 + LRU eviction。_v3.3.0 的 stateless 切换替代。_

**v3.2.2** — 星号/格式查询工具(`get_annexes`)添加到默认暴露工具中。**暴露工具数 14 → 15 个**。添加退款、减轻关键词查询时自动查询星号逻辑。

**v3.2.1** — kordoc 2.2.5 更新。

</details>

<details>
<summary>开发者:场景技术详情</summary>

现有 8 个链工具新增了 `scenario` 参数。(暴露工具数在 v3.5 的 `verify_citations`、v4.0 的 `impact_map` 添加后变为 17 个)

| scenario | 宿主链 | 额外查询 |
|---------|-----------|----------|
| `penalty` | chain_action_basis | 星号处分基准表 + 罚款条款 + 减轻行政审判 + 修订历史 |
| `customs` | chain_full_research | 海关解释例 + 税务审判 + FTA 条约 + 税率表 + 3 阶段对比 |
| `manual` | chain_procedure_detail | 法律体系(行政规则)+ 解释例 + 关联自治法规 |
| `delegation` | chain_law_system | 委托法令现状 + 法律体系(行政规则)+ 条文历史 |
| `impact` | chain_law_system | 法律体系树 + 关联条例 + 条文关联 + 行政规则 |
| `timeline` | chain_amendment_track | 判例 + 解释例时间序列映射 |
| `compliance` | chain_ordinance_compare | 宪法违宪决定 + 行政审判违法撤销 + 上位法依据 |

场景可通过查询关键字 **自动检测**,或通过 `scenario` 参数 **直接指定**。

**其他改进:**
- 法令体系图(`get_law_system_tree`)新增行政规则(训令/例规/告示)输出
- 法令搜索 3 级 fallback — 从复合查询中自动提取法令名称模式
- `chain_action_basis` 判例/解释例搜索准确度提升(基于法令名称搜索)

</details>

<details>
<summary>v3.1.0~v3.1.5 变更历史</summary>

**v3.1.5** — kordoc 2.2.4 + 文档解析引擎强化。README 更新。

**v3.1.4** — kordoc 2.2.4 更新。合并单元格 HTML `<table>` 输出,markdownToHwpx 格式强化。

**v3.1.3** — 搜索结果无提示整合(18 个工具)。session 清理周期缩短(30 分→10 分)。

**v3.1.2** — kordoc 2.2.1 更新。GFM 表格特殊字符转义及 pipe 冲突防止。

**v3.1.1** — kordoc 2.1→2.2 更新。

## v3.1.0 — Production Hardening

基于实际使用检查修改 20 个文件。潜在 bug、安全、稳定性批量改进。

- **truncateResponse 缺失批量修复** — 修复 17 个工具未应用 50KB 响应限制的问题
- **HTTP 服务器 session 限制** — 添加 MAX_SESSIONS=100,503 响应(DoS 防御)
- **CORS 通配符警告** — 未设置时添加 stderr 警告日志
- **参数污染防御** — 阻止 `search_decisions`/`get_decision_text` 的 options 中覆盖核心字段
- **链工具稳定性** — 认证错误(401/403/429)立即传播,findLaws 安全包装
- **API 客户端** — throwIfError 中消费 response body(防止流泄漏)
- **CLI 改进** — REPL 模式 Ctrl+C 两次强制终止实现
- **SSE 服务器移除** — 删除未使用的死代码(HTTP 服务器支持 SSE 流式)
- **死代码/依赖清理** — `zod-to-json-schema`、ordinance 提示、`start:sse` 脚本

</details>

<details>
<summary>v3.0.x 变更历史</summary>

**v3.0.2** — Unified Architecture + Setup Wizard

将法务部 41 个 API 结构化为 89 个 MCP 工具的 v2。
v3 将相同的 41 个 API **重新压缩为 14 个工具**(v3.2.2 后为 15 个,v4.3 中为 19 个,v4.4.0 中合并为 9 个)。

| | 法务部原始 | v2 | v3 |
|---|:---:|:---:|:---:|
| API/工具数 | 41 | 89 | **14** |
| AI 上下文成本 | - | ~110 KB | **~20 KB** |
| 功能覆盖率 | - | 100% | **100%** |
| 配置文件管理 | - | lite/full 分离 | **单一(无需)** |

### 为什么 89 个变成 14 个

v2 的错误:每个 API 对应一个工具。虽然直观,但从 AI 角度来看,需要读取全部 89 个架构,因此 **将一半上下文消耗在工具列表上**。

v3 的方法转变:将相似模式工具合并为一个 `domain` 参数。判例·宪法·税务审判·公平委等 **18 个领域** 整合为 `search_decisions(domain)` + `get_decision_text(domain)` **2 个**。

其余专业工具(术语、星号、历史等)保持原样,但通过 `discover_tools` → `execute_tool` 仅在需要时访问。

### 用户角度有哪些改进

- **AI 更准确** — 从 89 个中挑选的 AI,现在只看 14 个就能即时判断
- **响应速度明显提升** — 上下文减少 82%
- **设置简化** — 无需选择 lite/full 配置文件。所有客户端使用相同的 14 个
- **立即访问 17 个判例领域** — 无需经过 discover 即可直接搜索

### 其他变更

- **kordoc 1.6 → 2.2.5** — 文档解析引擎升级(支持 XLSX/DOCX、安全性增强、表单填充)
- **行政审判全文查询错误修复** — 添加 API 响应键 fallback
- **英文法令全文查询错误修复** — 支持新型 API 响应结构

### 给开发者

在 MCP 工具设计中,**工具数量 ≠ 功能数量**。
将 41 个 API 展开为 89 个,再重新合并为 14 个的过程,
正是寻找“适当抽象层次”的旅程。

核心模式:**Dispatch Table + Domain Enum**。
现有的 handler 函数一行都未修改。

</details>

<details>
<summary>v2.x 变更历史</summary>

**v2.3.2** — 运营代码质量改进(47 个文件,-179 行)。减少 emoji/装饰,链式缓存,统一错误处理。

**v2.3.0** — 工具配置文件(lite/full),URL 查询 API 密钥,kordoc 集成解析器。

**v2.2.0** — 23 个新工具(64→87)。条约、法令-自治法规关联,文档分析引擎。

**v1.8~1.9** — 8 个链式工具,批量条文查询,AI 搜索过滤器,结构化错误格式。

</details>

---

## 为什么开发

大韩民国拥有 **1,600 多部现行法律**、**10,000 多项行政规则**,以及涵盖大法院、宪法法院、税务审判院、关税厅的庞大判例体系。所有这些都集中在 [法制处](https://www.law.go.kr) 这一个网站上,但开发体验极差。

该项目将整个法令系统封装为 **10 个工具**,使其可在 AI 助手或脚本中直接调用。由一位在法制处手动搜索数百次后感到疲惫的公务员开发。

---

## 安装与使用方法

### 第 0 步:获取 API 密钥(免费,1 分钟)

所有方法通用所需的 **法制处 Open API 认证密钥(OC)** 请先获取。

1. 访问 [法制处 Open API 申请页面](https://open.law.go.kr/LSO/openApi/guideList.do)
2. 注册后登录
3. 点击 **“Open API 使用申请”** 按钮
4. 填写申请表,即可获得 **认证密钥(OC)**(例如:`honggildong`)
5. 在以下设置中使用该认证密钥

---

### 方法 1:Claude Code 插件(一行安装,最简单)⚡

如果使用 [Claude Code](https://claude.com/claude-code),两行即可搞定。安装过程中会自动询问 API 密钥。

/plugin marketplace add chrisryugj/korean-law-mcp /plugin install korean-law@korean-law-marketplace


安装过程中会提示输入 **法制处 API 密钥**(第 0 步获取的如 `honggildong` 这样的密钥)。将作为敏感信息安全存储。

**使用:** 向 Claude Code 用自然语言提问,`korean-law` MCP 工具将自动调用。

“告诉我劳动基准法第74条” “验证民法第750条判例”


**更新:** 新版本发布时,一行即可更新

/plugin marketplace update korean-law-marketplace


> 内部会执行 `npx korean-law-mcp@latest`,因此始终使用 npm 上发布的最新版本。

#### 故障排除:`Permission denied (publickey)` 错误

如果安装过程中出现以下错误,说明 Claude Code 安装器尝试通过 SSH 连接 GitHub 但未注册 SSH 密钥(尤其常见于初次使用 Git 的非开发者/法律实务人员)。

Failed to install: Failed to clone repository: Cloning into ‘/Users//.claude/plugins/cache/temp_github_’… git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.


**解决方法(二选一):**

1. **强制使用 HTTPS 绕过(最简单,推荐):** 在终端执行一行命令后重新尝试 `/plugin install`
   ```bash
   git config --global url."https://github.com/".insteadOf "git@github.com:"
  1. 生成 SSH 密钥并注册到 GitHub: 如果计划经常通过 SSH 使用其他 GitHub 仓库
    ssh-keygen -t ed25519 -C "your-email@example.com"   # 按回车三次
    cat ~/.ssh/id_ed25519.pub                            # 复制输出
    将复制的公钥粘贴到 GitHub → Settings → SSH and GPG keys → New SSH key

安装后,上述 rewrite 设置可以保留(HTTPS clone 始终有效)。


方法 2:直接在 Claude.ai 网页使用(无需安装)

无需安装任何东西,只需输入一个地址。需要 Claude Pro/Max/Team/Enterprise 套餐(Free 套餐只能使用 1 个连接器)。

添加连接器方法:

  1. 登录 claude.ai
  2. 点击左侧边栏底部的 您的姓名
  3. 选择 “设置”(或 Settings)
  4. 进入 “连接器”(或 Connectors)菜单
  5. “自定义连接器” 区域点击 “添加自定义连接器” 按钮
  6. 输入以下内容:
    • 名称korean-law(任意名称均可)
    • URL:粘贴下方地址,将 honggildong 替换为 第 0 步获取的您的认证密钥
https://mcp.gomdori.app/law?oc=honggildong
  1. 点击 添加 按钮,注册完成!

启用工具(重要!):

  1. 点击已添加连接器的 “配置”(或 Configure)
  2. 出现工具列表后,将所有工具设置为 “始终使用”(或 Always allow)
  3. 这样无需每次批准,AI 即可直接搜索法令。

使用:

  1. 返回聊天界面,输入“告诉我劳动基准法第74条”即可!

注意:要修改连接器 URL,需删除后重新添加。

从 v3 开始无需选择配置文件。10 个工具覆盖全部 42 个 API。 如果之前使用了 ?profile=lite&oc=... 地址,保持原样即可——功能相同。


方法 3:在 AI 桌面应用中使用(无需安装)

如果使用 Claude Desktop、Cursor、Windsurf桌面应用,请在配置文件中添加以下内容。

配置文件位置查找:

应用名称WindowsMac
Claude Desktop%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json
Cursor项目文件夹内 .cursor/mcp.json项目文件夹内 .cursor/mcp.json
Windsurf项目文件夹内 .windsurf/mcp.json项目文件夹内 .windsurf/mcp.json

Claude Desktop

Claude Desktop 无法直接连接远程 HTTP MCP 服务器,因此通过 mcp-remote 适配器连接。需要 Node.js 18 及以上版本(用于 npx)。

{
  "mcpServers": {
    "korean-law": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.gomdori.app/law?oc=honggildong"
      ]
    }
  }
}

honggildong 替换为您的认证密钥。如果不想安装 Node.js,请使用 方法 4 的本地安装。

Cursor、Windsurf 等(支持远程 HTTP 的客户端)

{
  "mcpServers": {
    "korean-law": {
      "url": "https://mcp.gomdori.app/law?oc=honggildong"
    }
  }
}

如果已配置其他 MCP 服务器,只需在 "mcpServers": { ... } 中添加 "korean-law": { ... } 部分即可。

保存后 重启 应用,法令工具即可激活。


方法 4:直接安装到本地计算机(可离线)

如果希望离线使用,或不经过远程服务器,可以直接安装。

前置准备: 需要安装 Node.js 18 及以上版本。

自动安装(推荐):

npx korean-law-mcp setup

安装向导会一站式处理:输入 API 密钥 → 选择 AI 客户端 → 自动注册配置文件。 支持 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、Gemini CLI、Zed、Antigravity。

手动安装:

npm install -g korean-law-mcp

在 AI 应用配置文件中添加以下内容(将 honggildong 替换为您的认证密钥):

{
  "mcpServers": {
    "korean-law": {
      "command": "korean-law-mcp",
      "env": {
        "LAW_OC": "honggildong"
      }
    }
  }
}

重启应用即可完成!


方法 5:在终端(CLI)中直接使用

如果您是开发者,可以在终端中直接搜索法令。

# 安装
npm install -g korean-law-mcp

# 设置认证密钥(将 honggildong 替换为您的密钥)
export LAW_OC=honggildong        # Mac/Linux
set LAW_OC=honggildong           # Windows CMD
$env:LAW_OC="honggildong"       # Windows PowerShell

# 使用示例
korean-law "民法第1条"                    # 自然语言直接查询
korean-law search_law --query "关税法"     # 直接调用工具
korean-law list                            # 查看全部工具列表
korean-law list --category 判例            # 按类别筛选
korean-law help search_law                 # 查看工具帮助

API 密钥传递方法总结

可以通过多种方式传递认证密钥。按优先级从高到低排列:

方法用法使用场景
包含在 URL 中地址末尾添加 ?oc=我的密钥网页客户端最简便
HTTP 头apikey: 我的密钥编程集成时
环境变量LAW_OC=我的密钥本地安装(方法 3、4)
工具参数apiKey: "我的密钥"特定请求使用不同密钥

法制处 API 协议设置

法制处 API 调用默认使用 HTTPS。在内网、封闭网络等证书验证困难的环境下,可设置 LAW_API_PROTOCOL=http 使用 HTTP 调用。

最清晰的方式是将其放入 MCP 客户端配置的 env 块中:

{
  "mcpServers": {
    "korean-law": {
      "command": "korean-law-mcp",
      "env": {
        "LAW_OC": "honggildong",
        "LAW_API_PROTOCOL": "http"
      }
    }
  }
}

终端中直接运行,或使用 .env 文件:

export LAW_API_PROTOCOL=http        # Mac/Linux
set LAW_API_PROTOCOL=http           # Windows CMD
$env:LAW_API_PROTOCOL="http"       # Windows PowerShell
LAW_OC=honggildong
LAW_API_PROTOCOL=http

允许值为 httphttps。未设置或填入其他值则使用 https

国税厅判例服务器 TLS/代理设置

国税厅来源的判例正文有时无法仅通过法制处 JSON 响应提供,因此内部会额外查询 taxlaw.nts.go.kr 的国税厅判例服务器。该服务器即使通过 HTTP 访问也会重定向到 HTTPS,因此与 LAW_API_PROTOCOL=http 设置无关,Node.js 运行时必须信任 https://taxlaw.nts.go.kr 证书。

在内网、封闭网络、防火墙、SSL inspection 代理之后,虽然浏览器可以打开国税厅判例页面,但 Node.js fetch() 可能因 [EXTERNAL_API_ERROR] fetch failed 而失败。这是因为浏览器和 Node.js 使用的证书存储和代理设置可能不同。

在生产环境中,请先基于 Node.js 确认 HTTPS 连接:

node -e "fetch('https://taxlaw.nts.go.kr/qt/USEQTA002P.do?ntstDcmId=200000000000019303').then(r=>console.log(r.status,r.url)).catch(e=>console.error(e.name,e.message,e.cause))"

如果运营网络直接连接不通,需要经过单独的 Web 代理,请设置实际的代理服务器地址。当前此设置适用于国税厅判例正文 fallback 的外部 HTTPS 连接:

LAW_EXTERNAL_HTTPS_PROXY=http://proxy-host:8080

在 Windows 上需要注册为系统环境变量时,请以管理员权限在终端中设置。设置后重启 Windows 或 Node.js 进程:

setx LAW_EXTERNAL_HTTPS_PROXY http://proxy-host:8080 /M

如果代理路径下仍存在内部证书验证问题,可仅为此项目的外部 HTTPS 代理路径临时禁用 TLS 证书验证(仅用于原因排查,请勿在生产中长期使用):

setx LAW_EXTERNAL_TLS_REJECT_UNAUTHORIZED 0 /M

诊断后删除:

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v LAW_EXTERNAL_TLS_REJECT_UNAUTHORIZED /f

使用示例

"告诉我关税法第38条"
→ search_law("关税法") → 获取 MST → get_law_text(mst, jo="003800")

"比较化管法最新修订"
→ "化管法" → 自动转换为"化学品管理法" → compare_old_new(mst)

"劳动基准法第74条解释例"
→ search_interpretations("劳动基准法第74条") → get_interpretation_text(id)

"告诉我产业安全保健法附表1内容"
→ get_annexes(lawName="产业安全保健法附表1") → 下载 HWPX 文件 → 表格/文本 Markdown 转换

工具结构(10 个)

v4.4.0 中合并了暴露工具(上下文减少 52%)。原有的 8 个 chain_* 合并为 legal_researchtask,4 个杀手级功能合并为 legal_analysismode。其余专业工具通过 discover_toolsexecute_tool 访问,原有工具名称直接调用仍保持向后兼容。v4.7.0 中新增 ordinance_radar,共 10 个。

分类工具说明
研究 (1)legal_research多级法条研究 — 选择 task 8 种(见下表)
精密分析 (1)legal_analysis验证·分析 — 选择 mode 4 种(见下表)
法令 (3)search_law法条搜索 → 获取 lawId、MST
get_law_text条款全文查询
get_annexes附表/格式查询(金额表、费率表、附页格式)
自治法规 (1)ordinance_radar条例整备雷达 — 自动对照上级法修订(v4.7.0)
综合 (2)search_decisions18 个领域综合搜索(判例、宪法裁判、税务审判、公平委、劳动委、关税、解释例、行政审判、个人信息委、权益委、诉请审查、学则、公社公团、公共机关、条约、英文法令)
get_decision_text18 个领域全文查询
(2)discover_tools专业工具搜索(术语、附表、历史、比较等)
execute_tool专业工具代理执行
task说明场景扩展
full_research(默认)综合研究(AI搜索→法令→判例→解释)customs:关税·通关综合 / action_plan:这种情况这样做,5 步指南
law_system法体系分析(三级比较、授权结构)delegation:授权立法监督 / impact:影响度分析
action_basis确认处分依据(许可、认可、处分)penalty:处分·罚款标准综合
dispute_prep争讼准备(不服、诉讼、审判)domain:tax/labor/privacy/competition
amendment_track修订追踪(新旧对照、沿革)timeline:时间序列时间线 / time_travel:两个时间点自动 diff
ordinance_compare条例比较(上级法→全国条例)compliance:上级法合规性验证
procedure_detail程序·费用·格式指南manual:公务员处理手册
document_review合同·条款风险分析(text 必填)
mode说明必需参数
verify_citations防止 LLM 幻觉 — 批量验证引用条款是否存在(v3.5)text
cite_check判例存活确认 — 追踪后续引用 + 检测变更·废止,韩国版 Citator(v4.3)caseNumber
applicable_law行为时法判断 — 适用时间版本 + 附录过渡规定摘录(v4.3)lawName, date
impact_map条款影响图 — 反向搜索引用判例、解释、自治法规 + mermaid(v4.0)lawName, jo

全部工具详情请参考 docs/API.md


主要特点

  • 42 个 API → 10 个工具 — 法令、判例、行政规则、自治法规、宪法裁判决定、税务审判、关税解释、国税厅解释例、条约、学则/公团/公共机关规定、法令术语
  • MCP + CLI — 在 Claude Desktop 和终端中使用相同工具
  • 法律领域特化 — 自动识别简称(化管法化学品管理法)、条款编号转换(第38条003800)、三级授权结构可视化
  • 附表/附页格式正文提取 — HWPX·HWP·PDF·XLSX·DOCX 自动转换(kordoc 引擎)
  • 8 个链 + 9 个场景 — 在基础链上自动添加情景扩展分析(罚款减免、关税通关、授权立法监督等)
  • 18 个领域综合搜索 — 一个 search_decisions 即可即时访问判例、宪法裁判、税务审判、公平委、劳动委等
  • 缓存 — 搜索 1 小时、条款 24 小时 TTL
  • 远程端点 — 无需安装,直接使用 https://mcp.gomdori.app/law(旧 korean-law-mcp.fly.dev/mcp 也保持向后兼容)

文档

Star History

Star History Chart

数据来源

法令、判例、行政规则、自治法规、条约、解释例正文来自法制处国家法令信息中心 OPEN APIhttps://open.law.go.kr/)。国税厅解释例使用国税法令信息系统。

需要法律效力的判断,请务必确认国家法令信息中心原文。本工具可能对查询结果进行加工/摘要。

API 密钥(LAW_OC)需各自向法制处申请,仅限申请者本人使用。

许可证

MIT

第三方实现参考及数据来源声明请参考 NOTICE


Made by 刘主任 @ 广津区厅 AI 同好会 AI.Do

在 GitHub 查看完整项目