Korean Law MCP
Server Details
Korean law: statutes, precedents, ordinances, treaties and citation verification (법제처 API).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- chrisryugj/korean-law-mcp
- GitHub Stars
- 2,638
- Server Listing
- korean-law-mcp
TDQS
Score is being calculated.
Available Tools
10 toolsdiscover_toolsARead-onlyIdempotentInspect
Korean-law-mcp — [메타] 위 도구로 안 되는 경우. 전문도구(조세심판·관세·헌재·행심·공정위·개인정보위·노동위·학칙·조약·영문법령·용어 등 80+개) 카테고리 검색
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | 찾고 싶은 도구의 의도 또는 카테고리 (예: '공정위', '조약', '용어', '헌재') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context beyond that: it is a meta/category-search tool for 80+ specialized domains. Nothing in the description contradicts the annotations — '카테고리 검색' (category search) is consistent with a read-only, idempotent lookup.
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 — a single sentence with the meta/fallback context front-loaded before the category list. While the parenthetical enumeration is dense, there is no waste and the key routing instruction comes first.
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 one-parameter discovery tool with rich annotations and 100% schema coverage, the description is mostly sufficient: it states when to use it and what it searches. However, it does not describe the output/return format (there is no output schema), and the Korean-only text plus ambiguous '위 도구' reference leaves some agent-facing details unresolved.
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 100%: the 'intent' parameter is described with meaning and examples ('공정위', '조약', '용어', '헌재'). The description's listing of categories (조세심판, 관세, 헌재, etc.) reinforces what 'intent' accepts but adds little beyond the schema. Baseline 3 applies since the schema already carries the heavy lifting for the single parameter.
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 states a clear purpose: a meta-tool for category-based search across 80+ specialized legal tools (tax appeal, customs, constitutional court, etc.). It distinguishes itself from the sibling tools by branding itself as '[메타]' (meta) and a fallback when standard tools fail. The purpose is specific and recognizable, though it never names actual sibling tools and is written in Korean.
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?
It gives an explicit condition — '위 도구로 안 되는 경우' (when the above tools don't work) — framing it as a fallback/discovery gateway. However, '위 도구' is vague and does not identify which siblings it applies to, nor does it state when NOT to use it or what 'not working' means. The guidance is present but underspecified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_toolARead-onlyIdempotentInspect
Korean-law-mcp — [메타] discover_tools 결과 도구를 프록시 실행. tool_name + params
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | 도구에 전달할 파라미터 객체 | |
| tool_name | Yes | 실행할 도구 이름 (discover_tools로 확인한 이름) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description does not repeat that. It adds the important constraint that the tool must come from discover_tools, which is behavioral context beyond the annotations. No contradiction with annotations exists.
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, brief sentence that front-loads the purpose and parameter essentials without any fluff. It is appropriately short for a simple proxy concept, though it could benefit from slightly more elaboration without losing conciseness.
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 complexity of a proxy tool that can execute any tool, the description is minimal and omits key guidance. It does not explicitly state the prerequisite of calling discover_tools first, nor does it explain error handling or what happens with invalid tool names. The schema provides some context, but the tool description itself is insufficient for a complete understanding.
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 100%, and the description merely restates the parameter names (tool_name + params) without adding further meaning. Since the schema already documents both parameters fully, the description adds no extra value, matching the baseline score for high coverage.
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 this is a proxy execution tool for tools discovered via discover_tools, taking a tool_name and params. It effectively identifies the function as a meta-tool that runs other tools, which distinguishes it from the specific sibling tools. However, it does not explicitly mention the return value, though that is implied to be the result of the underlying tool.
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 implies the tool is to be used after discover_tools by referencing 'discover_tools 결과 도구' (tools from discover_tools results), but it does not explicitly state when to use it versus directly calling a specific tool. It lacks clear guidance on prerequisites or exclusions, leaving usage conditions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annexesARead-onlyIdempotentInspect
Korean-law-mcp — [별표] 별표/서식 조회. lawName+'별표N'으로 내용 추출. 금액/기준은 별표에 있는 경우 많음. date(기준일)를 주면 그날 시행 중이던 버전의 별표 — 건축허가·착공·처분 시점의 설치기준·과태료표 등 과거 기준이 필요할 때(제명이 바뀐 법령도 옛 버전까지, 별표 번호가 시점마다 달라 query로 별표명을 주는 편이 안전).
| Name | Required | Description | Default |
|---|---|---|---|
| jo | No | 위임 조문 (예: '제38조', '38'). 조문 동반 질의('관세법 제38조 별표2')의 조문 맥락 — 별표명의 '(제38조 관련)' 표기와 대조해 좁히고, 응답에 위임 관계를 표기 | |
| knd | No | 1=별표, 2=서식, 3=부칙별표, 4=부칙서식, 5=전체 | |
| date | No | 기준일 (예: '2015-06-01'). 지정 시 그날 시행 중이던 법령 버전의 별표를 조회 — 건축허가·착공·처분·위반 시점 기준이 필요할 때. 제명이 바뀐 법령도 옛 버전까지 찾는다. 별표 번호는 시점마다 다를 수 있으니 query(별표명)로 좁히는 것이 안전. 미지정 시 현행 | |
| query | No | 별표명으로 좁히기 (예: '운전면허 취소·정지', '과태료'). 번호를 모를 때 사용. 1건으로 좁혀지면 그 별표 본문을 바로 추출 | |
| bylSeq | No | 별표번호 (예: '000300'). 지정 시 해당 별표 파일을 다운로드하여 텍스트로 추출 | |
| annexNo | No | 별표 번호 (예: '4', '별표4', '제4호'). bylSeq 대체 입력 | |
| lawName | Yes | 법령명 (예: '관세법'). 별표를 바로 지정하려면 '... 별표4' 또는 '... 별표1의2'처럼 함께 입력 가능 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds non-obvious behavior beyond them: unspecified date means the currently-in-force version, a specified date reaches back to renamed/superseded laws, and a single query match returns the annex body directly. It omits return-size/pagination and rate-limit context, keeping it at a 4.
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 definition is front-loaded — resource identification opens, then parameter behavior — with no filler sentences. It is dense with parentheticals and mid-sentence dashes that make it slower to parse, but each clause carries semantic content rather than 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?
For a 7-parameter tool with one required argument and no output schema, the description covers the critical defaults (현행 vs historic via date), the numbering-shift caveat, and the narrowing-by-name path. It does not explicitly describe output form (download vs extracted text beyond the bylSeq schema note), so it is strong but not exhaustive.
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 100%, so every parameter is already documented and the baseline is 3. The description mostly restates the schema's date semantics and adds only one cross-parameter recommendation (narrowing by query name is safer than by number because numbering shifts across versions). Useful but marginal 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 names a specific resource and verb — '[별표] 별표/서식 조회' and 'lawName+별표N으로 내용 추출' — so an agent knows this retrieves annex/form content rather than main law text. It also adds scope color ('금액/기준은 별표에 있는 경우 많음'). It does not, however, explicitly name a sibling such as get_law_text to contrast against, so 5 is not warranted.
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?
It gives clear conditional guidance: pass date when you need the version in force at a past point (건축허가·착공·처분 시점) and use query when the 별표 number is unknown or has shifted over time. That is actionable when-to-use context. It stops short of stating when NOT to use the tool or pointing to a specific alternative sibling, so it is a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_decision_textBRead-onlyIdempotentInspect
Korean-law-mcp — [통합조회] 18개 도메인 전문 조회. domain+id. full=false(기본) 시 본문 계단식 축약
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 일련번호/ID (search 결과에서 획득) | |
| full | No | true=본문 전문 그대로. 미지정=이유/전문 섹션 계단식 축약 (판시·요지·주문은 항상 full) | |
| domain | Yes | 도메인 선택 (enum 값 참조) | |
| options | No | 도메인별 옵션. treaty:{chrClsCd:'010202'(한)/'010203'(영)} english_law:{mst,lawName} prec/constitutional/admin_appeal/interpretation:{caseName} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds genuinely useful behavior beyond this: full=false (default) progressively condenses the body, which informs the agent that full=true is required for unabridged text. This complements, and does not contradict, the annotations.
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 — a single front-loaded line with no filler. The leading 'Korean-law-mcp —' prefix is meta labeling rather than functional content, and the dense Korean shorthand (계단식 축약) reduces immediate parseability, but the description remains efficient and well-oriented.
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 complex — an 18-domain enum, a nested options object with domain-specific structures (treaty, english_law, precedent), and no output schema. The rich schema (100% coverage) carries most of the weight, and the description supplies the key default behavior. Still, the description leaves usage context (fetch vs search) unaddressed, which is significant given the absence of an output schema.
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 100%, so all four parameters (domain, id, full, options) are already documented in the schema, including the full default behavior, domain enums, and options structure. The description restates domain+id and the full=false default without adding meaning beyond the schema, so it only meets the baseline of 3.
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 states a specific action — full-text retrieval (통합조회) of decisions across 18 domains using domain+id. It identifies the resource (decision text) and the retrieval mechanism. However, it does not explicitly name siblings like get_law_text (law text vs decision text) or search_decisions (search vs direct id fetch), so differentiation is implied rather than stated.
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 given on when to use this tool versus alternatives. The description never mentions search_decisions, get_law_text, or when direct id-based retrieval is appropriate. The only usage hint ('obtained from search results') lives in the schema's id description, not the tool description, so the agent gets no explicit routing help between 9 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_law_textARead-onlyIdempotentInspect
Korean-law-mcp — [법령조회] 조문 전문 조회. mst/lawId 필수, jo로 특정 조문만 가능 — jo는 '제148조의2' 같은 자연어 조문 표기를 그대로 받는다(권장). 6자리 JO 코드를 직접 쓰려면 조번호 4자리 zero-pad + 의X 2자리: 제10조의2→001002, 제234조의2→023402(234002 아님). 과거 시점 본문은 efYd 에 그 날짜를 넣으면 그날 시행 중이던 버전으로 자동 보정한다(제명이 바뀌기 전 버전 포함). 적용 법령 판단·경과조치까지 필요하면 legal_analysis(mode=applicable_law).
| Name | Required | Description | Default |
|---|---|---|---|
| jo | No | 조문 번호. 자연어 표기 권장 — '제38조'·'제148조의2'를 그대로 넣으면 서버가 변환한다. 6자리 JO 코드 직접 지정 시 조번호 4자리 zero-pad + 의X 2자리: 제38조→003800, 제10조의2→001002, 제234조의2→023402(234002 아님) | |
| mst | No | 법령일련번호 (search_law에서 획득) | |
| efYd | No | 기준일 또는 시행일자 (YYYYMMDD). 시행일이면 그 버전, 시행일이 아닌 날짜(건축허가일·사건일 같은 조회 기준일)면 그날 시행 중이던 버전으로 자동 보정한다(제명이 바뀌기 전 버전 포함). 현행 본문은 efYd 없이 조회할 것. 시행예정본은 search_law 가 안내한 efYd 를 그대로 쓴다. | |
| lawId | No | 법령ID (search_law에서 획득) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds a genuinely non-obvious behavioral trait: efYd auto-corrects to the version in effect on that date, including versions predating a title change. It does not discuss rate limits or response shape, keeping it below 5.
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 purpose is front-loaded and each clause carries actionable detail (jo formats, efYd semantics, sibling routing). It is dense and somewhat redundant with the schema text, which slightly dilutes conciseness.
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 read-only lookup with a fully documented 4-param schema and no output schema, the description covers inputs, version-selection behavior, and sibling routing adequately. It omits any note on the returned text's structure or size, which is the only minor gap.
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 100%, so the baseline is 3. The description largely restates the schema's own jo encoding rule (001002 vs 023402) and efYd behavior verbatim rather than adding syntax the schema lacks, so it earns no lift above baseline.
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 opening '[법령조회] 조문 전문 조회' states a specific verb (조회/lookup) and resource (조문 전문 / full text of provisions) in one line. It also names the sibling it is not for applicable-law determination (legal_analysis), letting an agent place it relative to search_law (which supplies mst/lawId) and legal_analysis.
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?
It states prerequisites (mst/lawId 필수), how to narrow to a single article via jo, that natural-language notation is recommended, that current text should be fetched without efYd, and that past versions are reached by setting efYd. It explicitly routes to legal_analysis(mode=applicable_law) for the distinct applicable-law/transitional-measure task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_analysisARead-onlyIdempotentInspect
Korean-law-mcp — [정밀분석] 검증·분석 4종 통합. mode: verify_citations=텍스트 속 법령 조문·판례 인용('민법 제750조', '대법원 2013다61381' 등)이 실존하는지 법제처 DB 교차검증, LLM 환각 방지 — 판례는 실존불가/미확인 구분(text 필수) | cite_check=판례 생사 확인 — 사건번호로 후속 인용 역추적+변경·폐기 감지, 한국형 Citator(caseNumber 필수) | applicable_law=사건 시점에 시행되던 법령 버전+그 시점 조문+부칙 경과조치, 행위시법 판단(lawName+date 필수, jo 선택). 제명이 바뀐 법령은 옛 이름 시절 버전으로 특정. 법령이 아니면 행정규칙(고시·훈령 — 예: '스프링클러설비의 화재안전기준', 'NFTC 103')의 기준일 시행 버전 | impact_map=한 조문을 인용한 판례·헌재·해석례·행심·조례 역방향 그래프+mermaid(lawName+jo 필수, jo는 '제103조'·'103조'·JO 6자리 코드 '010300' 모두 수용)
| Name | Required | Description | Default |
|---|---|---|---|
| jo | No | [impact_map 필수, applicable_law 선택] 조문 번호 — 자연어 표기('제103조', '제10조의2')와 6자리 JO 코드('010300', '001002') 모두 수용 | |
| date | No | [applicable_law 필수] 기준일 — 행위·계약·처분 시점 (예: '2023-05-10', '20230510') | |
| mode | Yes | 분석 유형 (도구 설명의 mode 표 참조) | |
| text | No | [verify_citations 필수] 검증할 법률 텍스트 (LLM 답변/계약서 등 조문 인용 포함 문자열) | |
| display | No | [cite_check] 후속 인용 판례 최대 표시 수 (기본 20) | |
| lawName | No | [applicable_law·impact_map 필수] 법령명 (예: '민법', '도로교통법'). applicable_law는 약칭·옛 법령명과 행정규칙명(고시 — 예: '스프링클러설비의 화재안전기준', 'NFTC 103')도 받는다 | |
| deepScan | No | [cite_check] 후속 인용 상위 판례 본문 정밀 스캔 (기본 true, false면 빠르지만 변경·폐기 감지 생략) | |
| caseNumber | No | [cite_check 필수] 사건번호 (예: '2013다61381', 문장 포함 가능) | |
| maxCitations | No | [verify_citations] 검증할 최대 인용 개수 (기본 15, 많을수록 느림) | |
| includeMermaid | No | [impact_map] mermaid 그래프 코드 출력 (기본 true) | |
| includeOrdinances | No | [impact_map] 자치법규 인용 검색 포함 (기본 true, false면 전국 조례 팬아웃 생략) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, and the description layers real behavioral detail on top: external DB cross-verification, distinguishing 실존불가 vs 미확인, detecting 변경·폐기 of cited cases, returning the version of a law in force at a date including 부칙 경과조치, and emitting a mermaid reverse-citation graph. This tells the agent what actually happens and how results are shaped.
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?
Front-loaded with the tool name and a one-line summary ('검증·분석 4종 통합'), then a compact pipe-delimited breakdown per mode. It is dense but each clause carries mode-specific content; only minor redundancy with the schema keeps it from a 5.
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 complex 4-mode, 11-parameter tool with no output schema, the description covers each mode's behavior, required inputs, and the shape of key outputs (mermaid graph, change/obsolete detection, distinct existence verdicts). Some mode-level return-format detail is left implicit, but it is sufficient for an agent to 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 description coverage is 100%, so the schema already documents all 11 parameters, and the description's per-parameter notes (jo accepting '제103조'/'103조'/6-digit JO codes, lawName accepting abbreviations and administrative rules) largely restate the schema. It does consolidate which parameters are required per mode, which adds some navigational value, so baseline 3 is appropriate.
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 names the resource (Korean-law verification/analysis) and enumerates four distinct modes, each with a specific verb+resource: cross-verifying citations against the 법제처 DB, checking whether a case is still good law, resolving the law version in force at a date, and building a reverse citation graph. An agent can tell this apart from siblings like get_law_text or search_law without opening the schema.
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?
Each mode carries its own triggering condition and required inputs (e.g., verify_citations for LLM hallucination checking, cite_check for a case-number 'Citator', applicable_law for 행위시법 timing), so the agent knows which mode to pick. It stops short of explicitly routing to sibling tools for the cases this tool does not cover, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_researchARead-onlyIdempotentInspect
Korean-law-mcp — [⛓리서치] 다단계 법령 리서치 통합 — 여러 API를 병렬로 엮는 복합 질문 전용. task: full_research=도메인·법령명 불명확한 자연어 질문 폴백(기본값, 예 '음주운전 처벌 기준') | law_system=법률·시행령·시행규칙 3단+위임+별표(예 '관세법 체계') | action_basis=처분·허가의 법적 근거+해석례+판례+행심(예 '영업정지 근거') | dispute_prep=불복·소송 준비, 판례+심판례+도메인 결정례(예 '과세처분 불복') | amendment_track=개정 이력+신구대조+연혁(예 '2023년 개정 뭐 바뀜') | ordinance_compare=조례 전국 비교+상위법 적합성(예 '서울시 주차 조례') | procedure_detail=절차·수수료·별표서식(예 '건축허가 절차') | document_review=계약서·약관 조항 리스크+근거법령(text 필수). scenario(선택): 확장 시나리오 — time_travel(두 시점 본문 diff)·timeline·penalty·action_plan·delegation·impact·compliance·customs·manual. 미지정 시 쿼리에서 자동 감지되며, task별 호환 조합은 scenario 파라미터 설명 참조. 단일 조회로 답이 되면 search_law/get_law_text 쓸 것.
| Name | Required | Description | Default |
|---|---|---|---|
| mst | No | [amendment_track] 법령일련번호 (알고 있으면) | |
| task | No | 리서치 유형 (도구 설명의 task 표 참조). 미지정 시 full_research | full_research |
| text | No | [document_review 전용·필수] 검토할 계약서/약관 전문 텍스트 | |
| lawId | No | [amendment_track] 법령ID (알고 있으면) | |
| query | No | 자연어 질문/법령명/키워드 (예: '음주운전 처벌 기준', '관세법 체계'). document_review 외 모든 task에서 필수 | |
| domain | No | [dispute_prep] 전문 분야 (tax=조세심판, labor=노동위, privacy=개인정보위, competition=공정위). 미지정 시 자동 감지 | |
| toDate | No | [time_travel] 비교 종료 시점 YYYYMMDD | |
| articles | No | [law_system] 함께 조회할 조문 번호 (예: ['제38조']) | |
| fromDate | No | [time_travel] 비교 시작 시점 YYYYMMDD | |
| scenario | No | 확장 시나리오. 미지정 시 쿼리에서 자동 감지. task별 호환: law_system=delegation·impact | action_basis=penalty | amendment_track=timeline·time_travel | ordinance_compare=compliance | full_research=customs·action_plan | procedure_detail=manual | |
| parentLaw | No | [ordinance_compare] 상위 법령명. 미지정 시 자동 검색 | |
| maxClauses | No | [document_review] 최대 분석 조항 수 (기본 15) | |
| includeHistory | No | [amendment_track] 조문별 개정 이력(제정 시점부터 전건)까지 포함. 기본 false — 이 섹션이 응답 상한을 먼저 소진해 신구대조표가 잘린다 (#158) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds genuinely non-structured behavior: document_review requires the text field, scenarios auto-detect from the query, task/scenario compatibility is constrained, and includeHistory warns that its section can exhaust the response budget and truncate the comparison table (#158). It does not address runtime cost despite the 'parallel API' fan-out, which would be useful.
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 long but front-loaded with the identity line, then an efficient pipe-delimited task table where every entry earns its place by decoding a cryptic enum and adding an example. Density is high and justified for a 13-parameter dispatcher, though the scenario enumeration restates much of what the schema already encodes.
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 complex, zero-required-parameter, no-output-schema tool, the description covers routing, per-task prerequisites (text for document_review, query for all others), scenario compatibility, and one documented failure mode with an issue reference. What is missing is any indication of cost/latency or expected response shape for a tool that orchestrates several APIs in parallel.
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 100%, so the baseline is 3, but the description does real work the schema cannot: it gives meaning and example queries for the otherwise opaque task enum values, and it explains the task-to-scenario compatibility matrix that the schema only alludes to via a cross-reference. The domain enum and per-task parameter tags are also clarified ([time_travel], [ordinance_compare], etc.).
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 names a concrete verb+resource ('다단계 법령 리서치 통합' running multiple APIs in parallel) and enumerates the eight research modes with representative example queries for each. It also explicitly distinguishes itself from siblings by stating that single-lookup questions should use search_law/get_law_text instead.
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?
Each task value is paired with a when-to-use condition and an example query ('음주운전 처벌 기준', '관세법 체계', '과세처분 불복'), and the closing sentence gives an explicit exclusion routing single queries to search_law/get_law_text. Alternative selection between search_law, get_law_text and this tool is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinance_radarARead-onlyIdempotentInspect
Korean-law-mcp — [자치법규] 조례 정비 레이더 — 조례가 인용한 근거 상위법령(법률/시행령/시행규칙)을 본문에서 추출하고, 각 상위법의 현행 시행일과 조례 시행일을 대조해 '상위법이 조례 시행 이후 개정됨 → 정비 검토 대상'을 자동 플래그. 조례 담당 공무원의 상위법 개정 추적·조례 정비 판단용. ordinSeq(또는 id)나 ordinanceName 중 하나 지정.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ordinSeq 별칭 — 힌트가 id=로 안내하는 경우 대응 | |
| query | No | ordinanceName 별칭 — 자연어 조례명으로 검색 (search_law 등 다른 도구와 규약 통일) | |
| ordinSeq | No | 자치법규 일련번호 (search_ordinance 결과의 [번호]) | |
| ordinanceName | No | 자치법규명 — 지정 시 검색 후 첫 결과 사용 (예: '서울특별시 광진구 주차장 설치 및 관리 조례') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, which cover the safety profile. The description adds the specific behavioral logic (extracting cited statutes, comparing effective dates, flagging maintenance targets), which goes beyond the annotations. However, it does not disclose potential limitations (e.g., how the analysis handles missing data, or whether it only works on Korean ordinances), so it provides partial value but not rich behavioral context.
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 (about three sentences) and front-loaded with a clear purpose. It avoids repeating schema details and each sentence contributes (purpose, target user, input requirement). It is slightly longer than necessary but not wasteful. The structure effectively communicates the essential information without padding.
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 has no output schema, so the description should at least hint at the return value. It says results are 'automatically flagged' but does not describe the result format (e.g., a list of flagged statutes, a report, or a structured object). It also does not clarify what happens if both ordinSeq and ordinanceName are provided, or if neither is given, which are common edge cases. Given the complexity of the analysis, the description is incomplete in these respects.
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 100% — each parameter (id, query, ordinSeq, ordinanceName) has its own description. The description adds a rule beyond the schema: 'ordinSeq(또는 id)나 ordinanceName 중 하나 지정', clarifying that the agent must supply at least one of these two groups, which is not evident from the empty required array. This is a meaningful semantic addition that helps the agent understand how to combine the parameters.
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 states a specific verb ('extracts', 'compares', 'flags') applied to a specific resource (ordinances' cited superior statutes), making it clear this is an analysis tool, not a search or retrieval tool. It uniquely combines extraction with date comparison and flagging, which clearly distinguishes it from siblings like search_law or get_law_text. No ambiguity remains about the tool's function.
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 for ordinance officers tracking superior law amendments and maintenance decisions. It also dictates the input requirement (one of ordinSeq/id or ordinanceName). However, it does not explicitly state when NOT to use this tool or point to specific alternative tools for other scenarios, so it lacks explicit exclusions. The context is clear but alternatives are not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_decisionsARead-onlyIdempotentInspect
Korean-law-mcp — [통합검색] 18개 도메인(판례·해석례·헌재·행심·조세심판·관세·국세청·공정위·개인정보위·노동위·권익위·소청심사·학칙·공사공단·공공기관·조약·영문법령) 통합 검색. domain으로 선택. 판례 본문까지 필요하면 domain='precedent', options.includeText=true, options.detailLimit=N. 판례 기본은 판례명 검색이라 법리·사실관계·유사판례 탐색은 options.search='both'(판례명+본문). 세무 관련 국세청 직접 회신 해석은 domain='nts'.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 (기본1) | |
| sort | No | 정렬: lasc/ldes/dasc/ddes/nasc/ndes | |
| query | No | 검색 키워드 | |
| domain | Yes | 도메인 선택 (enum 값 참조) | |
| display | No | 결과 수 (기본20) | |
| options | No | 도메인별 옵션. prec:{court,caseNumber,fromDate,toDate,search(1=판례명 기본·2=본문·"both"=판례명+본문)} tax_tribunal:{cls,gana,dpaYd,rslYd} customs:{inq,rpl,gana,explYd} constitutional:{caseNumber} interpretation:{fromDate,toDate} treaty:{cls,natCd,eftYd,concYd} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: default case search targets case names only, and text retrieval is opt-in via includeText/detailLimit. It does not mention rate limits or return format, but for a read-only search this is solid added value.
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?
Dense but front-loaded: the integrated-search scope leads, followed by targeted parameter-selection tips. No filler sentences; each clause carries a concrete instruction.
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?
With 6 parameters, a nested options object, and no output schema, the description covers search modes and domain routing well but omits return shape, pagination behavior, and how results relate to get_decision_text. Adequate but with clear gaps for a tool of this 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?
Schema coverage is 100% (baseline 3), and the description goes beyond it by documenting options.includeText and options.detailLimit, which are absent from the schema's options description, and by clarifying the search mode semantics for discovery vs. name lookup. It adds meaningful routing meaning to the domain and options parameters.
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?
States a specific verb+resource: an integrated search (통합검색) across 18 named Korean-law domains, and lists them. However, it never names the sibling it is not — search_law, get_decision_text, or legal_research — so the agent cannot fully disambiguate from siblings without opening their schemas.
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?
Gives conditional guidance for parameter selection: domain='precedent' + includeText for full case text, search='both' for doctrine/fact-pattern discovery, domain='nts' for tax-authority interpretations. But it offers no when-to-use-this-vs-alternatives routing against search_law or get_decision_text, so usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_lawARead-onlyIdempotentInspect
Korean-law-mcp — [법령검색] 법령명·조례명·행정규칙명 키워드검색 → lawId, mst 획득. 지자체 조례·규칙(자치법규), 훈령·예규·고시(행정규칙)도 검색 — 0건 시 자치법규/행정규칙으로 자동 폴백(예: '광진구 복무조례', '외국환거래규정'). 약칭 자동변환. 제명변경·시행예정 개정 자동 병기. 폐지된 법령·행정규칙은 폐지 사실과 후속(통합) 규정을 자동 안내. 법령·조례·행정규칙 조회 전 식별자 확보용. 여러 법령의 개정 여부를 한 번에 확인(준법 등록부 감시)하려면 execute_tool(tool_name="search_law_bulk").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 검색할 법령명 (예: '관세법', 'fta특례법', '화관법') | |
| display | No | 최대 결과 개수 (기본 50 — 짧은 법령명 정확매칭 누락 방지) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey the safety profile (readOnly, idempotent, non-destructive, open-world), but the description adds substantial behavior beyond them: automatic fallback to 자치법규/행정규칙 on zero hits, abbreviation auto-conversion, auto-annotation of renamed/pending amendments, and proactive notification of repealed rules with successor statutes. These traits materially affect how the agent interprets results and cannot be inferred from structured fields.
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 purpose and identifier output are front-loaded, and each clause (fallback, abbreviation handling, repeal notices) conveys distinct, useful behavior. It is dense and heavy for a single paragraph, with a few clauses that could be tightened, but nothing is truly wasted.
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?
With no output schema, the description compensates by naming the returned identifiers (lawId, mst) and describing result quirks (fallback, repeal notices). For a simple 2-parameter read-only search tool, the agent has everything needed to call it and interpret results.
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 100%, so both parameters are already documented in the schema, and the description only adds a marginal note about abbreviation auto-conversion on the query input. Per the high-coverage baseline, 3 is appropriate since the schema carries the parameter burden.
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?
States a specific verb and resource (법령명·조례명·행정규칙명 키워드검색) and even names the output identifiers (lawId, mst), so the agent knows exactly what it produces. It also distinguishes itself from the sibling search_law_bulk by naming it directly, so the two search tools are separable without opening a schema.
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?
Explicitly states when to use it ('법령·조례·행정규칙 조회 전 식별자 확보용') and names the alternative for the contrasting case (execute_tool with search_law_bulk for checking amendments across many laws). This is precise when-to-use plus a named alternative, not implied guidance.
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
- First observed
discover_tools - First observed
execute_tool - First observed
get_annexes - First observed
get_decision_text - First observed
get_law_text - First observed
legal_analysis - First observed
legal_research - First observed
ordinance_radar - First observed
search_decisions - First observed
search_law
Related MCP Connectors
Official English text of Korean laws (law.go.kr): search by name, get articles; flags outdated texts
Verify Korean legal citations against law.go.kr: precedents, statutes, bar-exam answers.
Resolve, search and verify legal citations against the official sources, with provenance.
Korean Assembly bills tracked hourly in English, plus Korean Acts and decrees article by article.
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.-
- AlicenseAqualityCmaintenanceEnables AI assistants to query and analyze Korean law, including statutes, precedents, and ordinances, with citation verification and impact analysis.106,740 npmMIT
- FlicenseAqualityCmaintenanceEnables AI systems to search, retrieve, and analyze Korean legal information from the National Law Information API (law.go.kr), including laws, administrative rules, English translations, and law-ordinance linkages.262-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and retrieve Korean laws, regulations, administrative rules, legal interpretations, and precedents via official APIs for legal review workflows.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.