korean-law-mcp 4.4.2 → 4.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,6 +6,14 @@
6
6
  [![MCP 1.27](https://img.shields.io/badge/MCP-1.27-blue)](https://modelcontextprotocol.io)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
8
 
9
+ <a href="https://jocohunt.com/p/5lkkxp3x" target="_blank" rel="noopener" title="조코헌트 주간 1등 Top 1 위너">
10
+ <img
11
+ src="https://jocohunt.com/images/badges/weekly-light.svg"
12
+ alt="조코헌트 주간 1등 Top 1 위너"
13
+ style="width: 250px; height: auto;"
14
+ />
15
+ </a>
16
+
9
17
  > 법제처 Open API 기반 MCP 서버 + CLI. Claude Desktop, Cursor, Windsurf, Zed, Claude.ai 등에서 바로 사용 가능.
10
18
 
11
19
  [English](./README-EN.md)
@@ -14,6 +22,12 @@
14
22
 
15
23
  ---
16
24
 
25
+ ## v4.4.1–4.4.3 — 안정성 패치
26
+
27
+ - **v4.4.3**: `zod`를 `^4`로 고정 — 신규 설치가 zod 3.x를 해석해 `listTools` 첫 호출에서 `z.toJSONSchema is not a function`으로 크래시하던 문제 해결
28
+ - **v4.4.2**: `get_annexes` 행정규칙 별표/서식 조회 복구 — 응답 키 `admrulbyl` 우선 파싱 + "...시행세칙" 자동 판별 + 동일 bylSeq 별표/서식 충돌 분리 (#50/#49/#51)
29
+ - **v4.4.1**: 광고 스키마 `required` 버그 수정 — `.default()` 필드(`legal_research.task`·`search_law.display`)가 필수 입력으로 노출되던 문제(`io:"input"` 명시) + `legal_analysis` 비용 옵션 패스스루 + 비호환 scenario 경고 노트
30
+
17
31
  ## v4.4.0 — 노출 도구 통폐합 19개 → 9개 (컨텍스트 52% 감축)
18
32
 
19
33
  MCP 클라이언트가 매 세션 읽는 도구 목록(ListTools)을 ~15.1KB → ~7.2KB로 줄였습니다.
@@ -293,8 +293,14 @@ function findMatchingAnnex(annexList, annexSelector, knd) {
293
293
  }
294
294
  return selectorNumbers.some((num) => titleMatchesAnnexNumber(annexTitle, num));
295
295
  });
296
- if (matches.length === 0)
296
+ if (matches.length === 0) {
297
+ // 번호가 안 맞아도 별표가 유일 1건이면 그 별표를 정답으로 폴백.
298
+ // 여권법 시행령 '수수료 및 사무의 대행에 드는 비용(제39조 관련)'처럼 번호 없는 단일 별표는
299
+ // 모델이 "별표1" 등 임의 번호로 불러도 매칭 0건 → NOT_FOUND로 새는 대신 유일 별표를 반환.
300
+ if (annexList.length === 1)
301
+ return annexList[0];
297
302
  return undefined;
303
+ }
298
304
  if (matches.length === 1)
299
305
  return matches[0];
300
306
  // 별표번호 충돌 → 별표종류("별표"/"서식")로 구분
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "korean-law-mcp",
3
- "version": "4.4.2",
3
+ "version": "4.4.4",
4
4
  "description": "법제처 42개 API → 9개 MCP 도구. 법령·판례·조례·조약 + 다단계 리서치(legal_research, 8 task) + 정밀분석(legal_analysis: 인용검증·판례생사·행위시법·영향그래프) + 시점 비교(time_travel) + 상황별 5단계 안내(action_plan) + 국세청 해석례(nts)",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -56,7 +56,7 @@
56
56
  "express": "^5.2.1",
57
57
  "kordoc": "^3.0.0",
58
58
  "pdfjs-dist": "^5.5.207",
59
- "zod": "^3.25.76 || ^4.0.0"
59
+ "zod": "^4.0.0"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/express": "^5.0.6",