korean-law-mcp
Click on "Deploy 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., "@korean-law-mcp고등교육법 제20조 찾아줘"
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.
⚖️ 대한민국 법령/판례 검색기 (Korean Law MCP)
"법률 정보를 누구나 쉽게."
이 프로그램은 복잡한 대한민국 법령과 판례를 채팅하듯이 쉽게 검색하고 찾아볼 수 있게 해주는 도구입니다. Claude와 같은 AI와 연결하여 사용할 수 있습니다.
이 포크는 원격/게이트웨이 배포를 위해 세션 없는(stateless)
streamable-http트랜스포트와 Docker 지원을 추가했습니다. 아래 Docker / HTTP 배포 섹션을 참고하세요.
🚀 시작하기 (Quick Start)
가장 쉬운 사용 방법을 안내해 드립니다.
방법 1: uv를 이용한 자동 설치 (Mac/Linux/Windows 추천)
uv가 설치되어 있다면 가장 간편한 방법입니다. Claude 설정 파일에 아래 내용을 추가하세요. (Python 등을 직접 설치할 필요가 없습니다)
설정 파일 경로:
MacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"korean-law": {
"command": "uvx",
"args": [
"korean-law-mcp"
],
"env": {
"OPEN_LAW_ID": "여기에_아이디를_넣으세요"
}
}
}
}방법 2: 윈도우 실행 파일 (설치 불필요)
uv나 Python 설정이 어려운 윈도우(Windows) 사용자를 위한 방법입니다.
다운로드 페이지(Releases)로 이동합니다.
최신 버전의
korean-law-mcp.exe파일을 다운로드합니다.다운로드한 파일의 경로를 복사해 둡니다. (예:
C:\Users\홍길동\Downloads\korean-law-mcp.exe)Claude Desktop 설정 파일(
claude_desktop_config.json)을 열고 아래와 같이 적어주세요.
{
"mcpServers": {
"korean-law": {
"command": "C:\\Users\\홍길동\\Downloads\\korean-law-mcp.exe",
"env": {
"OPEN_LAW_ID": "여기에_아이디를_넣으세요"
}
}
}
}Related MCP server: Korean Law MCP
🔑 필수 준비물: API 아이디
이 프로그램을 사용하려면 국가법령정보센터 아이디가 꼭 필요합니다.
국가법령정보센터(open.law.go.kr)에 접속하여 회원가입을 합니다.
Open API 신청 페이지에서 '사용 신청'을 합니다. (무료입니다)
발급받은 아이디를 설정 파일의
"OPEN_LAW_ID"부분에 넣어주세요.
⚠️ 서버 IP/도메인 등록 필수: law.go.kr Open API는 신청한 아이디(OC)뿐 아니라 실제로 API를 호출하는 서버의 공인 IP(또는 도메인)를 사전에 등록해야 정상 동작합니다. 등록 전에는 아이디/쿼리가 맞아도 아래처럼 검증 실패 응답만 돌아옵니다.
<Response> <result>사용자 정보 검증에 실패하였습니다.</result> <msg>OPEN API 호출 시 사용자 검증을 위하여 정확한 서버장비의 IP주소 및 도메인주소를 등록해 주세요.</msg> </Response>open.law.go.kr 마이페이지 → Open API 신청현황에서 호출 서버의 IP를 등록해 주세요. 로컬 테스트 시엔 현재 PC의 공인 IP(
curl https://ifconfig.me), Docker/게이트웨이 배포 시엔 실제 배포 서버의 아웃바운드 공인 IP를 등록해야 합니다.
✨ 주요 기능
이 도구로 할 수 있는 것들입니다.
🔍 법령 검색: "고등교육법 제20조 찾아줘"라고 물어보면 법 조항을 바로 보여줍니다.
⚖️ 판례 찾기: "학교폭력 관련 대법원 판례 찾아줘"라고 하면 관련 판례를 요약해 줍니다.
📜 행정규칙/자치법규: 훈령, 예규, 지자체 조례까지 모두 검색 가능합니다.
📖 법령 용어: "근로자가 뭐야?"라고 물으면 법적 정의를 정확히 알려줍니다.
🤔 법령 해석례: "이 법을 이렇게 해석해도 되나?" 궁금할 때 법제처의 유권해석 사례를 찾아줍니다.
📎 서식/별표: 법령에 첨부된 서식이나 표를 목록으로 보여줍니다.
🔗 법률 그래프 탐색 (Deep Search):
explore_legal_chain도구를 사용하면 "고등교육법 제20조" 검색 시 시행령/시행규칙 등 위임된 하위 법령과 참조된 내/외부 조문까지 한 번에 찾아서 완벽한 보고서를 만들어줍니다.🤖 스마트 검색: 법령 이름을 정확히 몰라도, "김영란법"처럼 흔히 부르는 이름으로 검색해도 알아서 찾아줍니다.
🛠️ 사용 가능한 도구 (Reference)
이 MCP 서버가 제공하는 주요 도구들의 상세 설명입니다.
도구 이름 | 설명 |
| (필수) 법령, 판례, 행정규칙을 검색하는 가장 기본 도구입니다. "민법 제103조" 처럼 구체적으로 검색하면 바로 조문 내용을 보여줍니다. |
|
|
| Deep Search. 특정 조문과 연결된 하위 법령(시행령/규칙) 및 참조 조문을 한 번에 모두 찾아 분석합니다. |
| 법령에 첨부된 별표나 서식 파일의 목록을 확인합니다. |
| 법률 용어의 정의를 찾아줍니다. |
| 법제처의 법령 해석 사례를 검색합니다. |
| 🆕 법령/판례 ID로 국가법령정보센터 공식 웹사이트 URL을 생성합니다. 원본 출처 확인이나 공유용 링크가 필요할 때 사용합니다. |
| 🆕 법령의 연혁 정보(제개정구분, 시행일, 개정이유 등)를 조회합니다. "고등교육법 언제 개정됐어?"라고 물으면 사용합니다. |
| 🆕 신구조문대비. 법령 개정 전후를 비교하여 어떤 조문이 어떻게 바뀌었는지 보여줍니다. |
참고: 검색 도구들은 law.go.kr API 호출이 실패해도(예: IP 미등록, 네트워크 오류) 예외 대신 "검색 결과 없음"으로 표시됩니다. 응답이 계속 비어 있다면 진짜 결과가 없는 것인지, 위 IP 등록 문제인지 순수 API 호출(
curl "https://www.law.go.kr/DRF/lawSearch.do?OC=...")로 직접 확인해 보세요.
🧠 AI 최적화 프롬프트 (System Prompt)
AI(Claude 등)가 이 도구를 더 똑똑하게 사용하도록 하려면, 아래 내용을 **시스템 프롬프트(System Prompt)**나 Custom Instructions에 추가해 주세요.
## Role: Korean Law Expert (대한민국 법률 전문가)
You are an expert legal assistant with access to the 'Korean Law MCP' tools.
Always answer in Korean unless requested otherwise.
## Guidelines for Tool Usage:
1. **Always Search First**: When asked a legal question, use 'search_korean_law' first.
- If the user specifies an article (e.g., "민법 제103조"), search exactly for that.
- If the query is broad (e.g., "학교폭력"), search for keywords.
2. **ID-based Retrieval**:
- The search result often provides Typed IDs (e.g., 'statute:12345').
- To read the full content, MUST use 'read_legal_resource' with this ID.
3. **Complex Analysis (Deep Search)**:
- If the user asks for a comprehensive review of a specific provision (including its enforcement decrees/rules and references), USE 'explore_legal_chain'.
- Example: "Analyze Article 20 of Higher Education Act strictly." -> 'explore_legal_chain("Higher Education Act Article 20")'
4. **Formatting**:
- Present legal texts clearly with blockquotes or code blocks if necessary.
- Always cite the source (Law Name, Article Number).🐳 Docker / HTTP 배포
원격/게이트웨이 연동(예: MCP 허브)을 위해 이 포크는 세션 없는(stateless) streamable-http 트랜스포트를 지원합니다.
Docker
docker build --platform linux/amd64 -t korean-law-mcp .
docker run -d -p 8000:8000 -e OPEN_LAW_ID=<발급받은_ID> korean-law-mcp서버는 POST /mcp(JSON-RPC 2.0, Accept: application/json, text/event-stream)로 응답하며, 매 요청이 독립적으로 처리되어 Mcp-Session-Id 헤더가 필요 없습니다.
환경변수
변수 | 필수 | 설명 |
| 예 | 국가법령정보센터 Open API 아이디(OC 값). 서버 IP 등록도 함께 필요(위 안내 참고) |
| 아니오 |
|
| 아니오 | streamable-http 바인딩 호스트 (기본 |
| 아니오 | streamable-http 포트 (기본 |
직접 실행
OPEN_LAW_ID=<발급받은_ID> MCP_TRANSPORT=streamable-http PORT=8000 korean-law-mcp👩💻 개발자 및 고급 사용자용 (Advanced)
소스 코드를 직접 수정하거나, PyPI에서 직접 설치하여 사용하고 싶은 경우의 안내입니다.
1. PyPI 설치 (pip)
uv 없이 일반 Python 환경에서 설치하려면:
pip install korean-law-mcp설치 후에는 claude_desktop_config.json에서 command를 "python", "-m", "korean_law_mcp" 등으로 설정하여 연결합니다.
2. 로컬 개발 및 디버깅
이 레포지토리를 클론하여 개발하는 경우:
# 의존성 설치
uv sync
# 디버깅 (MCP Inspector 사용)
npx @modelcontextprotocol/inspector uv run korean-law-mcp참고: 이 프로그램은 단독 실행 시(stdio 모드) 아무런 반응이 없는 것이 정상입니다. (MCP 프로토콜 통신 대기 중) 반드시 MCP Inspector, Claude Desktop, 또는
MCP_TRANSPORT=streamable-http로 실행 후 curl로 테스트하세요.
3. mcp SDK 버전 고정 안내
pyproject.toml은 mcp[cli]>=1.9.0,<2.0.0으로 버전 상한을 걸어두고 있습니다. mcp SDK 2.0.0부터 mcp.server.fastmcp 모듈 구조가 크게 바뀌어, 상한 없이 설치하면 빌드/실행이 깨질 수 있습니다.
문의 및 기여: 버그 제보나 기능 제안은 GitHub Issues에 남겨주세요.
Available Tools
10 toolscompare_old_newA
Get the old/new article comparison (신구조문대비) for a law. Shows what changed in the most recent amendment, comparing old and new versions side by side.
Use this tool when the user wants to:
See what exactly changed in a recent amendment
Compare before/after versions of specific articles
Understand the scope of a legal revision
Args: law_name_or_id: Law name (e.g., "고등교육법") or ID (e.g., "statute:12345" or just "12345")
Returns: Markdown formatted comparison showing old and new text for each changed article.
| Name | Required | Description | Default |
|---|---|---|---|
| law_name_or_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it compares the most recent amendment, returns Markdown formatted output, and shows changed articles. While it does not explicitly state read-only behavior or edge cases, the verb 'Get' and return format provide adequate transparency for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a bulleted usage list, and clearly labeled Args/Returns sections. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no annotations, output schema present), the description covers purpose, usage, parameter format, and return format comprehensively. It adequately prepares the agent to use the tool correctly, with no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides a raw parameter name with no description (0% coverage). The description fully compensates by explaining that law_name_or_id accepts either a law name (e.g., '고등교육법') or an ID (e.g., 'statute:12345' or '12345'), with concrete examples for both formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get the old/new article comparison (신구조문대비) for a law' and specifies it compares the most recent amendment side by side. This specific verb+resource+scope distinguishes it from sibling search and history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'Use this tool when' section listing three concrete scenarios (see what changed, compare before/after, understand revision scope). However, it does not explicitly name alternatives or state when not to use the tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explore_legal_chainA
Perform a 'Deep Search' (Legal Graph). Use this when you want to understand the full context of a law provision, including:
The provision itself.
Other articles it refers to ("Internal/External References").
Detailed regulations that define its scope ("Presidential Decree").
Usage:
"Higher Education Act Article 20"
"고등교육법 제20조"
Returns:
A comprehensive markdown document containing the main article and all connected legal texts.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that it returns 'a comprehensive markdown document containing the main article and all connected legal texts' and mentions the graph nature. It does not disclose side effects or safety info, but as a read-only search tool, that is acceptable though not richly detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a purpose statement, numbered list, usage examples, and returns. It is efficiently written without redundancy, earning a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, usage context, and return format. Given the single parameter and presence of an output schema, it is sufficiently complete. It does not discuss limitations, but none are apparent. Score 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required 'query' parameter with no description (coverage 0%). The description compensates by providing two concrete usage examples ('Higher Education Act Article 20', '고등교육법 제20조'), which clarify expected query format. However, it could explicitly state that the query should be a legal provision reference, so 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Perform a Deep Search' and names the resource (Legal Graph). It clearly distinguishes from siblings by stating it provides 'full context of a law provision' including references and presidential decrees, which is distinct from simple search tools like search_law_articles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use this when you want to understand the full context of a law provision', providing clear context. It also includes usage examples. It does not name alternatives or exclusions, but the context is clear enough for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_article_historyA
Get the revision history (연혁) of a law. Shows when the law was enacted, amended, and what changes were made.
Use this tool when the user wants to:
Know when a law was last amended
Track the evolution of a law over time
Find historical versions of a law
Args: law_name_or_id: Law name (e.g., "고등교육법") or ID (e.g., "statute:12345" or just "12345")
Returns: Markdown formatted list of amendments with dates and summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| law_name_or_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavior disclosure. It states that the output is a 'Markdown formatted list of amendments with dates and summaries', which gives the agent a clear picture of what to expect. It doesn't mention error cases or edge scenarios, but for a read-only history tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and structured into a purpose statement, a bulleted 'use when' list, and explicit Args/Returns sections. Every sentence adds value, and the layout makes it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a single required parameter. The description covers what it does, when to use it, how to pass the parameter, and what the return looks like. Given the presence of an output schema, no additional return details are needed. The description is fully sufficient for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's property 'law_name_or_id' has no description, leaving 0% schema coverage. The description compensates with a detailed explanation of accepted formats: law name (with example) or ID (with example). This is exactly the kind of semantic enrichment the agent needs for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb+resource: 'Get the revision history (연혁) of a law.' It goes on to specify what information is shown (enactment, amendment, changes). This clearly differentiates it from sibling tools like search_law_articles and get_external_links, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists three concrete user intents for using this tool ('Know when a law was last amended', 'Track the evolution...', 'Find historical versions...'). It does not mention alternative tools or exclusions, but provides clear context for when this is the right choice among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_external_linksA
Generate external links to the National Law Information Center (법령정보센터) website.
Use this tool when the user wants to:
View the original source on the official government website
Share a direct link to a law or precedent
Access additional features not available via this MCP (e.g., PDF downloads, official annotations)
Args: resource_id: A Typed ID (e.g., "statute:12345", "prec:98765", "admrul:54321") obtained from search results.
Returns: Markdown formatted links to the official website.
| Name | Required | Description | Default |
|---|---|---|---|
| resource_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the output format (Markdown formatted links) and that the tool provides access to features not available via the MCP. It could mention validation behavior, but for a simple link generator, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with an intro, bullet-point use cases, and clear Args/Returns sections. Every sentence contributes value, and there is no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers purpose, usage scenarios, parameter semantics, and return type. It provides enough context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero coverage, but the description compensates fully by explaining the parameter format with examples (e.g., 'statute:12345') and indicating it comes from search results. This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates external links to the National Law Information Center website, with a specific verb+resource. The listed use cases (view original source, share direct link, access extra features) distinguish it from sibling search and read tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool via 'Use this tool when the user wants to' followed by three concrete scenarios. It does not name alternatives or exclusions, but the context makes the differentiation clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statute_attachmentsA
Get a list of attached forms and tables (별표/서식) for a specific statute. Args: law_id: The ID of the law (e.g. "12345" or "statute:12345")
| Name | Required | Description | Default |
|---|---|---|---|
| law_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. 'Get a list' clearly implies a read-only operation, and the ID format note ('e.g. "12345" or "statute:12345"') adds useful context. However, it does not disclose any potential side effects, auth requirements, error conditions, or rate limits, so transparency is only average.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single purpose sentence plus an argument label with example. Every sentence adds value, and the structure is front-loaded with the core verb and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter tool and the presence of an output schema, the description covers the essential purpose and parameter semantics. It lacks explicit usage boundaries or edge-case behavior, but for a straightforward list-retrieval operation, the provided information is sufficient to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by explaining law_id: 'The ID of the law (e.g. "12345" or "statute:12345")'. This provides meaning, format examples, and acceptable input styles beyond the schema's mere type declaration. It doesn't fully specify constraints or defaults, so a 5 is not warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool 'Get a list of attached forms and tables (별표/서식) for a specific statute,' using a specific verb ('Get'), a specific resource ('attached forms and tables'), and a specific scope ('for a specific statute'). This makes it distinct from the sibling search/read tools, which focus on articles, terms, or legal chains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is used when you need attachments for a specific statute, and it requires a law_id. It doesn't explicitly name alternatives or exclusions, but the context is unambiguous enough for an agent to infer when to use this tool. Lacking explicit when-not-to-use guidance prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_legal_resourceA
Reads the full content of a specific legal resource using its Typed ID.
Args:
resource_id: A string strictly in the format type:id (e.g., "statute:12345", "prec:98765", "admrul:54321").
The ID is obtained from the search_korean_law output.
Features:
Full Text Retrieval: Fetches the complete text of statutes, precedents, or rules.
Reference Resolution: Automatically detects references to other laws (e.g., "refer to Article 5") within the text and appends their content to the response, saving you extra round-trips.
Robustness: Automatically handles ID formatting issues or outdated IDs by trying fallbacks (ID -> MST -> Detc).
Return:
Markdown formatted text containing the resource metadata, body content, and resolved references.
| Name | Required | Description | Default |
|---|---|---|---|
| resource_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does excellent work: it discloses automatic reference resolution appending content, fallback handling for outdated IDs ('ID -> MST -> Detc'), and the markdown return format. These behavioral traits are not evident from the schema or annotations, adding substantial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Features, Return), uses bullet points for readability, and every sentence adds value. It is appropriately sized for a tool with one parameter and notable behavioral nuances, without being verbose or repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no annotations, the description is remarkably complete. It covers the exact purpose, parameter format and source, behavioral features, and return output. The sibling context suggests a workflow where this tool logically follows a search, and the description supports that. The presence of an output schema is a bonus but not needed here since the description already explains the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines resource_id as a string with no description (coverage 0%). The description fully compensates by explaining the required 'type:id' format with examples, and explicitly states the ID is sourced from search_korean_law output. This adds essential semantic meaning that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific action: 'Reads the full content of a specific legal resource using its Typed ID.' This distinguishes it from sibling search tools by specifying a resource retrieval action rather than a search. The mention of 'statutes, precedents, or rules' further clarifies the resource scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating that the resource_id is obtained from 'search_korean_law' output, telling the agent when this tool fits in a workflow. It also highlights 'saving extra round-trips' as a benefit, implying use when you need full content and resolved references. However, it does not explicitly mention when not to use it or directly contrast with sibling tools, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_korean_lawA
Primary interface for searching Korean laws, precedents, and administrative rules. It is a "Smart Search" that adapts to the query type.
Capabilities:
Specific Article Lookup (Preferred):
Input: "Civil Act Article 103", "민법 제103조", "Criminal Act 250"
Behavior: Returns the exact content of the article directly. No need for further steps.
Note: Supports both Korean ("민법") and major English names ("Civil Act").
Broad Keyword Search:
Input: "school violence", "학교폭력", "adultery case"
Behavior: Returns a summarized list of top results across Statutes, Precedents, and Admin Rules.
Output: Includes Typed IDs (e.g.,
statute:12345,prec:67890) which MUST be used withread_legal_resourceto get full text.
Usage Tips:
ALWAYS try to be specific if you know the law name and article number.
If searching for a case by number, just enter it (e.g., "2010다102991").
NEW: To find specific articles containing keywords (e.g., "credits" in "Higher Education Act"), first search for the law to get its ID, then use
search_law_articles(law_id, "keywords").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, this description carries the full burden of behavioral disclosure. It details two distinct behaviors: for specific article lookup it returns exact content directly with no further steps, and for broad keyword search it returns a summarized list with Typed IDs that must be used with read_legal_resource. This is strong behavioral transparency, though it omits potential edge cases or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-line summary followed by clear capability sections and usage tips. It is somewhat longer than strictly necessary but every sentence contributes meaningful information and it is effectively front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and no annotations, the description thoroughly covers the tool's dual-mode behavior, how to use its results, and directs users to sibling tools when appropriate. It is complete enough for an agent to select and invoke the tool correctly, especially with the output schema available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only has a query parameter with no description (0% coverage). The description compensates richly by providing concrete query examples ('Civil Act Article 103', '민법 제103조', '2010다102991') and explaining how the query type affects behavior. This gives an agent a clear understanding of how to construct queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is the 'Primary interface for searching Korean laws, precedents, and administrative rules,' with a specific verb and resource. It also distinguishes itself from sibling tools by explaining it is a 'Smart Search' that adapts to query type and explicitly references alternatives like search_law_articles for article-level keyword searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: ALWAYS try to be specific, and for finding articles containing keywords, first search for the law to get its ID, then use search_law_articles(law_id, 'keywords'). It also mentions read_legal_resource for obtaining full text of broad search results, clearly covering alternatives and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_law_articlesA
Search for specific keywords within the articles of a statute.
Args: law_id: The ID of the law (e.g., "statute:12345" or just "12345"). keywords: Space-separated keywords to search for within article text.
Returns: Markdown formatted text containing the articles that match the keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| law_id | Yes | ||
| keywords | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that results are returned as Markdown formatted text and that the search is limited to article text, which is useful. However, it does not mention potential edge cases, read-only behavior, pagination, or handling of no matches, leaving some behavioral aspects implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, with a one-sentence purpose, clear Args, and Returns sections. Every sentence adds value, and there is no redundant or vague filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with two parameters, the description covers the core requirements: purpose, parameter meanings, and return format. The absence of usage guidance compared to sibling tools is a minor gap, but the tool is otherwise self-contained and correctly invokable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section explains both parameters with concrete details: law_id includes an example format, and keywords clarifies space-separated values. Since the schema provides no descriptions (0% coverage), this fully compensates and adds meaningful semantics beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and a specific resource ('articles of a statute'), clearly defining the operation as keyword search within law articles. This distinguishes it from sibling tools like search_korean_law or search_legal_terms, which focus on different resources or query types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives such as search_statutory_interpretations or search_legal_terms. The description only states what the tool does, without context about preferred use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_legal_termsA
Search for legal terms (definitions). Returns a list of matching terms with IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It adds useful behavior by stating it returns a list of matching terms with IDs, but it does not disclose any limitations, authentication needs, or side effects. For a simple search, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two short sentences, with the main action 'Search for legal terms' front-loaded. Every word contributes meaning, and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no nested objects) and has an output schema, so the description need not explain return values in depth. It covers the core action and return format. However, it omits any mention of read-only status or potential prerequisites, which would be useful but are not critical for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'query' with zero description coverage. The description compensates minimally by implying that the query is the legal term to search for, but it provides no detail on matching behavior or expected format. This adds some meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for legal terms and specifies that it returns definitions. The resource "legal terms" distinguishes it from sibling tools like search_law_articles and search_statutory_interpretations, which target different content types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the purpose: use this when you need to find or define legal terms. However, there is no explicit guidance on when to choose this over siblings or any exclusions noted, so it stops at implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_statutory_interpretationsB
Search for statutory interpretations (authoritative interpretations by Ministry of Government Legislation).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the semantic scope (statutory interpretations) and does not mention whether the tool is read-only, what the response contains beyond the output schema, or any rate limits or auth requirements. The additonal context about the Ministry adds a content qualifier but no behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb ('Search') and resource ('statutory interpretations'), with a brief clarifying parenthetical. Every word contributes to the meaning, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and has an output schema, so return values need not be described. However, the lack of usage guidelines and parameter semantics in the description leaves gaps, especially given the many search-related sibling tools. The core purpose is clear, but it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description offers no explanation of how the 'query' parameter should be used. The parameter name implies a search string, but there is no guidance on query syntax, language, or format, so the description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search for statutory interpretations' with the parenthetical specifying 'authoritative interpretations by Ministry of Government Legislation.' This uses a specific verb and resource, distinguishing it from sibling search tools like search_law_articles and search_legal_terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling alternatives. The description only defines what it does, without mentioning any exclusions, alternatives, or specific scenarios where it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.4.4- First observed
compare_old_new - First observed
explore_legal_chain - First observed
get_article_history - First observed
get_external_links - First observed
get_statute_attachments - First observed
read_legal_resource - First observed
search_korean_law - First observed
search_law_articles - First observed
search_legal_terms - First observed
search_statutory_interpretations
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: searching, reading, exploring legal chains, retrieving history, comparing versions, etc. Even the search tools are differentiated by scope (general search vs. article-specific keyword search vs. terms vs. interpretations).
All tool names follow a verb_noun pattern with snake_case, using verbs like search, get, read, explore, compare. There is some variety in verbs, but the pattern is consistent and predictable.
10 tools is well-scoped for a legal research server, covering search, retrieval, exploration, history, comparison, and external linking without being excessive or insufficient.
The tool set provides comprehensive coverage for legal research: searching, reading, deep exploration, history, comparisons, and external links. Minor gaps like direct download or advanced filtering are handled via external links, so the surface is quite complete.
Maintenance
Related MCP Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Search U.S. case law, fetch opinions, and ask matter-aware legal questions over your documents.
Public Indian legal search MCP for Roop judgments, statutes, and corpus grounding.
- DikeOAuthio.github.fr3on
Grounded MENA legal search, reasoning, citation resolution, and citation-graph traversal.
1
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables searching and retrieving Korean legal information including laws, court precedents, legal interpretations, and local ordinances from the Korean National Law Information Center API with intelligent search ranking.-
- AlicenseAqualityDmaintenanceEnables users to search and retrieve South Korean statutes, precedents, and administrative rules via the National Law Information Center API. It supports deep legal chain analysis, legislative history tracking, and legal terminology lookups through natural language.105MIT
- FlicenseAqualityDmaintenanceEnables searching and retrieving Korean Supreme Court precedents from the law.go.kr Open API, with support for keyword search and detailed judgment text.2-
- AlicenseNot gradedqualityAmaintenanceProvides tools for querying Korean laws, precedents, administrative rules, and ordinances via GitHub REST API, enabling natural language access to legal data.11Apache 2.0