Skip to main content
Glama

LexLink Korean Law MCP Server

by rabqatab
README_kr.mdโ€ข21.4 kB
[๐Ÿ‡บ๐Ÿ‡ธ EN](README.md) | [๐Ÿ‡ฐ๐Ÿ‡ท **KR**](README_kr.md) # LexLink MCP ์„œ๋ฒ„ ๋ฒ•์ œ์ฒ˜ ๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด ๊ณต๋™ํ™œ์šฉ Open API๋ฅผ ์œ„ํ•œ MCP (Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ## ๊ฐœ์š” ์ด MCP ์„œ๋ฒ„๋Š” Claude ๋ฐ ๊ธฐํƒ€ LLM ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•œ๊ตญ ๋ฒ•๋ น ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค: - **๋ฒ•๋ น** (๋ฒ•๋ฅ , ๋Œ€ํ†ต๋ น๋ น, ๋ถ€๋ น ๋“ฑ) - **ํŒ๋ก€** (๋Œ€๋ฒ•์›, ๊ฐ๊ธ‰ ๋ฒ•์› ํŒ๊ฒฐ) - **๋ฒ•๋ นํ•ด์„๋ก€** (๋ฒ•์ œ์ฒ˜ ๋ฐ ๊ฐ ๋ถ€์ฒ˜ ์œ ๊ถŒํ•ด์„) - **์ž์น˜๋ฒ•๊ทœ** (์กฐ๋ก€, ๊ทœ์น™ ๋“ฑ) ## ์ฃผ์š” ๊ธฐ๋Šฅ ### 7๊ฐœ์˜ MCP ๋„๊ตฌ 1. **search_laws** - ๋ฒ•๋ น ๊ฒ€์ƒ‰ 2. **get_law_details** - ํŠน์ • ๋ฒ•๋ น์˜ ์ „๋ฌธ(ๅ…จๆ–‡) ์กฐํšŒ 3. **search_case_law** - ํŒ๋ก€ ๊ฒ€์ƒ‰ 4. **get_case_details** - ํŠน์ • ํŒ๋ก€์˜ ์ „๋ฌธ ์กฐํšŒ 5. **search_legal_interpretations** - ๋ฒ•๋ นํ•ด์„๋ก€ ๊ฒ€์ƒ‰ 6. **get_legal_interpretation_details** - ํŠน์ • ๋ฒ•๋ นํ•ด์„๋ก€์˜ ์ „๋ฌธ ์กฐํšŒ 7. **search_local_ordinances** - ์ž์น˜๋ฒ•๊ทœ ๊ฒ€์ƒ‰ ### ๋‚ด์žฅ ๊ธฐ๋Šฅ - โœ… **์ง€๋Šฅํ˜• ๊ฒ€์ƒ‰ ์ˆœ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜** - ์ •ํ™•ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์šฐ์„  ํ‘œ์‹œ (์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒฐ๊ณผ ์šฐ์„ ) - โœ… ๋น„๋™๊ธฐ(Async) ์ฒ˜๋ฆฌ๋กœ ๋น ๋ฅธ ์‘๋‹ต ์†๋„ - โœ… ์ž๋™ ์š”์ฒญ ์ œํ•œ (0.5์ดˆ ๊ฐ„๊ฒฉ) - โœ… XML ์‘๋‹ต ์ž๋™ ํŒŒ์‹ฑ - โœ… ์ข…ํ•ฉ์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ - โœ… ์™„๋ฒฝํ•œ ํƒ€์ž… ํžŒํŠธ - โœ… LLM์„ ์œ„ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช… ํฌํ•จ #### ๐ŸŽฏ ์Šค๋งˆํŠธ ๊ฒ€์ƒ‰ ์ˆœ์œ„ ๊ณต์‹ API๋Š” ๋‹จ์ˆœ ๋ฌธ์ž์—ด ๋งค์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ '๊ฐ€๋‚˜๋‹ค'์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋ถ€์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜์—ฌ ์ด๋ฅผ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค: **๋ฌธ์ œ:** "๋ฏผ๋ฒ•" ๊ฒ€์ƒ‰ ์‹œ "๋‚œ๋ฏผ๋ฒ•"์ด ๋จผ์ € ๋‚˜์˜ด โŒ **ํ•ด๊ฒฐ:** ํด๋ผ์ด์–ธํŠธ ์ธก ์ˆœ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋จผ์ € ๋‚˜์˜ด โœ… ``` ๊ฒ€์ƒ‰์–ด: "๋ฏผ๋ฒ•" ์ˆœ์œ„ ์ ์šฉ ์ „: ๋‚œ๋ฏผ๋ฒ•, ๋‚œ๋ฏผ๋ฒ• ์‹œํ–‰๋ น, ๋ฏผ๋ฒ•... ์ˆœ์œ„ ์ ์šฉ ํ›„: ๋ฏผ๋ฒ•, ๋ฏผ๋ฒ•๋ฒ•์ธ๊ทœ์น™, ๋ฏผ๋ฒ•์ œ312์กฐ... ``` **์ž‘๋™ ์›๋ฆฌ:** ์ˆœ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ ๊ธฐ์ค€์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค: 1. **์ •ํ™•ํ•œ ์ผ์น˜** (์ ์ˆ˜: 1000) - ๊ฒ€์ƒ‰์–ด์™€ ๋ฒ•๋ น๋ช…์ด ์ •ํ™•ํžˆ ์ผ์น˜ 2. **๊ฒ€์ƒ‰์–ด๋กœ ์‹œ์ž‘** (์ ์ˆ˜: 100) - ๋ฒ•๋ น๋ช…์ด ๊ฒ€์ƒ‰์–ด๋กœ ์‹œ์ž‘ 3. **๋‹จ์–ด ๊ฒฝ๊ณ„ ์ผ์น˜** (์ ์ˆ˜: 10) - ๊ฒ€์ƒ‰์–ด๊ฐ€ ์‹œ์ž‘ ๋ถ€๋ถ„์ด๋‚˜ ๊ณต๋ฐฑ ๋‹ค์Œ์— ์œ„์น˜ 4. **๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ผ์น˜** (์ ์ˆ˜: 1) - ๊ฒ€์ƒ‰์–ด๊ฐ€ ์–ด๋””๋“  ํฌํ•จ 5. **๊ธธ์ด ํŒจ๋„ํ‹ฐ** - ๋” ์งง๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ฒฐ๊ณผ ์šฐ์„  **์Šค๋งˆํŠธ ํŽ˜์นญ:** ์ ์€ ์ˆ˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์š”์ฒญํ•  ๋•Œ (display < 20), ์‹œ์Šคํ…œ์€ ์ž๋™์œผ๋กœ 5๋ฐฐ ๋” ๋งŽ์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ€์ ธ์™€ ์ˆœ์œ„๋ฅผ ๋งค๊ธด ํ›„, ์ƒ์œ„ ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•ญ์ƒ ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ ๋†’์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. **์ ์šฉ ๋Œ€์ƒ:** search_laws, search_case_law, search_legal_interpretations **ํ•„์š” ์‹œ ๋น„ํ™œ์„ฑํ™”:** `auto_rank=False` ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์›๋ณธ API ๊ฒฐ๊ณผ ํš๋“ ## API ์ปค๋ฒ„๋ฆฌ์ง€ **๊ณต์‹ ๋ฒ•์ œ์ฒ˜ API: 125๊ฐœ ์—”๋“œํฌ์ธํŠธ | ํ˜„์žฌ ๊ตฌํ˜„: 6๊ฐœ ์—”๋“œํฌ์ธํŠธ (5%)** ๋ฒ•์ œ์ฒ˜ ๊ณต์‹ API๋Š” 17๊ฐœ ์ด์ƒ์˜ ์นดํ…Œ๊ณ ๋ฆฌ์— ๊ฑธ์ณ 125๊ฐœ์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ณธ MCP ์„œ๋ฒ„๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฒ•๋ฅ  ๋ฆฌ์„œ์น˜ ์—…๋ฌด์˜ ์•ฝ 80%๋ฅผ ์ปค๋ฒ„ํ•˜๋Š” ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ 6๊ฐœ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ### โœ… ํ˜„์žฌ ๊ตฌํ˜„๋œ API (6๊ฐœ) | ์นดํ…Œ๊ณ ๋ฆฌ | API | ์ƒํƒœ | ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ | |----------|-----|------|-------------| | **๋ฒ•๋ น** | ๋ฒ•๋ น ๊ฒ€์ƒ‰ | โœ… ๊ตฌํ˜„์™„๋ฃŒ | "๋ฏผ๋ฒ•" ๊ฒ€์ƒ‰ ์‹œ 9๊ฑด | | **๋ฒ•๋ น** | ๋ฒ•๋ น ์ƒ์„ธ ์กฐํšŒ | โœ… ๊ตฌํ˜„์™„๋ฃŒ | 57๊ฐœ ์กฐ๋ฌธ ์กฐํšŒ | | **ํŒ๋ก€** | ํŒ๋ก€ ๊ฒ€์ƒ‰ | โœ… ๊ตฌํ˜„์™„๋ฃŒ | 16,373๊ฑด ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ | | **ํŒ๋ก€** | ํŒ๋ก€ ์ƒ์„ธ ์กฐํšŒ | โœ… ๊ตฌํ˜„์™„๋ฃŒ | ์ „๋ฌธ ์กฐํšŒ ์„ฑ๊ณต | | **๋ฒ•๋ นํ•ด์„๋ก€** | ๋ฒ•๋ นํ•ด์„๋ก€ ๊ฒ€์ƒ‰ | โœ… ๊ตฌํ˜„์™„๋ฃŒ | 257๊ฑด ๊ฒ€์ƒ‰ | | **์ž์น˜๋ฒ•๊ทœ** | ์ž์น˜๋ฒ•๊ทœ ๊ฒ€์ƒ‰ | โœ… ๊ตฌํ˜„์™„๋ฃŒ | 4,551๊ฑด ๊ฒ€์ƒ‰ | ### โŒ ๋ฏธ๊ตฌํ˜„ API (119๊ฐœ) ๊ณต์‹ API์—์„œ ์ œ๊ณตํ•˜์ง€๋งŒ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ API ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค: #### ๐Ÿ“š ๋ฒ•๋ น ๊ด€๋ จ - ์ถ”๊ฐ€ 9๊ฐœ API - โŒ ๋ฒ•๋ น ์—ฐํ˜ - ๋ฒ• ๊ฐœ์ • ์ด๋ ฅ ์ถ”์  - โŒ ์กฐ๋ฌธ๋ณ„ ์ƒ์„ธ์ •๋ณด - ํŠน์ • ์กฐ๋ฌธ ์‹ฌ์ธต ๋ถ„์„ - โŒ ์˜๋ฌธ๋ฒ•๋ น - ํ•œ๊ตญ ๋ฒ•๋ น์˜ ์˜๋ฌธ ๋ฒˆ์—ญ๋ณธ - โŒ ๋ฒ•๋ น ์ฒด๊ณ„๋„ - ๋ฒ•๋ น์˜ ์‹œ๊ฐ์  ๊ณ„์ธต ๊ตฌ์กฐ - โŒ ์‹ ๊ตฌ๋ฒ•๋ น๋น„๊ต - ๊ฐœ์ • ์ „ํ›„ ๋น„๊ต - โŒ 3๋‹จ ๋น„๊ต - ์—ฌ๋Ÿฌ ๋ฒ„์ „ ๋น„๊ต - โŒ ๋ฒ•๋ น๋ช…์•ฝ์นญ - ๊ณต์‹ ์•ฝ์นญ - โŒ ์‚ญ์ œ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก - ๊ณผ๊ฑฐ ์‚ญ์ œ๋œ ์กฐ๋ฌธ - โŒ ์ผ๊ด„๋ณด๊ธฐ - ์š”์•ฝ ๋ณด๊ธฐ #### ๐Ÿ“‹ ํ–‰์ •๊ทœ์น™ - 2๊ฐœ API - โŒ ํ–‰์ •๊ทœ์น™ ๊ฒ€์ƒ‰ ๋ฐ ์ „๋ฌธ - โŒ ํ–‰์ •๊ทœ์น™ ์‹ ๊ตฌ๋น„๊ต #### โš–๏ธ ํ—Œ๋ฒ•์žฌํŒ์†Œ ๊ฒฐ์ •๋ก€ - 2๊ฐœ API - โŒ ํ—Œ์žฌ๊ฒฐ์ •๋ก€ ๊ฒ€์ƒ‰ - โŒ ํ—Œ์žฌ๊ฒฐ์ •๋ก€ ์ƒ์„ธ ์กฐํšŒ **์ค‘์š”๋„:** ํ—Œ๋ฒ•์†Œ์†ก ์—ฐ๊ตฌ์— ํ•„์ˆ˜์  #### ๐Ÿ“ ํ–‰์ •์‹ฌํŒ๋ก€ - 2๊ฐœ API - โŒ ํ–‰์ •์‹ฌํŒ๋ก€ ๊ฒ€์ƒ‰ - โŒ ํ–‰์ •์‹ฌํŒ๋ก€ ์ƒ์„ธ ์กฐํšŒ **์ค‘์š”๋„:** ํ–‰์ •๋ฒ• ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์ฐธ์กฐ #### ๐Ÿ›๏ธ ๊ฐ์ข… ์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ - 24๊ฐœ API (12๊ฐœ ์œ„์›ํšŒ ร— 2) 12๊ฐœ ์ •๋ถ€ ์œ„์›ํšŒ: 1. โŒ ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ์œ„์›ํšŒ 2. โŒ ๊ณ ์šฉ๋ณดํ—˜์‹ฌ์‚ฌ์œ„์›ํšŒ 3. โŒ ๊ณต์ •๊ฑฐ๋ž˜์œ„์›ํšŒ 4. โŒ ๊ตญ๋ฏผ๊ถŒ์ต์œ„์›ํšŒ 5. โŒ ๊ธˆ์œต์œ„์›ํšŒ 6. โŒ ๋…ธ๋™์œ„์›ํšŒ 7. โŒ ๋ฐฉ์†กํ†ต์‹ ์œ„์›ํšŒ 8. โŒ ์‚ฐ์—…์žฌํ•ด๋ณด์ƒ๋ณดํ—˜์‹ฌ์‚ฌ์œ„์›ํšŒ 9. โŒ ์ค‘์•™ํ† ์ง€์ˆ˜์šฉ์œ„์›ํšŒ 10. โŒ ์ค‘์•™ํ™˜๊ฒฝ๋ถ„์Ÿ์กฐ์ •์œ„์›ํšŒ 11. โŒ ์ฆ๊ถŒ์„ ๋ฌผ์œ„์›ํšŒ 12. โŒ ๊ตญ๊ฐ€์ธ๊ถŒ์œ„์›ํšŒ **์ค‘์š”๋„:** ํŠน์ • ๋ถ„์•ผ์˜ ๊ทœ์ œ ๋ฐ ๋ถ„์Ÿ ๊ฒฐ์ • #### ๐ŸŒ ์กฐ์•ฝ - 2๊ฐœ API - โŒ ์กฐ์•ฝ ๊ฒ€์ƒ‰ - ๊ตญ์ œํ˜‘์ • - โŒ ์กฐ์•ฝ ์ „๋ฌธ **์ค‘์š”๋„:** ๊ตญ์ œ๋ฒ• ๋ฐ ์–‘์ž/๋‹ค์ž ํ˜‘์ • #### ๐Ÿ“„ ๋ณ„ํ‘œยท์„œ์‹ - 6๊ฐœ API - โŒ ๋ฒ•๋ น ์„œ์‹ - โŒ ํ–‰์ •๊ทœ์น™ ์„œ์‹ - โŒ ์ž์น˜๋ฒ•๊ทœ ์„œ์‹ **์ค‘์š”๋„:** ๊ณต์‹ ์ •๋ถ€ ์–‘์‹ ๋ฐ ํ…œํ”Œ๋ฆฟ #### ๐Ÿซ ํ•™์น™ยท๊ณต๋‹จยท๊ณต๊ณต๊ธฐ๊ด€ ๊ทœ์ • - 2๊ฐœ API - โŒ ๊ธฐ๊ด€๋ณ„ ๊ทœ์ • ๊ฒ€์ƒ‰ - โŒ ๊ธฐ๊ด€๊ทœ์ • ์ƒ์„ธ ์กฐํšŒ **์ค‘์š”๋„:** ๊ณต๊ณต๊ธฐ๊ด€์˜ ๋‚ด๋ถ€ ๊ทœ์ • #### ๐Ÿ“– ๋ฒ•๋ น์šฉ์–ด - 2๊ฐœ API - โŒ ๋ฒ•๋ น์šฉ์–ด ๊ฒ€์ƒ‰ - ๋ฒ•๋ฅ  ์šฉ์–ด ์‚ฌ์ „ - โŒ ์šฉ์–ด ์ •์˜ ์ƒ์„ธ **์ค‘์š”๋„:** ๋ฒ•๋ฅ  ์ „๋ฌธ์šฉ์–ด ์ดํ•ด์— ํ•„์ˆ˜ #### ๐Ÿข ์ค‘์•™๋ถ€์ฒ˜ 1์ฐจ ํ•ด์„ - 16๊ฐœ API (8๊ฐœ ๋ถ€์ฒ˜ ร— 2) - โŒ ๊ฐ ์ค‘์•™ ์ •๋ถ€ ๋ถ€์ฒ˜๋ณ„ ํ•ด์„ **์ค‘์š”๋„:** ๊ฐ ๋ถ€์ฒ˜์˜ ๊ณต์‹ ์œ ๊ถŒํ•ด์„ #### โšก ํŠน๋ณ„ํ–‰์ •์‹ฌํŒ - 4๊ฐœ API (2์ข…๋ฅ˜ ร— 2) - โŒ ํŠน๋ณ„ํ–‰์ •์‹ฌํŒ ์œ ํ˜•๋ณ„ #### ๐Ÿ“ฑ ๋ชจ๋ฐ”์ผ API - ์•ฝ 30๊ฐœ - โŒ ์ฃผ์š” API์˜ ๋ชจ๋ฐ”์ผ ์ตœ์ ํ™” ๋ฒ„์ „ **์ฐธ๊ณ :** ํ˜„์žฌ API๋„ ๋ชจ๋ฐ”์ผ์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ, ์ด๋Š” ์ตœ์ ํ™”๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค #### ๐ŸŽฏ ๋งž์ถคํ˜• ์„œ๋น„์Šค - 6๊ฐœ API - โŒ ๋งž์ถคํ˜• ๋ฒ•๋ น ๊ฒ€์ƒ‰ - โŒ ๋งž์ถคํ˜• ํ–‰์ •๊ทœ์น™ - โŒ ๋งž์ถคํ˜• ์ž์น˜๋ฒ•๊ทœ ### ๊ตฌํ˜„ ์šฐ์„ ์ˆœ์œ„ ๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ตฌํ˜„์„ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค: **๐Ÿ”ฅ ์ตœ์šฐ์„  (๋‹ค์Œ์— ์ถ”๊ฐ€ํ•  5๊ฐœ API):** 1. **ํ—Œ๋ฒ•์žฌํŒ์†Œ ๊ฒฐ์ •๋ก€** - ํ—Œ๋ฒ• ์†Œ์†ก ์—ฐ๊ตฌ์— ํ•„์ˆ˜ 2. **ํ–‰์ •์‹ฌํŒ๋ก€** - ํ–‰์ • ์‚ฌ๊ฑด์—์„œ ์ž์ฃผ ์ฐธ์กฐ 3. **์˜๋ฌธ๋ฒ•๋ น** - ๊ตญ์ œ์  ์ ‘๊ทผ์„ฑ 4. **๋ฒ•๋ น ์—ฐํ˜** - ๋ฒ• ๊ฐœ์ • ์ด๋ ฅ ์ถ”์  5. **๋ฒ•๋ น์šฉ์–ด** - ๋ณต์žกํ•œ ๋ฒ•๋ฅ  ์šฉ์–ด ์ •์˜ **โญ ์ค‘๊ฐ„ ์šฐ์„ ์ˆœ์œ„:** 6. ํ–‰์ •๊ทœ์น™ (์ •๋ถ€ ๊ทœ์ •) 7. ๊ณต์ •๊ฑฐ๋ž˜์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ 8. ์กฐ์•ฝ (๊ตญ์ œ ํ˜‘์ •) 9. ๋…ธ๋™์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ 10. ๊ธˆ์œต์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ **๐Ÿ“Œ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„:** - ์„œ์‹ ๋ฐ ๋ณ„ํ‘œ (๋œ ์ž์ฃผ ํ•„์š”) - ๊ธฐ๊ด€ ๊ทœ์ • (ํŠน์ˆ˜ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€) - ๋ชจ๋ฐ”์ผ ์ „์šฉ API (ํ˜„์žฌ API๋กœ ์ถฉ๋ถ„) - ๋งž์ถคํ˜• ์„œ๋น„์Šค (๊ณ ๊ธ‰ ๊ธฐ๋Šฅ) ### ์™œ 6๊ฐœ๋งŒ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”? **์ „๋žต์  ์„ ํƒ:** - 6๊ฐœ API๋กœ ์ผ๋ฐ˜์ ์ธ ๋ฒ•๋ฅ  ๋ฆฌ์„œ์น˜ ์—…๋ฌด์˜ ์•ฝ 80%๋ฅผ ์ปค๋ฒ„ - ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์— ์ง‘์ค‘ - ๋‹ค๋ฅธ API๋“ค์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ํ•ต์‹ฌ ๋„๊ตฌ **์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ถ„์„:** - **๋ฒ•๋ น** โ†’ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฒ•๋ฅ  ๋ฌธ์„œ - **ํŒ๋ก€** โ†’ 16,000๊ฑด ์ด์ƒ์˜ ํŒ๋ก€๋กœ ๋ฒ• ํ•ด์„ ์ฐธ์กฐ - **๋ฒ•๋ นํ•ด์„๋ก€** โ†’ ๊ณต์‹ ์ •๋ถ€ ์œ ๊ถŒํ•ด์„ - **์ž์น˜๋ฒ•๊ทœ** โ†’ ์ง€์—ญ๋ณ„ ์กฐ๋ก€ ๋ฐ ๊ทœ์น™ ### ์„œ๋ฒ„ ํ™•์žฅ ๋ฐฉ๋ฒ• ์ƒˆ๋กœ์šด API๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ํŒจํ„ด์„ ๋”ฐ๋ฅด์„ธ์š”: ```python # lexlink_client.py์— ์ถ”๊ฐ€ async def search_constitutional_cases(self, query: str, display: int = 20): params = { 'OC': self.oc, 'target': 'cnst', # ํ—Œ๋ฒ•์žฌํŒ์†Œ ํƒ€๊ฒŸ 'type': 'XML', 'query': query, 'display': str(display) } response = await self.client.get(self.BASE_SEARCH_URL, params=params) return self._parse_xml(response.text) # main.py์— ์ถ”๊ฐ€ @mcp.tool() async def search_constitutional_cases(query: str, display: int = 20) -> str: """ํ—Œ๋ฒ•์žฌํŒ์†Œ ๊ฒฐ์ •๋ก€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.""" result = await client.search_constitutional_cases(query, display) return json.dumps(result, ensure_ascii=False) ``` API ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ## ์„ค์น˜ ๋ฐฉ๋ฒ• ์ด ํ”„๋กœ์ ํŠธ๋Š” `uv`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค: ```bash # ์ข…์†์„ฑ ์„ค์น˜ uv sync ``` ## ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ### MCP ์„œ๋ฒ„ ์‹คํ–‰ ```bash # ์„œ๋ฒ„ ์‹œ์ž‘ (STDIO ์ „์†ก) uv run python main.py # ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ํ™•์ธ uv run python main.py inspect ``` ### Claude์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์„ค์ •ํ•œ ํ›„ Claude์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ``` ์‚ฌ์šฉ์ž: "๊ทผ๋กœ๊ธฐ์ค€๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๋ฒ•๋ น์„ ๊ฒ€์ƒ‰ํ•ด์ค˜" Claude: [search_laws ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ query="๊ทผ๋กœ๊ธฐ์ค€๋ฒ•"] Claude: "๊ทผ๋กœ๊ธฐ์ค€๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ํŠน์ • ์กฐ๋ฌธ์„ ๋ณด์—ฌ๋“œ๋ฆด๊นŒ์š”?" ์‚ฌ์šฉ์ž: "๋„ค, ์ œ5์กฐ๋ฅผ ๋ณด์—ฌ์ค˜" Claude: [MST ๋ฒˆํ˜ธ๋กœ get_law_details ๋„๊ตฌ ์‚ฌ์šฉ] Claude: "๊ทผ๋กœ๊ธฐ์ค€๋ฒ• ์ œ5์กฐ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค..." ``` ## API ๋„๊ตฌ ์ƒ์„ธ ์„ค๋ช… ### 1. search_laws (๋ฒ•๋ น ๊ฒ€์ƒ‰) ํ‚ค์›Œ๋“œ๋กœ ํ•œ๊ตญ ๋ฒ•๋ น์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. **๋งค๊ฐœ๋ณ€์ˆ˜:** - `query` (str): ํ•œ๊ธ€ ๋˜๋Š” ์˜๋ฌธ ๊ฒ€์ƒ‰์–ด - `display` (int): ํŽ˜์ด์ง€๋‹น ๊ฒฐ๊ณผ ์ˆ˜, ์ตœ๋Œ€ 100 (๊ธฐ๋ณธ๊ฐ’: 20) - `page` (int): ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 1) **๋ฐ˜ํ™˜๊ฐ’:** ๋ฒ•๋ น๋ช…, MST ๋ฒˆํ˜ธ, ๋‚ ์งœ, ์†Œ๊ด€๋ถ€์ฒ˜๊ฐ€ ํฌํ•จ๋œ JSON **์˜ˆ์‹œ:** ```python result = await search_laws(query="๋ฏผ๋ฒ•", display=10) ``` ### 2. get_law_details (๋ฒ•๋ น ์ƒ์„ธ ์กฐํšŒ) ํŠน์ • ๋ฒ•๋ น์˜ ์ „๋ฌธ(๋ชจ๋“  ์กฐ๋ฌธ ํฌํ•จ)์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. **๋งค๊ฐœ๋ณ€์ˆ˜:** - `mst` (str): ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ ๋ฒ•๋ น์ผ๋ จ๋ฒˆํ˜ธ - `effective_date` (str, ์„ ํƒ): ์‹œํ–‰์ผ์ž (YYYYMMDD ํ˜•์‹) **๋ฐ˜ํ™˜๊ฐ’:** ์ „์ฒด ๋ฒ•๋ น ํ…์ŠคํŠธ์™€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ JSON **์˜ˆ์‹œ:** ```python result = await get_law_details(mst="265307") ``` ### 3. search_case_law (ํŒ๋ก€ ๊ฒ€์ƒ‰) ๋ฒ•์› ํŒ๊ฒฐ ๋ฐ ํŒ๋ก€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. **๋งค๊ฐœ๋ณ€์ˆ˜:** - `query` (str): ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ - `display` (int): ํŽ˜์ด์ง€๋‹น ๊ฒฐ๊ณผ ์ˆ˜, ์ตœ๋Œ€ 100 (๊ธฐ๋ณธ๊ฐ’: 20) - `page` (int): ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 1) - `search_scope` (int): 1=์‚ฌ๊ฑด๋ช…๋งŒ, 2=์ „๋ฌธ ๊ฒ€์ƒ‰ (๊ธฐ๋ณธ๊ฐ’: 2) - `court_type` (str, ์„ ํƒ): "400201"=๋Œ€๋ฒ•์›, "400202"=ํ•˜๊ธ‰๋ฒ•์› - `date_range` (str, ์„ ํƒ): "YYYYMMDD~YYYYMMDD" ํ˜•์‹ **๋ฐ˜ํ™˜๊ฐ’:** ์‚ฌ๊ฑด ID, ์‚ฌ๊ฑด๋ช…, ๋ฒ•์›, ๋‚ ์งœ๊ฐ€ ํฌํ•จ๋œ JSON **์˜ˆ์‹œ:** ```python result = await search_case_law(query="์†ํ•ด๋ฐฐ์ƒ", search_scope=2, display=20) ``` ### 4. get_case_details (ํŒ๋ก€ ์ƒ์„ธ ์กฐํšŒ) ํŠน์ • ์‚ฌ๊ฑด์˜ ์ „์ฒด ํŒ๊ฒฐ๋ฌธ์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. **๋งค๊ฐœ๋ณ€์ˆ˜:** - `case_id` (str): ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ ํŒ๋ก€์ผ๋ จ๋ฒˆํ˜ธ **๋ฐ˜ํ™˜๊ฐ’:** ์™„์ „ํ•œ ํŒ๊ฒฐ๋ฌธ์ด ํฌํ•จ๋œ JSON **์˜ˆ์‹œ:** ```python result = await get_case_details(case_id="608121") ``` ### 5. search_legal_interpretations (๋ฒ•๋ นํ•ด์„๋ก€ ๊ฒ€์ƒ‰) ์ •๋ถ€ ๊ธฐ๊ด€์ด ๋ฐœํ–‰ํ•œ ๊ณต์‹ ๋ฒ•๋ น ํ•ด์„์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. **๋งค๊ฐœ๋ณ€์ˆ˜:** - `query` (str): ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ - `display` (int): ํŽ˜์ด์ง€๋‹น ๊ฒฐ๊ณผ ์ˆ˜, ์ตœ๋Œ€ 100 (๊ธฐ๋ณธ๊ฐ’: 20) - `page` (int): ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 1) - `search_scope` (int): 1=์ œ๋ชฉ๋งŒ, 2=์ „๋ฌธ (๊ธฐ๋ณธ๊ฐ’: 1) - `date_range` (str, ์„ ํƒ): "YYYYMMDD~YYYYMMDD" ํ˜•์‹ **๋ฐ˜ํ™˜๊ฐ’:** ํ•ด์„๋ก€ ๋ชฉ๋ก์ด ํฌํ•จ๋œ JSON **์˜ˆ์‹œ:** ```python result = await search_legal_interpretations(query="๊ณ„์•ฝ", display=10) ``` ### 6. search_local_ordinances (์ž์น˜๋ฒ•๊ทœ ๊ฒ€์ƒ‰) ์ง€๋ฐฉ์ž์น˜๋‹จ์ฒด์˜ ์กฐ๋ก€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. **๋งค๊ฐœ๋ณ€์ˆ˜:** - `query` (str): ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ - `display` (int): ํŽ˜์ด์ง€๋‹น ๊ฒฐ๊ณผ ์ˆ˜, ์ตœ๋Œ€ 100 (๊ธฐ๋ณธ๊ฐ’: 20) - `page` (int): ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 1) **๋ฐ˜ํ™˜๊ฐ’:** ์กฐ๋ก€ ๋ชฉ๋ก์ด ํฌํ•จ๋œ JSON **์˜ˆ์‹œ:** ```python result = await search_local_ordinances(query="ํ™˜๊ฒฝ", display=10) ``` ## ์„ค์ • ### API ํ‚ค API ํ‚ค(OC ๋งค๊ฐœ๋ณ€์ˆ˜)๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— `.env` ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์„ธ์š”: ```bash LEXLINK_API_KEY=your_api_key_here ``` API ํ‚ค๋Š” [๋ฒ•์ œ์ฒ˜ ๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ API ํฌํ„ธ](https://open.law.go.kr/LSO/openApi/guideList.do)์—์„œ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. **์ฐธ๊ณ :** `.env` ํŒŒ์ผ์€ `.gitignore`์— ์˜ํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ์—์„œ ์ œ์™ธ๋˜์–ด ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ### MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ • Claude Desktop์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด `claude_desktop_config.json`์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”: ```json { "mcpServers": { "lexlink": { "command": "uv", "args": ["run", "python", "/path/to/lexlink_mcp/main.py"], "cwd": "/path/to/lexlink_mcp" } } } ``` ## ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ``` lexlink_mcp/ โ”œโ”€โ”€ main.py # 7๊ฐœ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ MCP ์„œ๋ฒ„ โ”œโ”€โ”€ lexlink_client.py # API ํด๋ผ์ด์–ธํŠธ ๋ž˜ํผ โ”œโ”€โ”€ pyproject.toml # ์ข…์†์„ฑ โ”œโ”€โ”€ smithery.yaml # Smithery.ai ์„ค์ • โ”œโ”€โ”€ .env # API ํ‚ค (git์— ๋ฏธํฌํ•จ) โ”œโ”€โ”€ README.md # ์˜๋ฌธ ๋ฌธ์„œ โ””โ”€โ”€ README_kr.md # ํ•œ๊ธ€ ๋ฌธ์„œ ``` ## API ์ •๋ณด - **๊ฒ€์ƒ‰ URL:** `http://www.law.go.kr/DRF/lawSearch.do` - **์ƒ์„ธ URL:** `http://www.law.go.kr/DRF/lawService.do` - **์‘๋‹ต ํ˜•์‹:** XML (์ž๋™์œผ๋กœ Python ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜) - **์š”์ฒญ ์ œํ•œ:** ์š”์ฒญ ๊ฐ„ 0.5์ดˆ ์ง€์—ฐ (๋‚ด์žฅ) - **์ตœ๋Œ€ ๊ฒฐ๊ณผ:** ํŽ˜์ด์ง€๋‹น 100๊ฑด - **์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ API:** 125๊ฐœ ์—”๋“œํฌ์ธํŠธ - **ํ˜„์žฌ ๊ตฌํ˜„:** 6๊ฐœ ์—”๋“œํฌ์ธํŠธ (5%) ## ํ…Œ์ŠคํŠธ **ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ (์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2025๋…„ 11์›” 4์ผ):** | ํ…Œ์ŠคํŠธ | ๋„๊ตฌ | ์ƒํƒœ | ์„ธ๋ถ€์‚ฌํ•ญ | |--------|------|------|----------| | 1 | search_laws | โœ… ํ†ต๊ณผ | "๋ฏผ๋ฒ•" ๊ฒ€์ƒ‰ ์‹œ 9๊ฑด ๋ฐœ๊ฒฌ, ์ฒซ ๋ฒˆ์งธ ๊ฒฐ๊ณผ: ๋ฏผ๋ฒ• (์ˆœ์œ„ ์ ์šฉ ํ›„) | | 2 | get_law_details | โœ… ํ†ต๊ณผ | ๋ฏผ๋ฒ• 1,337๊ฐœ ์กฐ๋ฌธ ์กฐํšŒ (MST: 265307) | | 3 | search_case_law | โœ… ํ†ต๊ณผ | "์†ํ•ด๋ฐฐ์ƒ" ๊ฒ€์ƒ‰ ์‹œ 16,373๊ฑด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | | 4 | get_case_details | โœ… ํ†ต๊ณผ | ์ „๋ฌธ ์กฐํšŒ ์„ฑ๊ณต | | 5 | search_legal_interpretations | โœ… ํ†ต๊ณผ | "๊ณ„์•ฝ" ๊ฒ€์ƒ‰ ์‹œ 257๊ฑด | | 6 | get_legal_interpretation_details | โœ… ํ†ต๊ณผ | ์งˆ์˜/ํšŒ๋‹ต ํฌํ•จ ์ „๋ฌธ ์กฐํšŒ โœจ ์‹ ๊ทœ | | 7 | search_local_ordinances | โœ… ํ†ต๊ณผ | "ํ™˜๊ฒฝ" ๊ฒ€์ƒ‰ ์‹œ 4,557๊ฑด | **์„ฑ๋Šฅ ์ง€ํ‘œ:** - ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„: 0.8-1.5์ดˆ - ์š”์ฒญ ์ œํ•œ: 0.5์ดˆ ๊ฐ„๊ฒฉ (๋‚ด์žฅ) - ๋ชจ๋“  ํ•œ๊ธ€ ๋ฌธ์ž ์ •์ƒ ์ธ์ฝ”๋”ฉ โœ“ - ๋ชจ๋“  ์‘๋‹ต์˜ XML ํŒŒ์‹ฑ ์„ฑ๊ณต โœ“ - ๋ฐ์ดํ„ฐ ์†์ƒ ์—†์Œ โœ“ ## ๋ฌธ์ œ ํ•ด๊ฒฐ ### dependencies ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ DeprecationWarning FastMCP 2.11.4 ์ด์ƒ์˜ ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•˜๋ ค๋ฉด `FastMCP()` ์ดˆ๊ธฐํ™”์—์„œ `dependencies` ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ### ์š”์ฒญ ์ œํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‚ด์žฅ๋œ ์š”์ฒญ ์ œํ•œ๊ธฐ๊ฐ€ ์š”์ฒญ ๊ฐ„ 0.5์ดˆ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ### ๋นˆ ๊ฒฐ๊ณผ ์ผ๋ถ€ ์ฟผ๋ฆฌ๋Š” ์ด ๊ฐœ์ˆ˜๊ฐ€ 0๋ณด๋‹ค ํฌ๋”๋ผ๋„ 0๊ฑด์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” API ๋™์ž‘์ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ## ์ฐธ๊ณ  ์ž๋ฃŒ - [๋ฒ•์ œ์ฒ˜ ๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ API ํฌํ„ธ](https://open.law.go.kr/LSO/openApi/guideList.do) - ๊ณต์‹ API ๋ฌธ์„œ (125๊ฐœ ์—”๋“œํฌ์ธํŠธ) - [๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ](https://www.law.go.kr/) - ๋ฉ”์ธ ๋ฒ•๋ น์ •๋ณด ํฌํ„ธ - [FastMCP ๋ฌธ์„œ](https://gofastmcp.com) - MCP ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์„œ ## ๊ธฐ์—ฌํ•˜๊ธฐ ๋” ๋งŽ์€ API๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”: 1. [๊ณต์‹ API ๊ฐ€์ด๋“œ](https://open.law.go.kr/LSO/openApi/guideList.do)์—์„œ ์—”๋“œํฌ์ธํŠธ ์„ธ๋ถ€์ •๋ณด ํ™•์ธ 2. ์ ์ ˆํ•œ ํƒ€๊ฒŸ ํƒ€์ž…์œผ๋กœ `lexlink_client.py`์— ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ 3. `main.py`์— MCP ๋„๊ตฌ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€ 4. ์ด README์˜ ์ปค๋ฒ„๋ฆฌ์ง€ ์—…๋ฐ์ดํŠธ **์šฐ์„ ์ˆœ์œ„ ์˜์—ญ:** 1. **์ตœ์šฐ์„ ์ˆœ์œ„**: ํ—Œ๋ฒ•์žฌํŒ์†Œ ๊ฒฐ์ •๋ก€ ๋ฐ ํ–‰์ •์‹ฌํŒ๋ก€ API 2. **์ค‘๊ฐ„ ์šฐ์„ ์ˆœ์œ„**: ์ถ”๊ฐ€ ์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ 3. **๊ฐœ์„ ์‚ฌํ•ญ**: ๋” ๋‚˜์€ ์ˆœ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์˜๋ฏธ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ 4. **๋ฌธ์„œํ™”**: ๋” ๋งŽ์€ ์˜ˆ์‹œ, ์‚ฌ์šฉ ์‚ฌ๋ก€ ## ๋ผ์ด์„ ์Šค ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ•œ๊ตญ ์ •๋ถ€์˜ ๊ณต๊ฐœ ๋ฒ•๋ น ์ •๋ณด์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ## ์ œ์ž‘ Claude Code์™€ ๋ฒ•์ œ์ฒ˜ ๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ Open API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --- ## ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ (FAQ) ### Q: API ํ‚ค๋Š” ์–ด๋–ป๊ฒŒ ๋ฐœ๊ธ‰๋ฐ›๋‚˜์š”? A: [๋ฒ•์ œ์ฒ˜ ๊ณต๋™ํ™œ์šฉ](https://open.law.go.kr/) ์‚ฌ์ดํŠธ์—์„œ ํšŒ์›๊ฐ€์ž… ํ›„ API ์‹ ์ฒญ์„ ํ•˜๋ฉด 1-2์ผ ๋‚ด์— ์Šน์ธ๋ฉ๋‹ˆ๋‹ค. ### Q: ์ƒ์—…์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”? A: ๋ฒ•์ œ์ฒ˜ ๊ณต๋™ํ™œ์šฉ ์•ฝ๊ด€์„ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณต๊ณต ๋ฐ์ดํ„ฐ๋Š” ์ถœ์ฒ˜ ํ‘œ์‹œ ํ•˜์— ์ž์œ ๋กญ๊ฒŒ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ### Q: ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ์ธ๊ฐ€์š”? A: ๋„ค, ๋ฒ•์ œ์ฒ˜ ๊ณต์‹ API์—์„œ ์ตœ์‹  ๋ฒ•๋ น ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ### Q: ํŒ๋ก€๊ฐ€ ์–ผ๋งˆ๋‚˜ ์žˆ๋‚˜์š”? A: ํ˜„์žฌ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” 8๋งŒ๊ฑด ์ด์ƒ์˜ ํŒ๋ก€๊ฐ€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ### Q: ํ—Œ๋ฒ•์žฌํŒ์†Œ ๊ฒฐ์ •๋ก€๋Š” ์–ธ์ œ ์ถ”๊ฐ€๋˜๋‚˜์š”? A: ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ๋‹ค์Œ ๋ฒ„์ „์—์„œ ์ถ”๊ฐ€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ### Q: ์˜๋ฌธ ๋ฒ•๋ น๋„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‚˜์š”? A: ํ˜„์žฌ๋Š” ํ•œ๊ธ€ ๋ฒ•๋ น๋งŒ ์ง€์›ํ•˜์ง€๋งŒ, ์˜๋ฌธ๋ฒ•๋ น API๋Š” ๊ณต์‹ API์— ์žˆ์œผ๋ฏ€๋กœ ์ถ”๊ฐ€ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ### Q: ๋กœ์ปฌ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋‚˜์š”? A: MCP ์„œ๋ฒ„๋Š” STDIO ์ „์†ก์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋กœ์ปฌ Claude Desktop์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ์‚ฌ์šฉ์„ ์›ํ•˜์‹œ๋ฉด HTTP ์ „์†ก์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ### Q: ๊ฐœ์ธ์ •๋ณด๊ฐ€ ์ˆ˜์ง‘๋˜๋‚˜์š”? A: ์•„๋‹ˆ์š”. ๋ชจ๋“  API ํ˜ธ์ถœ์€ ๋ฒ•์ œ์ฒ˜ ์„œ๋ฒ„๋กœ ์ง์ ‘ ์ „์†ก๋˜๋ฉฐ, ๋ณธ ์„œ๋ฒ„๋Š” ์–ด๋– ํ•œ ๊ฐœ์ธ์ •๋ณด๋„ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --- ## ์‚ฌ์šฉ ์˜ˆ์‹œ ### ์˜ˆ์‹œ 1: ํŠน์ • ๋ฒ•๋ น์˜ ์กฐ๋ฌธ ์ฐพ๊ธฐ ``` ์‚ฌ์šฉ์ž: ๋ฏผ๋ฒ• ์ œ750์กฐ ๋‚ด์šฉ์„ ์•Œ๋ ค์ค˜ Claude๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…: 1. search_laws(query="๋ฏผ๋ฒ•")๋กœ ๋ฏผ๋ฒ• ๊ฒ€์ƒ‰ 2. MST ๋ฒˆํ˜ธ ํ™•์ธ 3. get_law_details(mst="265307")๋กœ ์ „๋ฌธ ์กฐํšŒ 4. ์ œ750์กฐ ๋‚ด์šฉ ์ถ”์ถœ ๋ฐ ์ œ๊ณต ``` ### ์˜ˆ์‹œ 2: ํŒ๋ก€ ์ฐพ๊ธฐ ``` ์‚ฌ์šฉ์ž: ์†ํ•ด๋ฐฐ์ƒ ๊ด€๋ จ ์ตœ๊ทผ ๋Œ€๋ฒ•์› ํŒ๋ก€๋ฅผ ์ฐพ์•„์ค˜ Claude๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…: 1. search_case_law(query="์†ํ•ด๋ฐฐ์ƒ", court_type="400201") 2. ๊ฒฐ๊ณผ ์ค‘ ์ตœ๊ทผ ํŒ๋ก€ ํ•„ํ„ฐ๋ง 3. ์‚ฌ๊ฑด๋ช…, ์‚ฌ๊ฑด๋ฒˆํ˜ธ, ์„ ๊ณ ์ผ์ž ์ œ๊ณต ``` ### ์˜ˆ์‹œ 3: ๋ฒ•๋ น ํ•ด์„ ์ฐพ๊ธฐ ``` ์‚ฌ์šฉ์ž: ๊ณ„์•ฝ ๊ด€๋ จ ๋ฒ•์ œ์ฒ˜ ์œ ๊ถŒํ•ด์„์ด ์žˆ์–ด? Claude๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…: 1. search_legal_interpretations(query="๊ณ„์•ฝ") 2. ๋ฒ•์ œ์ฒ˜ ํšŒ์‹  ๋‚ด์šฉ ๋ชฉ๋ก ์ œ๊ณต 3. ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ํŠน์ • ํ•ด์„ ์ƒ์„ธ ์ œ๊ณต ``` --- ## ๊ธฐ์ˆ  ์Šคํƒ - **์–ธ์–ด:** Python 3.12+ - **ํ”„๋ ˆ์ž„์›Œํฌ:** FastMCP 2.13+ - **HTTP ํด๋ผ์ด์–ธํŠธ:** httpx 0.28+ - **ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ:** uv - **API ์‘๋‹ต:** XML โ†’ Python Dict ์ž๋™ ๋ณ€ํ™˜ - **๋น„๋™๊ธฐ:** asyncio ๊ธฐ๋ฐ˜ ## ์„ฑ๋Šฅ - ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„: 0.8-1.5์ดˆ - ์š”์ฒญ ๊ฐ„ ์ง€์—ฐ: 0.5์ดˆ (์„œ๋ฒ„ ๋ณดํ˜ธ) - ๋Œ€์šฉ๋Ÿ‰ ๋ฒ•๋ น (๋ฏผ๋ฒ• ๋“ฑ): ~2์ดˆ - ๋™์‹œ ์š”์ฒญ: ์ง€์›ํ•˜์ง€ ์•Š์Œ (์ˆœ์ฐจ ์ฒ˜๋ฆฌ) ## ๋ณด์•ˆ - API ํ‚ค๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌ ๊ถŒ์žฅ - HTTPS ๋ฏธ์ง€์› (๋ฒ•์ œ์ฒ˜ API๊ฐ€ HTTP๋งŒ ์ œ๊ณต) - ์ž…๋ ฅ ๊ฒ€์ฆ ํฌํ•จ - SQL ์ธ์ ์…˜ ๋ถˆ๊ฐ€ (API ํ˜ธ์ถœ๋งŒ ์‚ฌ์šฉ) ## ๋ณ€๊ฒฝ ์ด๋ ฅ (Changelog) ### ๋ฒ„์ „ 0.1.0 (2025๋…„ 11์›” 3์ผ) #### โœจ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ **์ง€๋Šฅํ˜• ๊ฒ€์ƒ‰ ์ˆœ์œ„** - ์ •ํ™•ํ•œ ์ผ์น˜ ์šฐ์„ ์ˆœ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ ‘๋‘์‚ฌ ๋งค์นญ ๋ฐ ๋‹จ์–ด ๊ฒฝ๊ณ„ ๊ฐ์ง€ - ์Šค๋งˆํŠธ ํŽ˜์นญ: display < 20์ผ ๋•Œ ์ž๋™์œผ๋กœ 5๋ฐฐ ๋” ๋งŽ์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€ ์ˆœ์œ„ ๋งค๊น€ - search_laws, search_case_law, search_legal_interpretations์— ์ ์šฉ - `auto_rank=False` ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋น„ํ™œ์„ฑํ™” ๊ฐ€๋Šฅ **๊ฒฐ๊ณผ:** - ์ด์ „: "๋ฏผ๋ฒ•" ๊ฒ€์ƒ‰ ์‹œ "๋‚œ๋ฏผ๋ฒ•"์ด ์ฒซ ๋ฒˆ์งธ๋กœ ํ‘œ์‹œ โŒ - ์ดํ›„: "๋ฏผ๋ฒ•" ๊ฒ€์ƒ‰ ์‹œ "๋ฏผ๋ฒ•"์ด ์ฒซ ๋ฒˆ์งธ๋กœ ํ‘œ์‹œ โœ… **ํ•ต์‹ฌ ๊ตฌํ˜„** - ํ•œ๊ตญ ๋ฒ•๋ น ์ •๋ณด๋ฅผ ์œ„ํ•œ 6๊ฐœ์˜ MCP ๋„๊ตฌ - ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์œ„ํ•œ ๋น„๋™๊ธฐ(Async/await) ์ฒ˜๋ฆฌ - ์š”์ฒญ ์ œํ•œ (0.5์ดˆ ๊ฐ„๊ฒฉ) - ํฌ๊ด„์ ์ธ XML ํŒŒ์‹ฑ - ํƒ€์ž… ํžŒํŠธ์™€ ์ƒ์„ธํ•œ ์„ค๋ช… - ๋ชจ๋“  ์ž‘์—…์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ **API ์ปค๋ฒ„๋ฆฌ์ง€** - 125๊ฐœ ์—”๋“œํฌ์ธํŠธ ์ค‘ 6๊ฐœ ๊ตฌํ˜„ - ์ผ๋ฐ˜์ ์ธ ๋ฒ•๋ฅ  ๋ฆฌ์„œ์น˜ ์—…๋ฌด์˜ ์•ฝ 80% ์ปค๋ฒ„ **ํ…Œ์ŠคํŠธ** - 6๊ฐœ ๋„๊ตฌ ๋ชจ๋‘ ๊ฒ€์ฆ๋œ ์ข…ํ•ฉ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ - ์‹ค์ œ API ๋ฐ์ดํ„ฐ๋กœ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ํ†ต๊ณผ - ์„ฑ๋Šฅ ์ง€ํ‘œ ์ถ”์  ๋ฐ ๋ฌธ์„œํ™” ### ๋กœ๋“œ๋งต **v0.2 (๊ณ„ํš)** - ํ—Œ๋ฒ•์žฌํŒ์†Œ ๊ฒฐ์ •๋ก€ API - ํ–‰์ •์‹ฌํŒ๋ก€ API - ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•œ API ํ‚ค ๊ด€๋ฆฌ - ์ž์ฃผ ์•ก์„ธ์Šค๋˜๋Š” ๋ฒ•๋ น์— ๋Œ€ํ•œ ์‘๋‹ต ์บ์‹ฑ **v0.3 (๊ณ„ํš)** - ์˜๋ฌธ๋ฒ•๋ น ์ง€์› - ๋ฒ•๋ น ์—ฐํ˜ ์ถ”์  - ๊ณต์ •๊ฑฐ๋ž˜์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ - ๋…ธ๋™์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ - ๋ฒ•๋ น์šฉ์–ด ์‚ฌ์ „ **v1.0 (๋ชฉํ‘œ)** - ๋ชจ๋“  ์ฃผ์š” ์œ„์›ํšŒ ๊ฒฐ์ •๋ฌธ ์ง€์› - ์กฐ์•ฝ ๊ฒ€์ƒ‰ - ์„ฑ๋Šฅ ์ตœ์ ํ™” - ๊ณ ๊ธ‰ ํ•„ํ„ฐ๋ง ์˜ต์…˜ ## ์—ฐ๋ฝ์ฒ˜ ์ด์Šˆ๋‚˜ ์ œ์•ˆ์‚ฌํ•ญ์€ GitHub Issues๋ฅผ ํ†ตํ•ด ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”. --- **๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ:** 2025๋…„ 11์›” 3์ผ **๋ฒ„์ „:** 0.1.0 **์ƒํƒœ:** ์•ˆ์ • (Stable)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rabqatab/LexLink_ko_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server