korea-tax-law-mcp
Server Details
Korean tax law graph: current statutes, 150k+ court/tribunal cases, 145k+ NTS rulings.
- Status
- Healthy
- Uptime
- 97.3% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- minsooparkk/korea-tax-law-mcp
- GitHub Stars
- 1
- Server Listing
- korea-tax-law
TDQS
Scored across 14 tools
The get_, list_, and search_ groups are generally clearly separated by target type: articles, annexes, cases, interpretations, treaties, and overall tax evidence. The main overlap is search_tax versus the targeted search_* tools, since search_tax also performs full-text search, but its larger graph-search purpose is described well enough to reduce misselection.
All 14 tools use a consistent snake_case verb_noun pattern: get_, search_, or list_. Compound targets like article_history and treaty_article remain predictable and readable.
At 14 tools, the server is well-scoped for a specialized tax-law research domain. Each tool covers a distinct functional need—discovery, search, retrieval, history, upcoming changes, or treaty access—so none feel redundant.
The tool surface covers the main legal-research lifecycle: listing available laws/treaties, searching articles/annexes/cases/interpretations, retrieving full texts, and checking history or pending changes. A minor gap is that full-text retrieval for cases and interpretations found outside search_tax appears to rely on get_evidence, which is documented mainly as consuming search_tax results.
Available Tools
14 toolsget_annexAInspect
특정 별표·서식의 본문을 반환한다. 조문이 '별표 N에 따른다'로 위임한 세율·기준금액을 확인할 때 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| law_name | Yes | 법령명 (예: '소득세법 시행령') | |
| annex_number | Yes | '별표 2', '별표 1의3', '서식 1' 또는 숫자만 |
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 states the core behavior (returns body text) and implies read-only by using the verb '반환한다'. However, it doesn't disclose any additional behavioral details such as error handling, output format, or whether any side effects exist. For a simple read operation this is adequate, but the lack of explicit read-only declaration or output description keeps it at a minimum.
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 two sentences with no wasted words. The first sentence states the action, and the second gives the use case. Information is front-loaded, making 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?
Given the tool's simplicity (2 parameters, no output schema) and high schema coverage, the description covers the essential purpose and usage context. It lacks mention of return format or error cases, but for a basic retrieval tool, these are minor and not critical. The description is complete enough for an agent to decide when to invoke it.
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%, with both parameters (law_name, annex_number) fully described including examples. The tool description does not add any additional meaning beyond what the schema already provides, so the baseline score of 3 applies.
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 returns the body text of a specific annex or form ('특정 별표·서식의 본문을 반환한다'), specifying both the verb and the resource. It also explains the context ('조문이 '별표 N에 따른다'로 위임한 세율·기준금액을 확인할 때 사용'), which differentiates it from siblings like get_article and search_annexes.
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 when to use the tool: when an article delegates checking tax rates or standard amounts to an annex. This provides clear context, but it does not mention alternatives or when not to use it. Thus it's clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleAInspect
특정 조문의 현행 원문 전체를 반환한다 (시행일·검증된 위임 상·하위법령·별표·검증된 인용 포함). 세율·한도·요건 등 정확한 수치는 반드시 이 도구로 원문을 확인할 것. 인용은 적용 확정이 아니다.
| Name | Required | Description | Default |
|---|---|---|---|
| law_name | Yes | 법령명 (예: '소득세법', '상속세 및 증여세법') | |
| article_number | Yes | 조번호 (예: '제97조의2', '97조의2', '55') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It adds useful context beyond a simple 'returns text' by specifying that the result includes effective date, verified delegated statutes, appendices, and verified citations, and cautions that citations are not confirmed application. This gives the agent a realistic picture of the returned content, though it does not address edge cases or failure modes.
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 two well-structured sentences. The main functionality is front-loaded, followed by a clear usage directive and a caveat. Every sentence earns its place with no filler or redundant restatement.
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 (2 required params, no output schema), and the description sufficiently explains what is returned and the reliability caveat. It is complete enough for an agent to call the tool correctly, though it could optionally mention the difference from treaty articles or historical versions for even stronger disambiguation.
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 law_name and article_number with examples. The description does not add any parameter-specific details beyond the schema, matching the baseline score 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 clearly states a specific verb (returns the entire current original text) and a specific resource (a particular article of a law), and enumerates the included components (effective date, verified delegated laws, appendices, verified citations). This distinguishes it from obvious siblings like get_article_history or get_treaty_article without needing 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?
The description explicitly tells the agent when to use this tool: '정확한 수치는 반드시 이 도구로 원문을 확인할 것' (must verify exact figures with this tool). It also warns that citations are not confirmed as applicable. It does not name specific alternatives or state when not to use it, so it falls just 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.
get_article_historyAInspect
특정 조문의 개정 연혁(버전 이력, 개정 표기, 검증·원천 여부)을 반환한다. '언제 바뀌었나' 질문에 사용. 미검증 버전은 적용 단정에 쓰지 말 것.
| Name | Required | Description | Default |
|---|---|---|---|
| law_name | Yes | ||
| article_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and it does meaningful work: it discloses that the result contains verification/source status and warns that unverified versions must not be used to assert application. This is valuable behavioral context beyond what the name or schema conveys.
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 two sentences with no fluff. The first sentence front-loads what the tool returns, and the second adds a precise usage cue and a critical safety warning. Every sentence earns its place.
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 low complexity of two self-named parameters and no output schema, the description covers the key facts: what is returned, when to use the tool, and a data-quality constraint. It could be more complete with output structure or parameter format examples, but it is sufficient for an agent to invoke the tool correctly in most cases.
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%, so the description must compensate, but it only refers generically to 'a specific article' and adds no format, examples, or disambiguation for law_name or article_number. The parameter names are self-explanatory, yet no additional semantics are provided to help with edge cases or value formatting.
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 and resource: it returns the amendment history of a specific article, including version history, amendment notation, and verification/source status. This clearly differentiates it from siblings like get_article, which presumably returns current article text, and search_articles, which searches rather than returns history.
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 says to use this for 'when did it change' questions, giving clear invocation context. It does not name alternative tools or state when not to use it, so it stops short of a fully explicit usage-versus-alternative guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidenceARead-onlyInspect
search_tax가 찾은 근거의 DB 원문을 읽는다. 판례·해석례·예규·조문·통칙·별표·부칙·조약·역사버전을 지원. 긴 본문은 next_offset까지 반복하면 누락 없이 읽을 수 있다. summary_only는 원문 전문이 없는 요지임. 적용 시점 미해소를 현행으로 보충하지 말 것.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| evidence_id | Yes | ||
| source_field | No | 선택: original_text.available_fields의 다른 원문 필드 조회 | |
| evidence_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnly=true and destructiveHint=false, and the description adds meaningful behavioral detail: pagination with next_offset is required for complete reads, summary_only means the original full text is absent, and results at an unresolved application time should not be supplemented with current law. These go well beyond 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?
Four dense sentences, each earning its place. The purpose is front-loaded, and the remaining sentences deliver behavioral warnings and usage constraints without redundancy. No filler or schema duplication.
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 5-parameter tool with annotations and an output schema, the description covers purpose, supported types, pagination behavior, summary-only semantics, and a temporal caveat. It could more explicitly connect the evidence_id to search_tax and clarify the next_offset/offset relationship, but the output schema likely fills the return-value details.
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?
With only 20% schema description coverage, the tool description carries a heavy load. It helps map evidence_type to concrete categories (e.g., case, ruling, article, treaty) and implies evidence_id comes from search_tax results, but it does not explain limit/offset usage, source_field selection, or the exact meaning of each parameter. The pagination comment touches offset indirectly but is not enough to fully compensate.
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 a specific action: reading the DB full text of evidence found by search_tax, and it enumerates supported evidence types. It distinguishes itself from search siblings by tying evidence_id to search_tax, but it does not explicitly differentiate itself from get_article/get_annex/get_treaty_article for direct retrieval.
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 gives clear context: use this after search_tax to read full evidence text, paginate via next_offset for long content, and treat summary_only as non-full-text. It lacks an explicit statement of when not to use it or which sibling to choose instead, but the usage context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_treaty_articleAInspect
특정국 조세조약의 조문 원문 전체를 국문·영문으로 반환한다. 제한세율 등 정확한 수치는 반드시 이 도구로 원문을 확인할 것.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | 체결국 한글명 (예: '미국') | |
| article_number | Yes | 조번호 (예: '제12조', '12') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses return content (full original text, bilingual KO/EN) and asserts the tool's authoritative role, but it does not state what happens on invalid country names, missing treaty partners, or nonexistent article numbers, and the read-only nature is only implied by 반환한다. Adequate but with a clear gap around edge-case and failure 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?
Two sentences, both earning their place: the first states the core function, the second adds a task-level usage directive. Function is front-loaded and there is zero redundant or filler content.
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 2-param read-only retrieval tool with no output schema, the description covers the main essentials: what is returned (full original article text), in which languages, and the authoritative use case. Minor gaps remain: no error/not-found behavior, and no workflow hint that list_treaties/search_treaties should be used first to discover treaty names.
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% — both country (체결국 한글명 with example '미국') and article_number (조번호 with examples '제12조', '12') are already documented with formats and examples. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 is correct.
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 first sentence names a specific verb (반환한다/returns), resource (특정국 조세조약의 조문 원문 전체/full original article text of a specific country's tax treaty), and scope (Korean and English versions). It clearly distinguishes from siblings like get_article and get_annex through the explicit 'tax treaty' framing, though it does not explicitly name or contrast any sibling.
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 second sentence provides an explicit when-to-use directive: '제한세율 등 정확한 수치는 반드시 이 도구로 원문을 확인할 것' — agents should route to this tool for authoritative verification of precise figures. However, it offers no when-not-to-use guidance or alternatives (e.g., search_treaties for discovery or get_article for non-treaty articles).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lawsAInspect
이 DB에 수록된 현행 세법 법령 목록(법률·시행령·시행규칙)과 시행일을 반환한다. 국세청 조세법령 목록의 현행만 포함하며 목록 역사 법령은 제외. 다른 도구를 쓰기 전 수록 범위 확인용.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It usefully reveals that the tool returns current statutes with effective dates, includes only current entries, and excludes historical ones. However, it does not describe the output shape, ordering, pagination, or any response limitations.
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 three concise Korean sentences, each earning its place: what is returned, the current-only scope, and when to use it. There is no filler, repetition, or redundant restating of the tool name.
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 no-input list tool, the description is nearly complete: it states the returned content, effective dates, scope, exclusions, and intended use before other tools. The only minor gap is the lack of an explicit response format, but no output schema is provided, so this is a limited weakness.
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 tool has zero parameters and the schema is empty with 100% coverage, so there is no parameter meaning for the description to add. The baseline for zero-parameter tools is 4, and the description appropriately focuses on result scope rather than parameter details.
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 ('반환한다' / returns) and a clear resource: the current tax law statute list (laws, enforcement decrees, enforcement rules) with effective dates. This distinguishes it from sibling tools like list_treaties and list_upcoming, so an agent can tell it apart without inspecting other 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?
The description explicitly says it is for checking the DB coverage before using other tools, which gives clear usage context. It also clarifies that only current statutes are included and historical ones are excluded, though it does not name alternative tools or state explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_treatiesAInspect
한국이 체결한 조세조약(이중과세방지협약) 수록 현황을 반환한다. country 없이 호출하면 체결국 목록, country를 주면 그 나라 조약(협약·개정의정서·교환각서) 목록과 발효일.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | 체결국 한글명 (예: '미국', '일본'). 생략하면 전체 체결국 목록 |
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 disclose the key behavioral trait: it returns a country list or a filtered treaty list with effective dates. It wisely uses '반환한다' (returns), implying a read-only operation, though it does not discuss edge cases, ordering, or data freshness.
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 compact sentence that front-loads the main purpose and then cleanly explains the conditional behavior. Every phrase conveys useful information with no redundancy or 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 tool with one optional parameter and no output schema, the description is nearly complete: it covers both invocation modes and names the returned treaty list and effective dates. It could go slightly further by specifying output shape or sort order, but the high-level return behavior is sufficient for reliable tool selection.
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 already documents the optional country parameter, its expected Korean-name format, and the behavior when omitted, with 100% schema description coverage. The description restates the parameter's effect but does not add meaningful new semantics beyond the schema, so the baseline of 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 clearly identifies a specific resource (tax treaties concluded by Korea) and describes the two distinct output behaviors based on the country parameter. However, it does not explicitly differentiate this tool from sibling tools like search_treaties, so it misses the top tier.
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 usage context by specifying what happens when country is omitted versus supplied. It does not mention alternatives or exclusion conditions, but for this simple list tool the two calling modes are effectively practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_upcomingAInspect
공포됐으나 아직 시행 전인 개정(시행예정)을 반환한다. 시행일·법령·달라지는 조문 목록. 미래 과세기간이 걸린 질문에서 현행 조문만 보고 답하지 않도록 확인용.
| Name | Required | Description | Default |
|---|---|---|---|
| law_name | No | 법령명 필터 (생략 시 전체) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and does a good job: it discloses the temporal scope (promulgated but not yet effective), the returned content (effective date, law, changed provisions), and the intended verification role. Minor details like ordering or default scope when law_name is omitted are not covered, but they are not critical for this simple read-only list.
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 front-loaded: the first sentence states the core behavior, the second lists the returned fields, and the third gives the use case. Every sentence adds distinct value, and there is no redundant wording.
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-optional-parameter list tool, the description covers what is returned, the temporal state of the data, and when to use it. It does not include a formal output schema, but it does summarize the return contents, making the tool adequately complete for an agent to invoke 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 already documents the only parameter, law_name, with a filter description and an 'omitted means all' note, so schema coverage is 100%. The tool description adds no additional parameter-specific semantics, so the baseline score of 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 uses a specific verb and resource: it returns amendments that have been promulgated but are not yet in force, with effective date, statute, and changed provisions. It also distinguishes this tool from current-law lookups by warning not to rely on current provisions for future tax periods.
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 when to use the tool: for questions involving future tax periods, as a confirmation check before answering from current provisions. It clearly implies the exclusion of current-only tools, though it does not name sibling alternatives explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_annexesAInspect
법령 별표·서식을 전문검색한다. 세율표·기준금액·한도·분류표는 조문이 아니라 별표에 있는 경우가 많다 (예: 근로소득 간이세액표, 면세 미가공식료품 분류표).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 기본 5, 최대 15 | |
| query | Yes | 검색어 (표 제목·항목 낱말) | |
| law_name | No | 법령명 필터 (부분 일치) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that the search is full-text over annexes/forms and explains the domain, which is useful. However, it does not describe result format, ordering, pagination, or permissions, though these are less critical for a read-only search 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?
Two compact sentences: the first states the core purpose, the second adds high-value clarification with real examples. No wasted words and the key differentiator is visible immediately.
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 three well-documented parameters and no output schema, the description conveys what it searches, why it exists, and when it is the right tool. It could mention how to retrieve the full annex after finding it, but that is not essential for correct invocation.
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%, with each parameter already documented in the input schema. The description adds domain-specific examples for what to search for, but it does not add meaning beyond the schema; 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 states a specific action ('전문검색한다') and a clear resource ('법령 별표·서식'). It also gives concrete examples of what kind of content lives in annexes, which sharply distinguishes it from article-centric search 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?
It clearly tells the agent when to use this tool—when searching for tax tables, standard amounts, limits, and classification tables that appear in annexes rather than articles. It does not explicitly name alternatives like search_articles or state 'do not use for article text', so it is strong but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesAInspect
현행 세법 조문을 전문검색한다. 키워드는 조사 없는 명사 위주가 정확함 (예: '이월과세 배우자', '대손세액공제'). law_name으로 특정 법령 한정 가능.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 결과 수 (기본 8, 최대 20) | |
| query | Yes | 검색어 (명사 위주, 구문검색은 따옴표) | |
| law_name | No | 법령명 필터 (부분 일치, 예: '소득세법') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It explains search behavior (full-text), the current-law scope, and important query behavior—keyword accuracy improves with nouns without particles—with concrete examples. It does not describe the return shape, but the disclosed behavioral details are genuinely useful for invocation.
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?
Two compact sentences with no filler. The main purpose is front-loaded, followed immediately by actionable search tips and a filter option. Every sentence earns its place.
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 3-parameter search tool with no output schema, the description covers the domain, query behavior, and filtering. It does not describe the return format, but the examples and sibling tools like get_article make the intended workflow reasonably clear. Slightly more detail on what results contain would make it fully 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 coverage is 100%, so the baseline is 3. The description adds meaningful beyond-schema guidance for query semantics (noun-based keywords, particle avoidance, examples) and confirms law_name's limiting role. limit is left to the schema, which is acceptable.
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 and resource: '현행 세법 조문을 전문검색한다' (full-text search of current tax law provisions). This clearly distinguishes it from sibling tools like search_cases, search_interpretations, and search_treaties by scope and resource type.
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 gives clear context: full-text search over current tax statutes, with law_name as a filtering option. However, it does not explicitly state when to prefer this tool over siblings such as get_article for known article lookups or search_interpretations for interpretive materials. Usage conditions are implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_casesAInspect
판례·조세심판원 결정례를 전문검색한다 (대법원·고등법원 판례, 조세심판원 심판례). 단일 핵심 키워드가 정확함. 키워드 히트는 현행 조문에 대한 검증된 인용이 아니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 기본 5, 최대 15 | |
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It goes beyond a simple search statement by adding two meaningful caveats: single-core-keyword precision and the warning that keyword hits are not verified citations to current statutes. These are genuine behavioral traits an agent needs.
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?
Two concise sentences, front-loaded with the core function and followed by essential usage caveats. No wasted words; every sentence carries operational meaning.
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 two-parameter search tool with no output schema or annotations, the description provides sufficient scope, query guidance, and an important evidentiary caveat. It could mention result handling or ordering, but all essentials for calling the tool are present.
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 describes 'limit' (default 5, max 15) but leaves 'query' undocumented. The description compensates by explaining query semantics: a single core keyword is accurate, which is useful for invocking the tool correctly. Thus it adds 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 states a specific verb and resource: '전문검색한다' with explicit scope of Supreme Court/High Court precedents and Tax Tribunal rulings. This clearly distinguishes it from sibling tools like search_articles or search_treaties, which target different legal document 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 description gives a clear usage context: search when you need case precedents or tax tribunal decisions. The note '단일 핵심 키워드가 정확함' provides practical guidance on query formulation, though it doesn't explicitly name alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_interpretationsAInspect
국세청 질의회신·법제처·행정안전부 해석례를 전문검색한다. 실무 쟁점의 과세관청 입장 확인에 사용. 키워드 히트는 현행 조문에 대한 검증된 인용이 아니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 기본 5, 최대 15 | |
| query | 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 adds meaningful caveats: it is a full-text search and keyword hits are not verified citations to current provisions. This warns the agent about a non-obvious result characteristic. It could have disclosed more about response structure, but the key behavioral risk is addressed.
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?
Three short sentences, all informative: function first, then use case, then an important caveat. No filler or 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?
For a search tool with two parameters and no output schema, the description provides enough to select and invoke it: source agencies, purpose, keyword-search behavior, and a critical limitation on citation validity. It does not describe the return format, but the caveat and scope are sufficiently complete for correct use.
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 50%: the 'limit' parameter is documented (default 5, max 15) but 'query' has only a type. The description compensates somewhat by framing the query as a full-text keyword search ('전문검색', '키워드 히트'), but it does not detail query syntax or formatting.
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 ('전문검색한다') and clearly identifies the resource: interpretation cases from three named agencies. It also states the practical purpose (confirming the tax authority's position), which distinguishes it from sibling tools like search_articles or search_cases.
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 explicitly states when to use the tool: '실무 쟁점의 과세관청 입장 확인에 사용.' This gives clear context, though it does not explicitly exclude alternatives or name sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_taxBRead-onlyInspect
로컬 tax-ai-agent와 같은 통합 그래프 탐색. law 시작 조문에서 위임을 최대 2단계 따라 판례·예규·해석례·참조조문·통칙·부칙 적용근거·별표를 모으고 전문검색으로 보충한다. 결과마다 실제 graph_paths, DB 원문, 시행일·적용버전·미확정 상태를 반환한다. 쟁점 자료 수집의 우선 도구. next_offset으로 결과를, get_evidence로 긴 원문을 이어 읽을 것.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | 선택: YYYY-MM-DD 또는 YYYYMMDD. 조문별 당시 버전을 별도 반환하며 불명 시 현행으로 대체하지 않음. | |
| limit | No | ||
| offset | No | ||
| result_set_id | No | 다음 페이지는 이전 응답의 식별자를 전달하여 검색 집합 변경을 감지 | |
| search_intents | Yes | 유형별 검색 의도. 전체 1~8개. 예: {law:[소득세법 제97조의2],case:[이월과세],ruling:[배우자 증여]} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior, so the description does not need to repeat that. It adds useful behavioral context by mentioning that results include graph_paths, DB original text, effective dates, and version status, and that long texts can be continued via get_evidence. However, it does not disclose any potential side effects, rate limits, or system-specific behaviors that go beyond the annotation.
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 verbose and not well front-loaded. The opening phrase '로컬 tax-ai-agent와 같은 통합 그래프 탐색' is vague and references an unspecified local agent. It then lists multiple output details and ends with pagination instructions. While it conveys necessary information, it could be condensed to focus on the tool's primary function and key differentiators, making it less concise than ideal.
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 the search_intents object and the variety of document types, the description provides some high-level context (e.g., it returns graph paths and version info), but it lacks concrete examples of how to construct effective queries or interpret the response structure. The schema offers some guidance, but the description does not fully bridge the gap for an agent to autonomously use this tool in a nuanced scenario.
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 already provides descriptions for as_of, result_set_id, and search_intents, but the tool description does not add any meaningful explanation for limit, offset, or how to structure search_intents beyond what the schema offers. The mention of 'next_offset' refers to an output field, not a parameter, and 'get_evidence' is a separate tool. Thus, the description does not enrich parameter understanding 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 core function: an integrated graph search that traverses legal documents (law articles, precedents, rulings, interpretations, annexes, etc.) to collect issue-related materials. It distinctively positions itself as a comprehensive search tool compared to sibling tools that focus on single document types (e.g., get_article, search_cases). The phrase '쟁점 자료 수집의 우선 도구' (primary tool for collecting issue materials) further clarifies its intended role.
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 some guidance by labeling this as the primary tool for collecting issue materials, implying it should be used first for comprehensive searches. However, it does not explicitly contrast it with sibling tools (e.g., when to use search_articles instead) or specify conditions for when this tool is not appropriate. The mention of supplementing with full-text search hints at a workflow but lacks clear directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_treatiesAInspect
조세조약(이중과세방지협약) 조문을 전문검색한다. 비거주자·외국법인의 원천징수 제한세율, 고정사업장, 사용료·배당·이자 과세권 확인에 사용. country로 특정국 한정 가능. 본문에 개정의정서가 반영되지 않았을 수 있어 list_treaties로 이력 확인 필요.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 기본 5, 최대 15 | |
| query | Yes | 검색어 (예: '사용료', '고정사업장', '배당 제한세율') | |
| country | No | 체결국 한글명 필터 (부분 일치) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses a meaningful limitation: the main text may not reflect amending protocols, so verification via list_treaties is needed. This is beyond schema information, though it does not cover every possible behavior such as result ordering or rate limits.
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?
Three sentences with no filler: core purpose, then use cases, then the caveat and alternative tool. Information is front-loaded and every sentence earns its place.
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 3 documented parameters and no output schema, the description covers what to search, why, the optional country filter, and an important data-freshness caveat. It is slightly less complete on result shape, but nothing essential to invoking it correctly is missing.
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 query, country, and limit. The description adds only a modest clarification that country restricts to a specific nation, but no new parameter semantics 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 opens with a specific verb and resource: full-text search of tax treaty articles (조세조약 조문 전문검색). It clearly distinguishes itself from sibling search tools like search_articles and search_annexes by targeting treaties and names concrete use cases such as withholding tax rates and permanent establishment rules.
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 explicit when-to-use context (limitation rates, PE, royalties/dividends/interest taxation) and an explicit alternative: list_treaties for treaty history because the main text may not reflect amending protocols. This provides clear guidance for selecting this tool over alternatives.
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.
2 tool updates
- Added
get_evidence - Added
search_tax
12 tool updates
- First observed
get_annex - First observed
get_article - First observed
get_article_history - First observed
get_treaty_article - First observed
list_laws - First observed
list_treaties - First observed
list_upcoming - First observed
search_annexes - First observed
search_articles - First observed
search_cases - First observed
search_interpretations - First observed
search_treaties
Related MCP Connectors
Korean real estate: court auctions, 10M+ MOLIT records, subscription notice facts, loan/DSR rules
Korean national tax and social insurance filings, invoices and payroll data as MCP tools.
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables deterministic research of Korean tax-law issues by retrieving and scoring official statutory evidence from law.go.kr and other legal sources, with citation verification and provenance, without deciding legal conclusions.8MIT
- AlicenseNot gradedqualityAmaintenanceAccess Korea's national tax law information system to search rulings, precedents, statutes, and more using natural language queries via Claude.3MIT
- FlicenseNot gradedqualityBmaintenanceIntegrates Korean public data sources including law, court cases, corporate disclosures, and public data portal, with comparative US and German case law support.10-
- AlicenseAqualityBmaintenanceMCP server that directly queries the Korean National Tax Service tax law information system for tax law interpretations, precedents, and guidance. It supports exact document-number lookup, keyword search, and structured retrieval of ruling details and legal grounds.9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.