korean-law-mcp 2.1.6 → 2.3.0

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.
Files changed (95) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +198 -279
  3. package/build/cli.js +3 -303
  4. package/build/index.js +2 -2
  5. package/build/lib/annex-file-parser.d.ts +5 -5
  6. package/build/lib/annex-file-parser.js +16 -78
  7. package/build/lib/api-client.js +5 -3
  8. package/build/lib/cli-executor.d.ts +16 -0
  9. package/build/lib/cli-executor.js +189 -0
  10. package/build/lib/cli-format.d.ts +39 -0
  11. package/build/lib/cli-format.js +155 -0
  12. package/build/lib/date-parser.d.ts +18 -0
  13. package/build/lib/date-parser.js +172 -0
  14. package/build/lib/query-router.d.ts +3 -0
  15. package/build/lib/query-router.js +18 -0
  16. package/build/lib/risk-rules.d.ts +52 -0
  17. package/build/lib/risk-rules.js +452 -0
  18. package/build/lib/tool-profiles.d.ts +14 -0
  19. package/build/lib/tool-profiles.js +76 -0
  20. package/build/lib/xml-parser.d.ts +23 -1
  21. package/build/lib/xml-parser.js +41 -9
  22. package/build/server/http-server.d.ts +2 -1
  23. package/build/server/http-server.js +10 -3
  24. package/build/server/sse-server.js +13 -9
  25. package/build/tool-registry.d.ts +4 -2
  26. package/build/tool-registry.js +185 -16
  27. package/build/tools/admin-appeals.js +3 -14
  28. package/build/tools/admin-rule.d.ts +13 -0
  29. package/build/tools/admin-rule.js +84 -14
  30. package/build/tools/advanced-search.js +2 -7
  31. package/build/tools/annex.js +24 -6
  32. package/build/tools/article-compare.js +2 -7
  33. package/build/tools/article-detail.d.ts +22 -0
  34. package/build/tools/article-detail.js +134 -0
  35. package/build/tools/article-history.js +2 -7
  36. package/build/tools/article-link-parser.js +2 -7
  37. package/build/tools/article-with-precedents.js +2 -7
  38. package/build/tools/autocomplete.js +2 -7
  39. package/build/tools/batch-articles.js +2 -7
  40. package/build/tools/chains.d.ts +7 -1
  41. package/build/tools/chains.js +84 -0
  42. package/build/tools/committee-decisions.d.ts +32 -0
  43. package/build/tools/committee-decisions.js +29 -62
  44. package/build/tools/comparison.js +2 -7
  45. package/build/tools/constitutional-decisions.js +3 -14
  46. package/build/tools/customs-interpretations.js +16 -57
  47. package/build/tools/document-analysis.d.ts +20 -0
  48. package/build/tools/document-analysis.js +112 -0
  49. package/build/tools/english-law.js +17 -50
  50. package/build/tools/external-links.js +2 -7
  51. package/build/tools/historical-law.js +3 -14
  52. package/build/tools/institutional-rules.d.ts +98 -0
  53. package/build/tools/institutional-rules.js +152 -0
  54. package/build/tools/interpretations.d.ts +2 -0
  55. package/build/tools/interpretations.js +25 -19
  56. package/build/tools/knowledge-base.js +8 -28
  57. package/build/tools/law-history.js +2 -7
  58. package/build/tools/law-linkage.d.ts +45 -0
  59. package/build/tools/law-linkage.js +105 -0
  60. package/build/tools/law-statistics.js +2 -7
  61. package/build/tools/law-system-tree.js +2 -7
  62. package/build/tools/law-text.js +2 -7
  63. package/build/tools/law-tree.js +2 -7
  64. package/build/tools/legal-terms.js +14 -51
  65. package/build/tools/life-law.js +48 -96
  66. package/build/tools/meta-tools.d.ts +19 -0
  67. package/build/tools/meta-tools.js +82 -0
  68. package/build/tools/ordinance-search.js +24 -51
  69. package/build/tools/ordinance.js +2 -7
  70. package/build/tools/precedent-keywords.js +2 -7
  71. package/build/tools/precedent-summary.js +2 -7
  72. package/build/tools/precedents.d.ts +2 -0
  73. package/build/tools/precedents.js +34 -39
  74. package/build/tools/search-all.js +2 -7
  75. package/build/tools/search.js +2 -7
  76. package/build/tools/similar-precedents.js +2 -7
  77. package/build/tools/special-admin-appeals.d.ts +70 -0
  78. package/build/tools/special-admin-appeals.js +151 -0
  79. package/build/tools/tax-tribunal-decisions.js +3 -14
  80. package/build/tools/three-tier.js +2 -7
  81. package/build/tools/treaties.d.ts +45 -0
  82. package/build/tools/treaties.js +134 -0
  83. package/build/tools/utils.d.ts +14 -0
  84. package/build/tools/utils.js +55 -5
  85. package/package.json +77 -78
  86. package/build/lib/hwp5-parser.d.ts +0 -2
  87. package/build/lib/hwp5-parser.js +0 -176
  88. package/build/lib/hwp5-record.d.ts +0 -24
  89. package/build/lib/hwp5-record.js +0 -101
  90. package/build/lib/hwpx-parser.d.ts +0 -2
  91. package/build/lib/hwpx-parser.js +0 -199
  92. package/build/lib/hwpx-table.d.ts +0 -25
  93. package/build/lib/hwpx-table.js +0 -154
  94. package/build/lib/pdf-parser.d.ts +0 -23
  95. package/build/lib/pdf-parser.js +0 -213
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Chris
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Chris
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,279 +1,198 @@
1
- # Korean Law MCP Server & CLI
2
-
3
- 법제처 Open API 기반 한국 법령 MCP 서버 + CLI. 64개 도구로 법령, 판례, 행정규칙, 자치법규, 법령해석례 등을 검색·조회·분석할 있다.
4
-
5
- [![MCP Compatible](https://img.shields.io/badge/MCP-1.27-blue)](https://modelcontextprotocol.io)
6
- [![CLI](https://img.shields.io/badge/CLI-korean--law-green)](#cli-사용법)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue)](https://www.typescriptlang.org/)
9
-
10
- ## 주요 특징
11
-
12
- - **MCP + CLI 동시 지원**: MCP 서버(Claude Desktop 등)와 CLI(터미널/스크립트) 모두 사용 가능
13
- - **법률 도메인 특화**: 약칭 자동 인식(`화관법` → `화학물질관리법`), 조문번호 변환(`제38조` ↔ `003800`), 3단 위임 구조 시각화
14
- - **별표/별지서식 본문 추출**: HWPX·HWP 파일을 자동 다운로드 → 텍스트/표를 Markdown으로 변환. PDF는 링크 반환
15
- - **64개 도구**: 법령·판례·행정규칙·자치법규·헌재결정·행정심판·조세심판·관세해석·법령용어 등 포괄
16
- - **캐시**: 검색 1시간, 조문 24시간 TTL
17
-
18
- ## 설치
19
-
20
- ### 사전 준비
21
-
22
- - Node.js 18+
23
- - [법제처 API ](https://open.law.go.kr/LSO/openApi/guideResult.do) (무료)
24
-
25
- ### npm 글로벌 설치
26
-
27
- ```bash
28
- npm install -g korean-law-mcp
29
- ```
30
-
31
- ### MCP 클라이언트 설정
32
-
33
- 아래 JSON을 각 클라이언트 설정 파일에 추가한다.
34
-
35
- ```json
36
- {
37
- "mcpServers": {
38
- "korean-law": {
39
- "command": "korean-law-mcp",
40
- "env": {
41
- "LAW_OC": "your-api-key"
42
- }
43
- }
44
- }
45
- }
46
- ```
47
-
48
- | 클라이언트 | 설정 파일 |
49
- |-----------|----------|
50
- | Claude Desktop | `%APPDATA%\Claude\claude_desktop_config.json` (Win) / `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) |
51
- | Cursor | `.cursor/mcp.json` |
52
- | Windsurf | `.windsurf/mcp.json` |
53
- | Continue | `~/.continue/config.json` (배열 형식: `"mcpServers": [...]`) |
54
- | Zed | `~/.config/zed/settings.json` (`"context_servers"` 키 사용) |
55
-
56
- 설정 후 클라이언트를 재시작하면 바로 사용 가능.
57
-
58
- ### 원격 MCP (설치 없이 바로 사용)
59
-
60
- 공개 엔드포인트를 MCP 클라이언트에 등록하면 설치 없이 사용 가능하다.
61
-
62
- ```json
63
- {
64
- "mcpServers": {
65
- "korean-law": {
66
- "url": "https://korean-law-mcp.fly.dev/mcp"
67
- }
68
- }
69
- }
70
- ```
71
-
72
- > API 키를 헤더로 전달하려면 `x-law-oc` 헤더를 사용한다.
73
-
74
- ## CLI 사용법
75
-
76
- MCP 클라이언트 없이 터미널에서 직접 64개 도구를 실행할 수 있다.
77
-
78
- ### CLI 실행
79
-
80
- ```bash
81
- # 글로벌 설치 후
82
- npm install -g korean-law-mcp
83
- export LAW_OC=your-api-key
84
-
85
- # 법령 검색
86
- korean-law search_law --query "관세법"
87
-
88
- # 조문 조회
89
- korean-law get_law_text --mst 160001 --jo "제38조"
90
-
91
- # 판례 검색
92
- korean-law search_precedents --query "부당해고"
93
-
94
- # 도구 목록
95
- korean-law list
96
-
97
- # 카테고리별 필터
98
- korean-law list --category 판례
99
-
100
- # 도구 상세 도움말
101
- korean-law help search_law
102
-
103
- # JSON으로 파라미터 전달
104
- korean-law get_law_text --json-input '{"mst":"160001","jo":"제38조"}'
105
- ```
106
-
107
- ### npm run으로 실행 (로컬 개발)
108
-
109
- ```bash
110
- npm run cli -- search_law --query "민법"
111
- npm run cli -- list
112
- ```
113
-
114
- ### 파이프 조합
115
-
116
- ```bash
117
- # 검색 결과에서 MST만 추출
118
- korean-law search_law --query "관세법" | grep MST
119
-
120
- # 여러 법령 순차 조회
121
- for mst in 160001 160002; do
122
- korean-law get_law_text --mst "$mst" --jo "제1조"
123
- done
124
- ```
125
-
126
- ### Docker / 자체 배포
127
-
128
- ```bash
129
- docker build -t korean-law-mcp .
130
- docker run -e LAW_OC=your-api-key -p 3000:3000 korean-law-mcp
131
- ```
132
-
133
- MCP 엔드포인트: `https://your-host:3000/mcp`
134
-
135
- ## 도구 목록 (64개)
136
-
137
- ### 검색 (11개)
138
-
139
- | 도구 | 설명 |
140
- |------|------|
141
- | `search_law` | 법령 검색 (약칭 자동 인식) |
142
- | `search_admin_rule` | 행정규칙 검색 (훈령/예규/고시) |
143
- | `search_ordinance` | 자치법규 검색 |
144
- | `search_precedents` | 판례 검색 |
145
- | `search_interpretations` | 법령해석례 검색 |
146
- | `search_all` | 통합 검색 |
147
- | `suggest_law_names` | 법령명 자동완성 |
148
- | `advanced_search` | 고급 검색 (기간/키워드 필터) |
149
- | `get_law_history` | 날짜별 법령 변경이력 |
150
- | `get_annexes` | 별표/별지서식 조회 + HWPX/HWP 본문 추출 |
151
- | `parse_jo_code` | 조문번호 ↔ JO 코드 변환 |
152
-
153
- ### 조회 (9개)
154
-
155
- | 도구 | 설명 |
156
- |------|------|
157
- | `get_law_text` | 법령 조문 전문 |
158
- | `get_admin_rule` | 행정규칙 전문 |
159
- | `get_ordinance` | 자치법규 전문 |
160
- | `get_precedent_text` | 판례 전문 |
161
- | `get_interpretation_text` | 법령해석례 전문 |
162
- | `get_batch_articles` | 여러 조문 일괄 조회 (`laws` 배열로 복수 법령 지원) |
163
- | `get_article_with_precedents` | 조문 + 관련 판례 |
164
- | `compare_old_new` | 신구법 대조 |
165
- | `get_three_tier` | 법률→시행령→시행규칙 3단 비교 |
166
-
167
- ### 분석 (9개)
168
-
169
- | 도구 | 설명 |
170
- |------|------|
171
- | `compare_articles` | 법령 간 조문 비교 |
172
- | `get_law_tree` | 위임 구조 트리 |
173
- | `get_article_history` | 조문 개정 연혁 |
174
- | `summarize_precedent` | 판례 요약 |
175
- | `extract_precedent_keywords` | 판례 키워드 추출 |
176
- | `find_similar_precedents` | 유사 판례 검색 |
177
- | `get_law_statistics` | 법령 통계 |
178
- | `parse_article_links` | 조문 참조 파싱 |
179
- | `get_external_links` | 외부 링크 생성 |
180
-
181
- ### 전문 분야 (4개)
182
-
183
- | 도구 | 설명 |
184
- |------|------|
185
- | `search_tax_tribunal_decisions` | 조세심판원 재결례 검색 |
186
- | `get_tax_tribunal_decision_text` | 재결례 전문 |
187
- | `search_customs_interpretations` | 관세청 법령해석 검색 |
188
- | `get_customs_interpretation_text` | 관세 해석 전문 |
189
-
190
- ### 헌재·행심·위원회 결정 (6개)
191
-
192
- | 도구 | 설명 |
193
- |------|------|
194
- | `search_constitutional_decisions` | 헌법재판소 결정례 검색 |
195
- | `get_constitutional_decision_text` | 헌재 결정 전문 |
196
- | `search_admin_appeals` | 행정심판례 검색 |
197
- | `get_admin_appeal_text` | 행정심판 전문 |
198
- | `search_ftc_decisions` / `search_nlrc_decisions` / `search_pipc_decisions` | 공정위/노동위/개보위 결정 검색 |
199
- | `get_ftc_decision_text` / `get_nlrc_decision_text` / `get_pipc_decision_text` | 결정 전문 |
200
-
201
- ### 지식베이스 (7개)
202
-
203
- | 도구 | 설명 |
204
- |------|------|
205
- | `get_legal_term_kb` | 법령용어 지식베이스 검색 |
206
- | `get_legal_term_detail` | 용어 상세 정의 |
207
- | `get_daily_term` | 일상용어 검색 |
208
- | `get_daily_to_legal` | 일상용어 → 법령용어 |
209
- | `get_legal_to_daily` | 법령용어 → 일상용어 |
210
- | `get_term_articles` | 용어 사용 조문 |
211
- | `get_related_laws` | 관련법령 조회 |
212
-
213
- ### 기타 (2개)
214
-
215
- | 도구 | 설명 |
216
- |------|------|
217
- | `search_ai_law` | 자연어 지능형 검색 (`lawTypes` 필터 지원) |
218
- | `search_english_law` / `get_english_law_text` | 영문법령 검색/조회 |
219
- | `search_historical_law` / `get_historical_law` | 연혁법령 검색/조회 |
220
- | `search_legal_terms` | 법령용어 사전 검색 |
221
-
222
- ### 체인 도구 (7개)
223
-
224
- 여러 도구를 자동 조합하여 복합 리서치를 한 번의 호출로 수행한다.
225
-
226
- | 도구 | 설명 |
227
- |------|------|
228
- | `chain_law_system` | 법체계 파악 (법령검색→3단비교→조문 일괄 조회) |
229
- | `chain_action_basis` | 처분/허가 근거 확인 (법체계→해석례→판례→행심 병렬) |
230
- | `chain_dispute_prep` | 불복/쟁송 대비 (판례+행심+전문결정례 병렬) |
231
- | `chain_amendment_track` | 개정 추적 (신구대조+조문이력) |
232
- | `chain_ordinance_compare` | 조례 비교 연구 (상위법→전국 조례 검색) |
233
- | `chain_full_research` | 종합 리서치 (AI검색→법령→판례→해석) |
234
- | `chain_procedure_detail` | 절차/비용/서식 (법체계→별표→시행규칙별표) |
235
-
236
- ## 사용 예시
237
-
238
- ```
239
- 사용자: "관세법 제38조 알려줘"
240
- → search_law("관세법") → MST 획득 → get_law_text(mst, jo="003800")
241
-
242
- 사용자: "화관법 최근 개정 비교"
243
- → "화관법" → "화학물질관리법" 자동 변환 → compare_old_new(mst)
244
-
245
- 사용자: "근로기준법 제74조 해석례"
246
- → search_interpretations("근로기준법 제74조") → get_interpretation_text(id)
247
-
248
- 사용자: "산업안전보건법 별표1 내용 알려줘"
249
- → get_annexes(lawName="산업안전보건법 별표1") → HWPX 파일 다운로드 → 표/텍스트 Markdown 변환
250
- ```
251
-
252
- ## 환경변수
253
-
254
- | 변수 | 필수 | 기본값 | 설명 |
255
- |------|------|--------|------|
256
- | `LAW_OC` | O | - | 법제처 API 키 ([발급](https://open.law.go.kr/LSO/openApi/guideResult.do)) |
257
- | `PORT` | X | 3000 | HTTP 서버 포트 |
258
- | `CORS_ORIGIN` | X | `*` | CORS 허용 오리진 (프로덕션 배포 시 반드시 설정 권장) |
259
- | `RATE_LIMIT_RPM` | X | 60 | IP당 분당 요청 제한 (0=비활성화) |
260
-
261
- ## 문서
262
-
263
- - [docs/API.md](docs/API.md) - 64개 도구 레퍼런스
264
- - [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) - 시스템 설계
265
- - [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) - 개발 가이드
266
-
267
- ## 라이선스
268
-
269
- MIT - [LICENSE](LICENSE) 참조
270
-
271
- ## 감사
272
-
273
- - [법제처](https://www.law.go.kr) Open API
274
- - [LexDiff](https://github.com/chrisryugj/lexdiff) 검색어 정규화 코드
275
- - [Anthropic](https://anthropic.com) MCP 프로토콜
276
-
277
- ---
278
-
279
- <sub>Made by 류주임 @ 광진구청 AI동호회 AI.Do</sub>
1
+ # Korean Law MCP
2
+
3
+ **대한민국 법령 검색·조회·분석 89개 도구** 법령, 판례, 행정규칙, 자치법규, 조약, 해석례를 AI 어시스턴트나 터미널에서 바로 사용.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/korean-law-mcp.svg)](https://www.npmjs.com/package/korean-law-mcp)
6
+ [![MCP 1.27](https://img.shields.io/badge/MCP-1.27-blue)](https://modelcontextprotocol.io)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
+
9
+ > 법제처 Open API 기반 MCP 서버 + CLI. Claude Desktop, Cursor, Windsurf, Zed, Claude.ai 등에서 바로 사용 가능.
10
+
11
+ [English](./README-EN.md)
12
+
13
+ ![Korean Law MCP 데모](./demo.gif)
14
+
15
+ ---
16
+
17
+ ## v2.3.0 변경사항
18
+
19
+ - **도구 프로필 (lite/full)** — 웹 클라이언트(Claude.ai 등)용 lite 프로필 도입. 89개 → 14개로 자동 축소하여 컨텍스트 소비 87% 절감. `/mcp?profile=lite`로 사용.
20
+ - **체인 8개** + 핵심 직접 도구 4개 + 메타 도구 2개 = 14개로 동일 기능 커버
21
+ - `discover_tools`: 의도/카테고리로 숨겨진 전문 도구 검색
22
+ - `execute_tool`: discover로 찾은 도구를 프록시 실행
23
+ - **kordoc 통합 파서** — 자체 HWP5/HWPX/PDF 파서 5개를 [kordoc](https://github.com/chrisryugj/kordoc) 통합 파서로 교체. 의존성 경량화.
24
+
25
+ <details>
26
+ <summary>v2.2.0 변경사항</summary>
27
+
28
+ - **23개 신규 도구 (64 → 87)** — 조약, 법령-자치법규 연계, 학칙/공단/공공기관 규정, 특별행정심판, 감사원 결정, 조항상세, 문서분석, 행정규칙 신구대조 등 대폭 확장.
29
+ - **문서분석 엔진** — 8종 문서유형 분류, 17개 리스크규칙, 금액/기간 추출, 조항 충돌 탐지.
30
+ - **법령-자치법규 연계 (4개 도구)** — 법률↔조례 위임 체인을 양방향 추적.
31
+ - **조약 지원 (2개 도구)** — 대한민국이 체결한 양자/다자 조약 검색 및 전문 조회.
32
+ - **보안 강화** — CORS 오리진 제어, API 키 헤더 전용, 보안 헤더, 세션 ID 마스킹.
33
+
34
+ </details>
35
+
36
+ <details>
37
+ <summary>v1.8.0 – v1.9.0 기능</summary>
38
+
39
+ - **체인 도구 8개** — 복합 리서치를 한 번의 호출로: `chain_full_research`(AI검색→법령→판례→해석), `chain_law_system`, `chain_action_basis`, `chain_dispute_prep`, `chain_amendment_track`, `chain_ordinance_compare`, `chain_procedure_detail`.
40
+ - **일괄 조문 조회** — `get_batch_articles`가 `laws` 배열로 복수 법령 한 번에 조회.
41
+ - **AI 검색 법령종류 필터** — `search_ai_law`에 `lawTypes` 필터 추가.
42
+ - **구조화 에러 포맷** — `[에러코드] + 도구명 + 제안` 형식으로 64개 도구 통일.
43
+ - **HWP 테이블 수정** — 구형 HWP 파서에서 `paragraph.controls[].content` 경로의 테이블 추출 지원.
44
+
45
+ </details>
46
+
47
+ ---
48
+
49
+ ## 왜 만들었나
50
+
51
+ 대한민국에는 **1,600개 이상의 현행 법률**, **10,000개 이상의 행정규칙**, 그리고 대법원·헌법재판소·조세심판원·관세청까지 이어지는 방대한 판례 체계가 있습니다. 이 모든 게 [법제처](https://www.law.go.kr)라는 하나의 사이트에 있지만, 개발자 경험은 최악입니다.
52
+
53
+ 프로젝트는 전체 법령 시스템을 **89개 구조화된 도구**로 감싸서, AI 어시스턴트나 스크립트에서 바로 호출할 수 있게 만듭니다. 법제처를 백 번째 수동 검색하다 지친 공무원이 만들었습니다.
54
+
55
+ ---
56
+
57
+ ## 빠른 시작
58
+
59
+ ### MCP 서버 (Claude Desktop / Cursor / Windsurf)
60
+
61
+ ```bash
62
+ npm install -g korean-law-mcp
63
+ ```
64
+
65
+ MCP 클라이언트 설정에 추가:
66
+
67
+ ```json
68
+ {
69
+ "mcpServers": {
70
+ "korean-law": {
71
+ "command": "korean-law-mcp",
72
+ "env": {
73
+ "LAW_OC": "your-api-key"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ```
79
+
80
+ API 키는 [법제처 Open API](https://open.law.go.kr/LSO/openApi/guideResult.do)에서 무료 발급.
81
+
82
+ | 클라이언트 | 설정 파일 |
83
+ |-----------|----------|
84
+ | Claude Desktop | `%APPDATA%\Claude\claude_desktop_config.json` (Win) / `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) |
85
+ | Cursor | `.cursor/mcp.json` |
86
+ | Windsurf | `.windsurf/mcp.json` |
87
+ | Continue | `~/.continue/config.json` |
88
+ | Zed | `~/.config/zed/settings.json` |
89
+
90
+ ### 원격 MCP (설치 없이 바로)
91
+
92
+ ```json
93
+ {
94
+ "mcpServers": {
95
+ "korean-law": {
96
+ "url": "https://korean-law-mcp.fly.dev/mcp"
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ **Claude.ai 등 웹 클라이언트** — 컨텍스트 절약을 위해 lite 프로필 권장:
103
+
104
+ ```json
105
+ {
106
+ "mcpServers": {
107
+ "korean-law": {
108
+ "url": "https://korean-law-mcp.fly.dev/mcp?profile=lite"
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
114
+ > lite 프로필은 체인 8개 + 핵심 4개 + 메타 2개 = **14개 도구**로 동일 기능 커버. 특수 도구가 필요하면 `discover_tools` → `execute_tool`로 접근.
115
+
116
+ ### CLI
117
+
118
+ ```bash
119
+ npm install -g korean-law-mcp
120
+ export LAW_OC=your-api-key
121
+
122
+ korean-law search_law --query "관세법"
123
+ korean-law get_law_text --mst 160001 --jo "제38조"
124
+ korean-law search_precedents --query "부당해고"
125
+ korean-law list # 89개 전체 도구 목록
126
+ korean-law list --category 판례 # 카테고리별 필터
127
+ korean-law help search_law # 도구 도움말
128
+ ```
129
+
130
+ ---
131
+
132
+ ## 사용 예시
133
+
134
+ ```
135
+ "관세법 제38조 알려줘"
136
+ → search_law("관세법") → MST 획득 → get_law_text(mst, jo="003800")
137
+
138
+ "화관법 최근 개정 비교"
139
+ "화관법" "화학물질관리법" 자동 변환 → compare_old_new(mst)
140
+
141
+ "근로기준법 제74조 해석례"
142
+ search_interpretations("근로기준법 제74조") get_interpretation_text(id)
143
+
144
+ "산업안전보건법 별표1 내용 알려줘"
145
+ get_annexes(lawName="산업안전보건법 별표1") HWPX 파일 다운로드 → 표/텍스트 Markdown 변환
146
+ ```
147
+
148
+ ---
149
+
150
+ ## 도구 목록 (89개)
151
+
152
+ | 카테고리 | 개수 | 주요 도구 |
153
+ |----------|------|----------|
154
+ | **검색** | 11 | `search_law`, `search_precedents`, `search_all`, `get_annexes` |
155
+ | **조회** | 9 | `get_law_text`, `get_batch_articles`, `compare_old_new`, `get_three_tier` |
156
+ | **분석** | 10 | `compare_articles`, `get_law_tree`, `summarize_precedent`, `analyze_document` |
157
+ | **전문: 조세/관세** | 4 | `search_tax_tribunal_decisions`, `search_customs_interpretations` |
158
+ | **전문: 헌재/행심** | 4 | `search_constitutional_decisions`, `search_admin_appeals` |
159
+ | **전문: 위원회 결정** | 8 | 공정위, 개보위, 노동위, 감사원 |
160
+ | **특별행정심판** | 4 | `search_acr_special_appeals`, `search_appeal_review_decisions` |
161
+ | **법령-자치법규 연계** | 4 | `get_linked_ordinances`, `get_delegated_laws` |
162
+ | **조약** | 2 | `search_treaties`, `get_treaty_text` |
163
+ | **학칙/공단/공공기관** | 6 | `search_school_rules`, `search_public_corp_rules`, `search_public_institution_rules` |
164
+ | **지식베이스** | 7 | `get_legal_term_kb`, `get_daily_to_legal`, `get_related_laws` |
165
+ | **체인** | 8 | `chain_full_research`, `chain_law_system`, `chain_document_review` |
166
+ | **메타** | 2 | `discover_tools`, `execute_tool` (lite 프로필용) |
167
+ | **기타** | 10 | AI 검색, 영문법령, 연혁법령, 법령용어, 약칭, 법체계도, 행정규칙비교 |
168
+
169
+ 전체 도구 상세는 [영문 README](./README-EN.md#tool-categories-89-total) 참조.
170
+
171
+ ---
172
+
173
+ ## 주요 특징
174
+
175
+ - **89개 법률 도구** 법령, 판례, 행정규칙, 자치법규, 헌재결정, 조세심판, 관세해석, 조약, 학칙/공단/공공기관 규정, 법령용어
176
+ - **MCP + CLI** Claude Desktop에서도, 터미널에서도 같은 89개 도구 사용
177
+ - **법률 도메인 특화** — 약칭 자동 인식(`화관법` → `화학물질관리법`), 조문번호 변환(`제38조` ↔ `003800`), 3단 위임 구조 시각화
178
+ - **별표/별지서식 본문 추출** HWPX·HWP 파일 자동 다운로드 → 표/텍스트를 Markdown 변환
179
+ - **8개 체인 도구** 복합 리서치를 한 번의 호출로 (예: `chain_full_research`: AI검색→법령→판례→해석)
180
+ - **도구 프로필** — 웹 클라이언트용 lite(14개), 파워유저용 full(89개) 자동 선택
181
+ - **캐시** 검색 1시간, 조문 24시간 TTL
182
+ - **원격 엔드포인트** — 설치 없이 `https://korean-law-mcp.fly.dev/mcp`로 바로 사용
183
+
184
+ ---
185
+
186
+ ## 문서
187
+
188
+ - [docs/API.md](docs/API.md) 89개 도구 레퍼런스 (프로필 포함)
189
+ - [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) — 시스템 설계
190
+ - [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) 개발 가이드
191
+
192
+ ## 라이선스
193
+
194
+ [MIT](./LICENSE)
195
+
196
+ ---
197
+
198
+ <sub>Made by 류주임 @ 광진구청 AI동호회 AI.Do</sub>