Skip to main content
Glama

⚖️ 대한민국 법령/판례 검색기 (Korean Law MCP)

MCP Badge

"법률 정보를 누구나 쉽게."

이 프로그램은 복잡한 대한민국 법령과 판례를 채팅하듯이 쉽게 검색하고 찾아볼 수 있게 해주는 도구입니다. 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.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "korean-law": {
      "command": "uvx",
      "args": [
        "korean-law-mcp"
      ],
      "env": {
        "OPEN_LAW_ID": "여기에_아이디를_넣으세요"
      }
    }
  }
}

방법 2: 윈도우 실행 파일 (설치 불필요)

uv나 Python 설정이 어려운 윈도우(Windows) 사용자를 위한 방법입니다.

  1. 다운로드 페이지(Releases)로 이동합니다.

  2. 최신 버전의 korean-law-mcp.exe 파일을 다운로드합니다.

  3. 다운로드한 파일의 경로를 복사해 둡니다. (예: C:\Users\홍길동\Downloads\korean-law-mcp.exe)

  4. 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 아이디

이 프로그램을 사용하려면 국가법령정보센터 아이디가 꼭 필요합니다.

  1. 국가법령정보센터(open.law.go.kr)에 접속하여 회원가입을 합니다.

  2. Open API 신청 페이지에서 '사용 신청'을 합니다. (무료입니다)

  3. 발급받은 아이디를 설정 파일의 "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 서버가 제공하는 주요 도구들의 상세 설명입니다.

도구 이름

설명

search_korean_law

(필수) 법령, 판례, 행정규칙을 검색하는 가장 기본 도구입니다. "민법 제103조" 처럼 구체적으로 검색하면 바로 조문 내용을 보여줍니다.

read_legal_resource

statute:12345와 같은 ID를 사용하여 법령/판례의 **전문(Full Text)**을 가져옵니다. 긴 내용을 볼 때 사용합니다.

explore_legal_chain

Deep Search. 특정 조문과 연결된 하위 법령(시행령/규칙) 및 참조 조문을 한 번에 모두 찾아 분석합니다.

get_statute_attachments

법령에 첨부된 별표서식 파일의 목록을 확인합니다.

search_legal_terms

법률 용어의 정의를 찾아줍니다.

search_statutory_interpretations

법제처의 법령 해석 사례를 검색합니다.

get_external_links

🆕 법령/판례 ID로 국가법령정보센터 공식 웹사이트 URL을 생성합니다. 원본 출처 확인이나 공유용 링크가 필요할 때 사용합니다.

get_article_history

🆕 법령의 연혁 정보(제개정구분, 시행일, 개정이유 등)를 조회합니다. "고등교육법 언제 개정됐어?"라고 물으면 사용합니다.

compare_old_new

🆕 신구조문대비. 법령 개정 전후를 비교하여 어떤 조문이 어떻게 바뀌었는지 보여줍니다.

참고: 검색 도구들은 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_LAW_ID

국가법령정보센터 Open API 아이디(OC 값). 서버 IP 등록도 함께 필요(위 안내 참고)

MCP_TRANSPORT

아니오

stdio(기본, 로컬용) 또는 streamable-http(Docker/게이트웨이용)

HOST

아니오

streamable-http 바인딩 호스트 (기본 0.0.0.0)

PORT

아니오

streamable-http 포트 (기본 8000)

직접 실행

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.tomlmcp[cli]>=1.9.0,<2.0.0으로 버전 상한을 걸어두고 있습니다. mcp SDK 2.0.0부터 mcp.server.fastmcp 모듈 구조가 크게 바뀌어, 상한 없이 설치하면 빌드/실행이 깨질 수 있습니다.


문의 및 기여: 버그 제보나 기능 제안은 GitHub Issues에 남겨주세요.

Available Tools

10 tools
compare_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
law_name_or_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
law_name_or_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_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")

ParametersJSON Schema
NameRequiredDescriptionDefault
law_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

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:

  1. 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").

  2. 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 with read_legal_resource to 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").

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
law_idYes
keywordsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_statutory_interpretationsB

Search for statutory interpretations (authoritative interpretations by Ministry of Government Legislation).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 10 tool updatesv0.4.4
    • First observedcompare_old_new
    • First observedexplore_legal_chain
    • First observedget_article_history
    • First observedget_external_links
    • First observedget_statute_attachments
    • First observedread_legal_resource
    • First observedsearch_korean_law
    • First observedsearch_law_articles
    • First observedsearch_legal_terms
    • First observedsearch_statutory_interpretations

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation5/5

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).

Naming Consistency4/5

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.

Tool Count5/5

10 tools is well-scoped for a legal research server, covering search, retrieval, exploration, history, comparison, and external linking without being excessive or insufficient.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    10
    5
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables searching and retrieving Korean Supreme Court precedents from the law.go.kr Open API, with support for keyword search and detailed judgment text.
    2
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides tools for querying Korean laws, precedents, administrative rules, and ordinances via GitHub REST API, enabling natural language access to legal data.
    11
    Apache 2.0