LexLink-ko-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LexLink-ko-mcpSearch for the English version of the Korean Commercial Act"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ Read this in other languages: English | ํ๊ตญ์ด (Korean)
LexLink is an MCP (Model Context Protocol) server that exposes the Korean National Law Information API (open.law.go.kr) to AI agents and LLM applications. It enables AI systems to search, retrieve, and analyze Korean legal information through standardized MCP tools.
Features
54 MCP Tools + 2 MCP Resources for comprehensive Korean law information access
Search and retrieve Korean laws (effective date & announcement date)
Search and retrieve English-translated laws
Search and retrieve administrative rules (ํ์ ๊ท์น)
Query specific articles, paragraphs, and sub-items
Law-ordinance linkage (๋ฒ๋ น-์์น๋ฒ๊ท ์ฐ๊ณ)
Delegated law information (์์๋ฒ๋ น)
Phase 3 - Case Law & Legal Research
Court precedents (ํ๋ก)
Constitutional Court decisions (ํ์ฌ๊ฒฐ์ ๋ก)
Legal interpretations (๋ฒ๋ นํด์๋ก)
Administrative appeal decisions (ํ์ ์ฌํ๋ก)
Phase 4 - Article Citation Extraction
Extract legal citations from any law article (100% accuracy)
NEW: Phase 5 - AI-Powered Search
Semantic search for natural language queries (aiSearch)
Related laws discovery (aiRltLs_search)
MCP Resources - Law ID Cache
Cached mapping of ~20 frequently-used law names to stable ๋ฒ๋ นID codes
Template lookup by Korean name or abbreviation (
lexlink://law/{name})Dynamic caching: search results automatically populate the cache
Smart Features (inspired by korean-law-mcp):
Intelligent Caching - Per-tool TTL caching (search 1hr, articles 24hr, AI search 30min)
Law Name Resolution - Auto-resolves Korean abbreviations (์ํต๋ฒโ์๋ณธ์์ฅ๊ณผ ๊ธ์ตํฌ์์ ์ ๊ดํ ๋ฒ๋ฅ ), 52 seed aliases + dynamic learning
Chain Tools - Multi-step research workflows in one call (Phase 9)
100% Semantic Validation - All Phase 1-5 tools confirmed returning real law data
Error Handling - Actionable error messages with resolution hints
Korean Text Support - Proper UTF-8 encoding for Korean characters
Response Formats - JSON (default), HTML, or XML (multiple formats supported)
Related MCP server: Legal Search MCP
Project Status
๐ Production Ready - Phase 9 Complete!
Metric | Status |
Tools Implemented | 54/54 (100%) โ |
Semantic Validation | 26/26 (Phase 1-5 tools) โ |
MCP Prompts | 9/9 (100%) โ |
MCP Resources | 2 (1 static + 1 template) โ |
API Coverage | ~28% of 191+ endpoints |
LLM Integration | โ Validated (Gemini) |
Code Quality | Clean, documented, tested |
Version | v2.1.0 |
Latest: v2.1.0 โ 54 tools (Phase 9 added), intelligent caching (cache.py), law name resolution (resolver.py), chain tools for multi-step research workflows.
Prerequisites
Python 3.10+
law.go.kr OC identifier: Register at open.law.go.kr
Quick Start
1. Install Dependencies
uv sync2. Configure Your OC Identifier
Option A: Environment Variable (Recommended)
# Set OC in your environment
export OC=your_id_hereOption B: Pass in Tool Arguments
# Override OC in each tool call
eflaw_search(query="๋ฒ๋ น๋ช
", oc="your_id")3. Run the Server
# Stdio transport (for Claude Code, Cursor, etc.)
OC=your_oc uv run stdio
# HTTP transport (for Kakao PlayMCP)
OC=your_oc TRANSPORT=http uv run serveAvailable Tools
Phase 1: Core Law APIs (6 tools)
1. eflaw_search - Search Laws by Effective Date
Search for laws organized by effective date (์ํ์ผ ๊ธฐ์ค).
eflaw_search(
query="์๋์ฐจ๊ด๋ฆฌ๋ฒ", # Search keyword
display=10, # Results per page
type="XML", # Response format
ef_yd="20240101~20241231" # Optional date range
)2. law_search - Search Laws by Announcement Date
Search for laws organized by announcement date (๊ณตํฌ์ผ ๊ธฐ์ค).
law_search(
query="๋ฏผ๋ฒ",
display=10,
type="XML"
)3. eflaw_service - Retrieve Law Content (Effective Date)
Get full law text and articles by effective date.
IMPORTANT: For specific article queries (e.g., "์ 174์กฐ"), use the
joparameter. Some laws have 400+ articles and responses can exceed 1MB withoutjo.
# Get specific article (RECOMMENDED)
eflaw_service(
mst="279823", # Law MST
jo="017400", # Article 174 (์ 174์กฐ)
type="XML"
)
# Get full law (WARNING: large response)
eflaw_service(
id="001823",
type="XML"
)4. law_service - Retrieve Law Content (Announcement Date)
Get full law text and articles by announcement date.
IMPORTANT: For specific article queries (e.g., "์ 174์กฐ"), use the
joparameter. Some laws have 400+ articles and responses can exceed 1MB withoutjo.
# Get specific article (RECOMMENDED)
law_service(
mst="279823", # Law MST
jo="017400", # Article 174 (์ 174์กฐ)
type="XML"
)5. eflaw_josub - Query Article/Paragraph (Effective Date)
Best tool for querying specific articles. Returns only the requested article/paragraph.
eflaw_josub(
mst="279823", # Law MST
jo="017400", # Article 174 (์ 174์กฐ)
type="XML"
)
# jo format: "XXXXXX" where first 4 digits = article (zero-padded), last 2 = branch (00=main)
# Examples: "017400" (์ 174์กฐ), "000300" (์ 3์กฐ), "001502" (์ 15์กฐ์2)6. law_josub - Query Article/Paragraph (Announcement Date)
Best tool for querying specific articles. Returns only the requested article/paragraph.
law_josub(
mst="279823", # Law MST
jo="017200", # Article 172 (์ 172์กฐ)
type="XML"
)Phase 2: Extended APIs (9 tools)
7. elaw_search - Search English-Translated Laws
Search for Korean laws translated to English.
elaw_search(
query="employment",
display=10,
type="XML"
)8. elaw_service - Retrieve English Law Content
Get full English-translated law text.
elaw_service(
id="009589",
type="XML"
)9. admrul_search - Search Administrative Rules
Search administrative rules (ํ๋ น, ์๊ท, ๊ณ ์, ๊ณต๊ณ , ์ง์นจ).
admrul_search(
query="ํ๊ต",
display=10,
type="XML"
)10. admrul_service - Retrieve Administrative Rule Content
Get full administrative rule text with annexes.
admrul_service(
id="62505",
type="XML"
)11. lnkLs_search - Search Law-Ordinance Linkage
Find laws linked to local ordinances.
lnkLs_search(
query="๊ฑด์ถ",
display=10,
type="XML"
)12. lnkLsOrdJo_search - Search Ordinance Articles by Law
Find ordinance articles linked to specific law articles.
lnkLsOrdJo_search(
knd="002118", # Law ID
display=10,
type="XML"
)13. lnkDep_search - Search Law-Ordinance Links by Ministry
Find laws linked to ordinances by government ministry.
lnkDep_search(
org="1400000", # Ministry code
display=10,
type="XML"
)14. drlaw_search - Retrieve Law-Ordinance Linkage Statistics
Get linkage statistics table (HTML format).
drlaw_search(
lid="001823", # Law ID
type="HTML"
)15. lsDelegated_service - Retrieve Delegated Law Information
Get information about delegated laws, rules, and ordinances.
lsDelegated_service(
id="001823",
type="XML"
)Phase 3: Case Law & Legal Research (8 tools - NEW!)
Tip: All
*_servicetools in Phase 3 support asections="summary"parameter to return only a brief summary instead of the full document text.
16. prec_search - Search Court Precedents
Search Korean court precedents from Supreme Court and lower courts.
prec_search(
query="๋ด๋ณด๊ถ",
display=10,
type="XML",
curt="๋๋ฒ์" # Optional: Court name filter
)17. prec_service - Retrieve Court Precedent Full Text
Get complete court precedent text with case details.
prec_service(
id="228541",
type="XML"
)18. detc_search - Search Constitutional Court Decisions
Search Korean Constitutional Court decisions.
detc_search(
query="๋ฒ๊ธ",
display=10,
type="XML"
)19. detc_service - Retrieve Constitutional Court Decision Full Text
Get complete Constitutional Court decision text.
detc_service(
id="58386",
type="XML"
)20. expc_search - Search Legal Interpretations
Search legal interpretation precedents issued by government agencies.
expc_search(
query="์์ฐจ",
display=10,
type="XML"
)21. expc_service - Retrieve Legal Interpretation Full Text
Get complete legal interpretation text.
expc_service(
id="334617",
type="XML"
)22. decc_search - Search Administrative Appeal Decisions
Search Korean administrative appeal decisions.
decc_search(
query="*", # Search all decisions
display=10,
type="XML"
)23. decc_service - Retrieve Administrative Appeal Decision Full Text
Get complete administrative appeal decision text.
decc_service(
id="243263",
type="XML"
)Phase 4: Article Citation Extraction (1 tool - NEW!)
24. article_citation - Extract Citations from Law Article
Extract all legal citations referenced by a specific law article.
# First, search for the law to get MST
eflaw_search(query="๊ฑด์ถ๋ฒ") # Returns MST: 268611
# Then extract citations
article_citation(
mst="268611", # Law MST from search result
law_name="๊ฑด์ถ๋ฒ", # Law name
article=3 # Article number (์ 3์กฐ)
)Response:
{
"success": true,
"law_name": "๊ฑด์ถ๋ฒ",
"article": "์ 3์กฐ",
"citation_count": 12,
"internal_count": 4,
"external_count": 8,
"citations": [
{
"type": "external",
"target_law_name": "ใ๊ตญํ ์ ๊ณํ ๋ฐ ์ด์ฉ์ ๊ดํ ๋ฒ๋ฅ ใ",
"target_article": 56,
"target_paragraph": 1
}
]
}Key Features:
100% accuracy via HTML parsing (not LLM-based)
Zero API cost (no external LLM calls)
~350ms average extraction time
Distinguishes internal vs external citations
Phase 5: AI-Powered Search (2 tools - NEW!)
25. aiSearch - AI-Powered Semantic Law Search
โญ PREFERRED TOOL for vague or natural language queries. Use this FIRST when user's intent is unclear or conversational.
Uses intelligent/semantic search to find relevant law articles with full article text.
aiSearch(
query="๋บ์๋ ์ฒ๋ฒ", # Natural language query
search=0, # 0: law articles, 1: appendix, 2: admin rules, 3: admin appendix
display=20, # Results per page
page=1, # Page number
type="JSON" # Response format (JSON default)
)Best for: Natural language queries like "์์ฃผ์ด์ ๋ฒ๊ธ", "์ดํผ ์ฌ์ฐ๋ถํ ", "์์ ๋ฌธ์ "
26. aiRltLs_search - AI-Powered Related Laws Search
โญ PREFERRED TOOL for discovering related laws from vague topics. Use this when user wants to explore laws around a general subject.
Finds laws semantically related to a given law name or keyword.
aiRltLs_search(
query="๋ฏผ๋ฒ", # Law name or keyword
search=0, # 0: law articles, 1: admin rule articles
type="JSON" # Response format (JSON default)
)Best for: Finding related laws like "๋ฏผ๋ฒ" โ ์๋ฒ, ์๋ฃ๋ฒ, ์์ก์ด์ง๋ฒ
Phase 7: Extended Legal Information (18 tools)
Category | Tools |
์์น๋ฒ๊ท (Local Ordinances) |
|
์กฐ์ฝ (Treaties) |
|
๋ฒ๋ น์ ๋ณด ์ง์๋ฒ ์ด์ค (Knowledge Base) |
|
์์ํ ๊ฒฐ์ ๋ฌธ (Committee Decisions) |
|
์ค์๋ถ์ฒ 1์ฐจ ํด์ (Ministry Interpretations) |
|
ํน๋ณํ์ ์ฌํ (Special Appeals) |
|
Phase 9: Chain Tools (5 tools)
Inspired by korean-law-mcp, these tools run multi-step research workflows in a single call โ eliminating the need for an LLM to orchestrate sequential tool calls manually.
Tool | Description |
| Complete legal research: statutes + precedent analysis + interpretations |
| Revision history + article-level diff across amendments |
| All case law sources across 4 databases (ํ๋ก, ํ์ฌ๊ฒฐ์ ๋ก, ๋ฒ๋ นํด์๋ก, ํ์ ์ฌํ๋ก) |
| Full law hierarchy: delegation tree + admin rules + ordinances |
| Cache and resolver performance monitoring |
Tool Selection Guide
When searching Korean law, select tools based on query clarity:
Query Type | Recommended Tools | Examples |
๐ Vague/Natural language |
| "์์ฃผ์ด์ ์ฒ๋ฒ", "์ดํผ ์ฌ์ฐ๋ถํ " |
๐ Specific law/article |
| "ํ๋ฒ ์ 148์กฐ์2", "๋ฏผ๋ฒ ์์ํธ" |
โ๏ธ Case law |
| "๋๋ฒ์ 2023๋ค12345" |
๐ Related laws |
| "๋ฏผ๋ฒ๊ณผ ๊ด๋ จ๋ ๋ฒ๋ฅ " |
Configuration
Environment Variables
Variable | Default | Description |
| (required) | law.go.kr API identifier (email local part) |
|
| API base URL |
|
| HTTP request timeout in seconds |
| (unset) | Set |
|
| Transport type: |
OC Priority
When resolving the OC identifier:
Tool argument (highest priority) -
ocparameter in tool callEnvironment variable -
OCenv var (set via .env or HTTP header middleware)
Usage Examples
Example 1: Basic Search
# Search for automobile management law
result = eflaw_search(
query="์๋์ฐจ๊ด๋ฆฌ๋ฒ",
display=5,
type="XML"
)
# Returns:
{
"status": "ok",
"request_id": "uuid",
"upstream_type": "XML",
"data": {
# Law search results...
}
}Example 2: Search with Date Range
# Find laws effective in 2024
result = eflaw_search(
query="๊ตํต",
ef_yd="20240101~20241231",
type="XML"
)Example 3: Error Handling
# Missing OC parameter
result = eflaw_search(query="test")
# Returns helpful error:
{
"status": "error",
"error_code": "MISSING_OC",
"message": "OC parameter is required but not provided.",
"hints": [
"1. Tool argument: oc='your_value'",
"2. Environment variable: OC=your_value"
]
}Golden MCP Tool Trajectories
These examples demonstrate real-world conversation flows showing how LLMs interact with LexLink tools to answer legal research questions.
Trajectory 1: Basic Law Research
User Query: "What is Article 20 of the Civil Code?"
Tool Calls:
law_search(query="๋ฏผ๋ฒ", display=50, type="XML")โ Find Civil Code IDlaw_service(id="000021", jo="002000", type="XML")โ Retrieve Article 20 text
Result: LLM provides formatted explanation of Civil Code Article 20 with full legal text and context.
Trajectory 2: Court Precedent Analysis
User Query: "Find recent Supreme Court precedents about security interests"
Tool Calls:
prec_search(query="๋ด๋ณด๊ถ", curt="๋๋ฒ์", display=50, type="XML")โ Search Supreme Court precedentsprec_service(id="228541", type="XML")โ Retrieve top precedent details
Result: LLM summarizes key precedents with case numbers, dates, and holdings related to security interests.
Trajectory 3: Cross-Phase Legal Research
User Query: "How does the Labor Standards Act handle overtime, and are there relevant court precedents?"
Tool Calls:
eflaw_search(query="๊ทผ๋ก๊ธฐ์ค๋ฒ", display=50, type="XML")โ Find Labor Standards Acteflaw_service(id="001234", jo="005000", type="XML")โ Retrieve Article 50 (overtime provisions)prec_search(query="๊ทผ๋ก๊ธฐ์ค๋ฒ ์ฐ์ฅ๊ทผ๋ก", display=30, type="XML")โ Search overtime precedentsprec_service(id="234567", type="XML")โ Retrieve leading precedent
Result: LLM provides comprehensive analysis combining statutory text with judicial interpretation, showing how courts apply the overtime provisions.
Trajectory 4: Constitutional Review
User Query: "Has the Constitutional Court reviewed laws about fines?"
Tool Calls:
detc_search(query="๋ฒ๊ธ", display=50, type="XML")โ Search Constitutional Court decisionsdetc_service(id="58386", type="XML")โ Retrieve decision full textlaw_search(query=<law_name_from_decision>, type="XML")โ Find related law for context
Result: LLM explains Constitutional Court holdings on fine-related provisions and their impact on specific laws.
Trajectory 5: Administrative Law Research
User Query: "What administrative rules exist for schools, and are there related legal interpretations?"
Tool Calls:
admrul_search(query="ํ๊ต", display=50, type="XML")โ Search school-related administrative rulesadmrul_service(id="62505", type="XML")โ Retrieve rule contentexpc_search(query="ํ๊ต", display=30, type="XML")โ Search legal interpretationsexpc_service(id="334617", type="XML")โ Retrieve interpretation details
Result: LLM provides overview of administrative framework for schools with official agency interpretations.
Trajectory 6: Comprehensive Legal Analysis
User Query: "I'm researching rental housing disputes. Show me the relevant law, court precedents, and administrative appeal decisions."
Tool Calls:
eflaw_search(query="์ฃผํ์๋์ฐจ๋ณดํธ๋ฒ", display=50, type="XML")โ Find Housing Lease Protection Acteflaw_service(id="002876", type="XML")โ Retrieve full law textprec_search(query="์ฃผํ์๋์ฐจ", display=50, type="XML")โ Search housing lease precedentsprec_service(id="156789", type="XML")โ Retrieve key precedentdecc_search(query="์ฃผํ์๋์ฐจ", display=30, type="XML")โ Search administrative appeal decisionsdecc_service(id="243263", type="XML")โ Retrieve appeal decision
Result: LLM provides comprehensive legal research report covering statutory framework, judicial interpretation, and administrative precedents for rental housing disputes.
Trajectory 7: Citation Network Analysis (Phase 4)
User Query: "What laws does Article 3 of the Building Act cite?"
Tool Calls:
eflaw_search(query="๊ฑด์ถ๋ฒ", display=50, type="XML")โ Find Building Act, get MSTarticle_citation(mst="268611", law_name="๊ฑด์ถ๋ฒ", article=3)โ Extract all citations
Result: LLM provides complete citation analysis showing 12 citations (8 external laws, 4 internal references) including specific article and paragraph references.
Trajectory 8: AI-Powered Natural Language Search (Phase 5)
User Query: "What's the penalty for hit-and-run accidents?"
Tool Calls:
aiSearch(query="๋บ์๋ ์ฒ๋ฒ", search=0, display=20, type="XML")โ Semantic search for hit-and-run penalties
Result: LLM receives full article text from relevant laws (ํน์ ๋ฒ์ฃ ๊ฐ์ค์ฒ๋ฒ ๋ฑ์ ๊ดํ ๋ฒ๋ฅ ์ 5์กฐ์3) with complete provisions about hit-and-run penalties, enabling comprehensive answer without needing to know specific law names.
Trajectory 9: Discovering Related Laws (Phase 5)
User Query: "What laws are related to the Civil Code?"
Tool Calls:
aiRltLs_search(query="๋ฏผ๋ฒ", search=0, type="XML")โ Find semantically related laws
Result: LLM discovers related laws like ์๋ฒ (Commercial Act), ์๋ฃ๋ฒ (Medical Service Act), ์์ก์ด์ง๋ฒ (Act on Special Cases Concerning Expedition of Litigation), showing connections across legal domains.
Key Patterns
AI Tools for Vague Queries: Use
aiSearchoraiRltLs_searchFIRST when user intent is unclear or conversationalSearch First, Then Retrieve: Always search to find IDs before calling service tools
Use display=50-100 for Law Searches: Ensures exact matches are found due to relevance ranking
Combine Phases: Mix Phase 1 (laws), Phase 2 (administrative rules), Phase 3 (precedents), and Phase 5 (AI search) for complete research
Type Parameter: Default is
type="JSON"; specifytype="XML"if your pipeline requires XMLArticle Numbers: Use 6-digit format (e.g., "002000" for Article 20) when querying specific articles
Development
Project Structure
lexlink-ko-mcp/
โโโ src/lexlink/
โ โโโ server.py # Main MCP server with 54 tools
โ โโโ _helpers.py # Shared helpers: run_search, run_service, TOOL_ANNOTATIONS
โ โโโ cache.py # Intelligent per-tool TTL caching (~183 lines)
โ โโโ resolver.py # Korean law name/abbreviation resolution (~225 lines)
โ โโโ http_server.py # HTTP/SSE server for Kakao PlayMCP
โ โโโ stdio_server.py # Stdio transport entry point
โ โโโ params.py # Parameter resolution & mapping
โ โโโ validation.py # Input validation
โ โโโ parser.py # XML parsing utilities
โ โโโ ranking.py # Relevance ranking
โ โโโ citation.py # Article citation extraction (Phase 4)
โ โโโ client.py # HTTP client for law.go.kr API
โ โโโ errors.py # Error codes & responses
โ โโโ raw_logger.py # PlayMCP traffic logging
โ โโโ log_processor.py # Log format converter
โโโ logs/playmcp/ # PlayMCP traffic logs (daily JSONL)
โโโ pyproject.toml # Project configuration
โโโ README.md # This fileRunning Tests
# Install test dependencies
uv sync
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/lexlink --cov-report=html
# Run specific test category
uv run pytest -m unit
uv run pytest -m integration
uv run pytest -m e2eAdding New Tools
Current Status: 54/54 tools implemented (Phase 1-9 complete). Phase 1-5 tools validated.
For implementing additional tools from the 124+ remaining APIs:
Follow the pattern established in
src/lexlink/server.pyUse
ctx: Context = Noneparameter for MCP logging/progressUse generic parser functions (
extract_items_list,update_items_list)Add semantic validation tests
Tool Implementation Pattern:
Each tool is a decorated function with MCP schema
Uses
ctx: Context = Noneparameter for MCP context2-tier OC resolution: tool arg > env var
Generic parser functions work with any XML tag
Comprehensive error handling with actionable hints
Deployment
Deploy to Kakao PlayMCP (HTTP Server)
LexLink can also be deployed as an HTTP server for platforms like Kakao PlayMCP.
Important: Kakao PlayMCP does not accept port numbers in URLs. You must use Nginx as a reverse proxy to serve on port 80.
Quick Start (Local Testing):
# Run the HTTP server
OC=your_oc uv run serve
# Server starts at: http://localhost:8000/sseProduction Setup:
Internet โ Nginx (port 80) โ LexLink (port 8000)PlayMCP Registration:
Field | Value |
MCP Endpoint |
|
Authentication | Key/Token (Header: |
For detailed deployment instructions (AWS EC2, Nginx, systemd, HTTPS), see docs/DEPLOYMENT_GUIDE.md.
PlayMCP Traffic Logging
LexLink includes built-in logging for PlayMCP traffic analysis. Logs are saved in dashboard-compatible JSONL format.
Log Location: logs/playmcp/YYYY-MM-DD.jsonl
Log Schema:
{
"rpc_id": "3",
"request_id": "d8ee45eb",
"session_id": "9ff9dc23431848a4901b4cb6326ba5bd",
"timestamp": "2025-12-25T05:40:23.957987",
"duration_ms": 1.52,
"method": "tools/call",
"tool_name": "aiSearch",
"params": { "arguments": {"query": "๋บ์๋ ์ฒ๋ฒ"} },
"client": "PlayMCP",
"client_version": "2025.0.0",
"protocol_version": "2025-06-18",
"client_ip": "220.64.111.219",
"oc": "user_id",
"status": "success",
"status_code": 200,
"result": { ... }
}Features:
Daily log rotation (one file per day)
Dashboard-compatible format for filtering and analysis
Captures request/response pairs with timing
SSE streaming response parsing
Converting Old Raw Logs:
uv run python -m lexlink.log_processor input.jsonl output.jsonlTroubleshooting
"OC parameter is required" error
Solution: Set your OC identifier using one of the three methods above.
Korean characters not displaying correctly
Solution: Ensure your terminal supports UTF-8:
export PYTHONIOENCODING=utf-8"Timeout" errors
Solution: Increase timeout via environment variable:
export LEXLINK_TIMEOUT=90 # Increase from default 60sServer won't start after updating dependencies
Solution: Re-sync dependencies:
uv sync --reinstallContributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Write tests for new functionality
Ensure all tests pass (
uv run pytest)Commit changes (
git commit -m 'Add amazing feature')Push to branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is open source. See LICENSE file for details.
Acknowledgments
law.go.kr - Korean National Law Information API
MCP - Model Context Protocol by Anthropic
korean-law-mcp - Inspiration for caching, law name resolution, and chain tools (Phase 9)
Support
Issues: GitHub Issues
law.go.kr API: Official Documentation
Changelog
v2.1.0 - 2026-03-30
New: Caching, Law Name Resolution, Chain Tools (Phase 9)
Added intelligent per-tool TTL caching (
cache.py): search 1hr, articles 24hr, AI search 30minAdded law name/abbreviation resolution (
resolver.py): 52 seed aliases + dynamic learningAdded 5 Phase 9 chain tools:
chain_full_research,chain_amendment_track,chain_dispute_prep,chain_law_system,cache_statsInspired by korean-law-mcp
See CHANGELOG.md for full details
v2.0.0 - 2026-03-30
Major Release: Phase 7 Tools, JSON Default, sections Parameter
Added 18 new Phase 7 tools (์์น๋ฒ๊ท, ์กฐ์ฝ, ๋ฒ๋ น์ ๋ณด ์ง์๋ฒ ์ด์ค, ์์ํ ๊ฒฐ์ ๋ฌธ, ์ค์๋ถ์ฒ ํด์, ํน๋ณํ์ ์ฌํ)
JSON is now the default response format (was XML)
Added
sections="summary"parameter for case law service toolsRefactored shared logic into
_helpers.pySee CHANGELOG.md for full details
v1.5.0 - 2026-02-28
Refactor: Remove Smithery Dependency
Removed
smitherypackage and 8 transitive dependenciesSimplified OC resolution to 2-tier (tool arg > env var)
Added
stdio_server.pyentry point for stdio transportSee CHANGELOG.md for full details
For the full changelog (v1.0.0 โ v2.1.0), see CHANGELOG.md.
Powered by MCP
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityAmaintenanceEnables searching, comparing, and analyzing Korean laws and public institution regulations through natural language, integrating 110 MCP tools covering statutes, precedents, and internal rules.Last updated1004814MIT
- FlicenseAqualityDmaintenanceMCP server that enables AI agents to search Korean laws and retrieve article contents using the Korean Ministry of Legislation's law information API.Last updated2
- Alicense-qualityDmaintenanceMCP server to search and retrieve regulations from 14 Korean universities' regulation management systems. Supports querying, listing, and viewing full text or specific articles.Last updated162MIT
- Flicense-qualityCmaintenanceThis MCP server integrates South Korea's national law information, building registers from MOLIT, and KOSIS statistics for housing development research. It enables searching laws, retrieving building details, and accessing statistical data through natural language.Last updated
Related MCP Connectors
Japan Law MCP โ Japanese national laws & ordinances via the e-Gov Law API.
Task-oriented MCP for Indonesian law: search, resolve citations, read laws, and MK decisions.
MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/joohyukjung/LexLink-ko-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server