Skip to main content
Glama
zisu17
by zisu17

nts-taxlaw-mcp

An MCP server that directly queries the National Tax Service Tax Law Information System (https://taxlaw.nts.go.kr).

It is implemented in Python and FastMCP, and uses the National Tax Service's own lookup endpoints rather than going through the Ministry of Government Legislation mirror (ntsCgmExpc).

  • Look up the latest tax law interpretation rulings

  • Structure full-text details such as replies, decisions, and conclusions

  • Exact lookup by document number

  • Search precedents, decisions, and administrative interpretation standards

  • Structured responses including the source and the type of legal basis

The existing korean-law-mcp can retrieve lists of National Tax Service interpretation rulings due to the nature of the Ministry of Government Legislation OPEN API, but it has limitations in retrieving detailed full text. nts-taxlaw-mcp queries the National Tax Service original source directly to provide document-number lookup and full-text retrieval.


1. Supported data

Area

Target

Search

Document No. lookup

Full text

Tax law interpretations

preliminary responses, written replies (written inquiries), tax-base consultations, notice-based written inquiries

O

O

Gist, facts, question, reply, relevant statutes

Cases and rulings

Selection of assessments, judgment of evidence, review requests, trial requests, precedents, Constitutional Court

O

O

Disposition outline, claimant's claims, tax office opinion, examination and judgment, conclusion

Administrative interpretation standards

Basic Rules for National Taxes

O

-

Text of the provision

Administrative interpretation standards

Tax law enforcement rules

O

-

Provision names and table of contents

Administrative interpretation standards

NTS notices (206), directives (143)

O

-

Metadata

Schedules and forms

Statutory forms (34,487 cases)

O

-

Metadata and file identifiers

Volume

Measured as of August 2026.

| Data | Count | | ---- ------- | ------: | | Written inquiries | 132,638 | | Pre-tax answers | 5,117 | | Tax-base consultation | 1,036 | | Notice-based written inquiries | 14 | | Statute interpretation arrangements | 996 | | Tax dispute | 518 | | Appeals | 1,478 | | Review requests | 22,233 | | Trial requests | 71,349 | | Precedents | 55,860 | | Constitutional Court | 355 |

Data not supported

Data

Reason

Full text of statutes, enforcement decrees, and enforcement rules

The National Law Information Center has the source, a served by korean-law-mcp

Tax treaties

Not preferred since the Ministry of Government Legislation treaty API is more stable, so not duplicated

All general precedents and Constitutional Court rulings

Only tax cases with assigned tax codes are retrieved

Full text of tax law enforcement standards

The source is distributed as yearly PDFs, so only the table of contents, provision names, and PDF file IDs are provided

Form file binaries

Download follows a POST form method, so no stable GET URL

BAI review requests, Supreme Court and Tax Counsel decision cases

Not implemented as separate modules/actions

Publications, summary by taxpayer, dictionary, tax calendar

Not supported because they are informational materials, not legal sources

See docs/INVESTIGATION.md for additional research.


Related MCP server: Korean Law MCP

2. Data source

All data is retrieved from the National Tax Service Tax Law Information System.

https://taxlaw.nts.go.kr

  • Uses the public query endpoint POST /action.do

  • No login, CAPTCHA, or access control workarounds

  • No separate session, cookie, or authentication key required

  • All responses include source traceability information

{
  "sourceAgency": "국세청",
  "sourceSystem": "국세법령정보시스템",
  "sourceId": "200000000000022584",
  "documentNumber": "서면-2026-법규재산-0119",
  "sourceUrl": "https://taxlaw.nts.go.kr/qt/USEQTA002P.do?ntstDcmId=200000000000022584",
  "retrievedAt": "2026-08-19T13:34:58Z"
}

3. Document number lookup

Normalize the formatting differences of document numbers to retrieve the same document.

서면-2026-법규재산-0119
서면 2026 법규재산 0119
서면2026법규재산0119
서면서면-2026-법규재산-0119
질의회신 서면-2026-법규재산-0119
질의회신서면-2026-법규재산-0119
국세청 서면-2026-법규재산-0119

The recognized document number formats are as follows.

structure

example

A

type-year-category-serial

서면-2026-법규재산-0119, 사전-2026-법규소득-0543, 조심-2025-인-4460

B

type-agency-year-serial

적부-국세청-2026-0119, 이의-광주청-2026-0024, 심사-부가-2026-0018

C

agency department-number

기재 국제조세협력과-104

A and B are distinguished by whether the second element is a four-digit year.

Exact Match Principle

정확히 일치
→ found: true
→ exactMatch: true
→ document 반환

일치 없음
→ NOT_FOUND
→ similarDocuments 별도 반환

Documents with only a partial match are not returned as an answer.

lookup_tax_document("법규재산-0119")

→ [NOT_FOUND]

similarDocuments:
  · 서면-2026-법규재산-0119
  · 서면-2015-징세-0119
  · 기준-2023-법규부가-0044
  · 적부-국세청-2020-0119

similarDocuments is search assistance information and should not be considered the requested document.

If only the zero-padding differs, such as 0119 vs. 119, the document number is treated as the same. Normalization is used only to expand lookup candidates; the final response returns the original National Tax Service document number as-is.


It is based on the actual search results of the Tax Law Information System, and applies its search syntax.

["상속"]

22,349

single keyword

["증여"]

22,924

single keyword

["상속","증여"]

14,913

AND

["상속 증여"]

14,913

AND

["상속|증여"]

30,360

OR

["상속"] + excluded ["증여"]

7,436

NOT

It is used in MCP as follows.

{"query": "상속 공동상속주택"}                  # AND
{"query": "상속 증여", "match": "any"}         # OR
{"query": "상속", "exclude": ["증여"]}         # NOT
{"query": '"공동상속주택 소수지분" 양도'}       # 구절 검색

Note the following when searching:

  • The OR operator uses the ASCII pipe |.

  • ¦ (U+00A6) does not act as OR.

  • Passing an invalid sort field returns 0 results rather than an error.

  • The server only uses DCM_RGT_DTM, FRS_RGT_DTM, and SCORE, which have been verified for actual behavior.


5. Installation

You do not need to install Python directly or create a virtual environment manually. uv manages the required Python and packages.

5.1 Install uv

Windows

PowerShell:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

If script execution is restricted by corporate policy:

winget install --id=astral-sh.uv -e

macOS / Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

After installation, reopen the terminal and verify.

uv --version

5.2 Install the server

You can install directly from the GitHub address.

uv tool install git+<GitHub 주소>

After installing, you can run the nts-taxlaw-mcp command from any path.

Check the installation location:

(Get-Command nts-taxlaw-mcp).Source
which nts-taxlaw-mcp

Typical installation paths:

OS

Path

Windows

C:\Users\<사용자>\.local\bin\nts-taxlaw-mcp.exe

macOS / Linux

~/.local/bin/nts-taxlaw-mcp

Update:

uv tool upgrade nts-taxlaw-mcp

Uninstall:

uv tool uninstall nts-taxlaw-mcp

5.3 Install from source

If you want to modify the code or run tests, download the repository.

git clone <GitHub 주소>
cd nts-taxlaw-mcp
uv sync

uv sync performs the following:

  • Checks and installs a Python compatible with requires-python = ">=3.11"

  • Creates .venv in the project directory

  • Installs dependencies based on uv.lock

There is no need to activate the virtual environment yourself. Subsequent commands are run with uv run.

If git is unavailable, you can also download the repository via GitHub's Code > Download ZIP, unzip, and run uv sync.

Verify it works:

uv run nts-taxlaw-mcp --help
uv run python scripts/compare_with_site.py

5.4 PATH check

If uv or nts-taxlaw-mcp is not found immediately after installation, reopen the terminal and check again.

uv tool update-shell

On Windows, check with an absolute path:

& "$env:USERPROFILE\.local\bin\uv.exe" --version

macOS / Linux:

~/.local/bin/uv --version

6. Connecting Claude Code

When installed with uv tool

claude mcp add nts-taxlaw -- nts-taxlaw-mcp

If the command is not found, confirm the install location and then set the absolute path.

claude mcp add nts-taxlaw -- "C:\Users\<사용자>\.local\bin\nts-taxlaw-mcp.exe"

When running from the repository

claude mcp add nts-taxlaw -- uv run --directory /절대경로/nts-taxlaw-mcp nts-taxlaw-mcp

Verify registration:

claude mcp list

HTTP connection

nts-taxlaw-mcp --http --port 8000

Claude Code registration:

claude mcp add --transport http nts-taxlaw http://127.0.0.1:8000/mcp

7. Connecting Claude Desktop

Settings file:

OS

Path

Windows

%APPDATA%\Claude\claude_desktop_config.json

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

For Claude Desktop, it is more reliable to specify the absolute path of the executable.

Windows

uv tool installation:

{
  "mcpServers": {
    "nts-taxlaw": {
      "command": "C:\\Users\\<사용자>\\.local\\bin\\nts-taxlaw-mcp.exe"
    }
  }
}

Running from the repository:

{
  "mcpServers": {
    "nts-taxlaw": {
      "command": "C:\\Users\\<사용자>\\.local\\bin\\uv.exe",
      "args": [
        "run",
        "--directory",
        "C:\\Users\\<사용자>\\nts-taxlaw-mcp",
        "nts-taxlaw-mcp"
      ]
    }
  }
}

In JSON, write Windows backslashes as \\ in the path. Using / also works.

macOS

uv tool installation:

{
  "mcpServers": {
    "nts-taxlaw": {
      "command": "/Users/<사용자>/.local/bin/nts-taxlaw-mcp"
    }
  }
}

Running from the repository:

{
  "mcpServers": {
    "nts-taxlaw": {
      "command": "/Users/<사용자>/.local/bin/uv",
      "args": [
        "run",
        "--directory",
        "/Users/<사용자>/nts-taxlaw-mcp",
        "nts-taxlaw-mcp"
      ]
    }
  }
}

To verify the actual path:

(Get-Command nts-taxlaw-mcp).Source
which nts-taxlaw-mcp

Using together with korean-law-mcp

The recommended configuration is to look up statute, enforcement decree, and enforcement rule text via korean-law-mcp, and retrieve NTS-specific materials via nts-taxlaw-mcp.

{
  "mcpServers": {
    "korean-law": {
      "command": "npx",
      "args": ["-y", "korean-law-mcp"],
      "env": {
        "LAW_OC": "발급받은-인증키"
      }
    },
    "nts-taxlaw": {
      "command": "C:\\Users\\<사용자>\\.local\\bin\\nts-taxlaw-mcp.exe"
    }
  }
}

pip + venv

In environments where uv is not available, you can install Python 3.11 or later directly and run it in the traditional way.

git clone <GitHub 주소>
cd nts-taxlaw-mcp

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

python -m nts_taxlaw_mcp --help

Activate the Windows virtual environment:

.venv\Scripts\activate

For Claude Desktop, specify the absolute path to the Python executable inside the virtual environment.

{
  "mcpServers": {
    "nts-taxlaw": {
      "command": "/절대경로/nts-taxlaw-mcp/.venv/bin/python",
      "args": ["-m", "nts_taxlaw_mcp"]
    }
  }
}

8. Environment variables

All items are optional and the defaults are sufficient for normal use.

Variable

Default

Description

NTS_TIMEOUT_MS

20000

Request timeout (ms)

NTS_RETRIES

3

Number of retry attempts

NTS_RATE_PER_MIN

60

Request limit per minute

NTS_RATE_BURST

20

Allowed request burst

NTS_BODY_LIMIT

30000

Max body character count

NTS_CACHE_MAX

600

Maximum number of cache entries

NTS_USER_AGENT

Chrome UA

User-Agent


9. MCP tools

A total of 9 tools are provided.

Tool

Purpose

lookup_tax_document

Document number exact lookup

search_tax_interpretations

Search tax interpretations

search_tax_decisions

Search precedents and rulings

get_tax_document

Full-text lookup of interpretations and rulings

search_tax_guidance

Search basic rules, enforcement standards, notices, and directives

get_tax_guidance

Retrieve a specific provision of basic rules or enforcement standards

search_tax_forms

Search statutory forms and appendix tables

search_taxlaw

Integrated multi-area search

tax_research

Collect legal bases layer by layer for tax questions

If you know the document number, use lookup_tax_document first.

get_tax_document unifies detailed retrieval of interpretations and rulings into one tool. Since the Tax System Information System uses the same detailed lookup action regardless of document type, it is not split into separate detail tools.

Usage examples

Document number lookup:

{
  "name": "lookup_tax_document",
  "arguments": {
    "document_number": "서면-2026-법규재산-0119"
  }
}

Example response:

[OK]

found: true
exactMatch: true

서면-2026-법규재산-0119
질의회신 | 양도소득세 | 2026-08-11 | nts_ruling

title:
인구감소지역 내 취득한 분양권이 ’27.1.1.이후 주택으로 전환된 경우 조특법§71의2 적용 여부

relatedLaws:
- 조세특례제한법 제71조의2
- 조세특례제한법 시행령 제68조의2

sections:
- facts
- question
- relatedLawsText

Search precedents and rulings:

{
  "name": "search_tax_decisions",
  "arguments": {
    "query": "공동상속주택",
    "type": "court",
    "result": ["국승"],
    "limit": 3
  }
}

Search basic rules:

{
  "name": "search_tax_guidance",
  "arguments": {
    "kind": "basic_ruling",
    "law_name": "상속세 및 증여세법",
    "query": "상속재산"
  }
}

Collect legal bases for a tax question:

{
  "name": "tax_research",
  "arguments": {
    "question": "부모가 자녀에게 시가보다 낮은 가격으로 아파트를 양도하면 증여세가 발생하는지"
  }
}

Tax materials are returned classified by the nature of the legal basis.

Value

Value

statute

Statute

enforcement_decree

Enforcement Decree

enforcement_rule

Enforcement Rule

nts_ruling

NTS interpretations and rulings

nts_guidance

Basic rules, enforcement standards, regulations, directives

adjudication

Tax assessments, appeals, review, trial

court_case

Court precedents, Constitutional Court decisions

National Tax Service rulings are associations of interpretation for tax authorities and do not bind courts. Basic rules and enforcement standards are internal execution standards, not statutes themselves.


11. Error handling

Errors distinguish a grade in which the data does not actually exist from failures due to problems with the original server.

Error Code

Meaning

Treatable as non-existent

NOT_FOUND

The associated content does not exist

O

DETAIL_NOT_AVAILABLE

File exists but the body is not served by the source

X

UPSTREAM_ERROR

NTS error, maintenance, or abnormal response

X

PARSE_ERROR

Response format does not match the expected schema

X

RATE_LIMITED

The server's own request quota exceeded

X

TIMEOUT

Request timeout

X

INVALID_INPUT

Input error

X

Error responses also include guardrail information that prevents the model from generating unverified body or conclusions.

Even if an HTTP 200 response is received, it is treated as a temporary outage if the content is a maintenance HTML page or the body is abnormally empty, and retried.


12. Request limits and caching

The server limits call volume and reduces repeated lookups to avoid excessive requests to the National Tax Service system.

Request limits

  • Default period limit: 60 requests per minute

  • Burst allowance: 20 requests per burst

  • Uses the token bucket method for multi-row(z)

Cache

Cache target

Retention

Search results

30 minutes

Document text

24 hours

Basic rules, general rules, exceptions, directives

12 hours

Statute lists

7 days

Concurrent request handling

If the same identical request arrives simultaneously, the original Tax Service system call is executed only once and the result is shared.

HTTP connection reuse

Uses the httpx keep-alive connection pool.


13. Disclaimer

  • This server is a data access layer for searching and structuring NTS original text, and does not provide legal advice or tax advice.

  • Interpretations and rulings are decided based on the facts of each individual case.

  • NTS interpretations do not bind the courts.

  • Basic rules and enforcement standards are internal guidelines, not regulations.

  • For amended tax law, the effective date must be confirmed separately.

  • The accuracy and currency of the data follow the update status of the Tax Law Information System.

  • If the legal effect matters, you need to verify the original text on the Tax Law Information System.

  • Actions with legal effect, such as filing returns or any protest / dispute resolution, require the substantiated review from qualified professionals such as tax accountants or attorneys.


License

MIT

See NOTICE for data source attribution.

Available Tools

9 tools
get_tax_documentA

국세청 문서 1건의 본문·구조화 필드를 가져온다. ntst_dcm_id(검색 결과의 문서 ID) 또는 document_number 로 지정한다. 해석례는 요지·질의내용·사실관계·회신·관련법령으로, 결정례는 처분개요·청구인주장·처분청의견·심리및판단·결론으로 분해해 반환한다. 문서 종류에 따라 존재하는 절이 다르므로 없는 절은 생략된다. 본문을 원본이 주지 않으면 DETAIL_NOT_AVAILABLE 로 알리고 본문을 생성하지 않는다.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_limitNo
ntst_dcm_idNo국세법령정보시스템 문서 ID(숫자 18자리)
document_numberNo문서번호. ID 를 모를 때 사용.
include_full_textNo본문 전문 포함 여부

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: missing sections are omitted, and if the original does not provide the body, it returns DETAIL_NOT_AVAILABLE and does not generate it. This proactively sets expectations about edge cases and output handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet information-dense. Each sentence contributes: purpose, specification method, structure for both document types, handling of missing sections, and fallback for body. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (different document types with varying fields, potential for missing data), the description is complete. It explains the output structure, edge cases, and fallback behavior. With no output schema provided, the description fully covers what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides descriptions for all four parameters. The tool description adds context for ntst_dcm_id and document_number (how they relate to search results and fallback), and mentions include_full_text indirectly via '본문' but does not elaborate on body_limit. It adds some value beyond the schema, but not complete coverage for all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches one document's body and structured fields, and distinguishes it from search tools by specifying document ID or number. It also explains the two types of documents (해석례 and 결정례) and their corresponding fields, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear guidance on how to specify the document (by ID or number) and when to expect missing sections. It implies usage after search results (mentioning '검색 결과의 문서 ID') but does not explicitly state not to use for searching or when to choose this over sibling tools. Still, the practical instructions are solid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tax_guidanceA

기본통칙 또는 세법집행기준의 특정 조항 1건을 가져온다. search_tax_guidance 로 찾은 item_id, 또는 조항명 일부(title)로 지정한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes기준 종류
titleNo조항명 일부. item_id 를 모를 때 사용
item_idNo조항 식별자(search 결과의 itemId)
law_nameYes대상 법령명
revision_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must disclose behavioral traits. It only says it fetches a provision and mentions identification methods, but does not disclose whether the operation is read-only, what happens if the title matches multiple provisions, or that kind and law_name are required. Missing these important behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with the main action and optional identification methods. Every sentence earns its place; no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, output schema exists), the description is adequate but has gaps. It covers the key usage scenario (fetch by item_id/title) but omits mention of required parameters kind and law_name, and does not describe edge cases or return format. Since the output schema exists, return values need not be explained, but the missing required parameter guidance leaves room for error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (80%). The description adds meaning beyond the schema by explaining that item_id comes from search results and that title is an alternative when item_id is unknown. It clarifies the relationship between these two parameters, but does not mention revision_year or the required nature of kind/law_name, though the schema covers those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches a single provision from basic rulings or tax law enforcement standards, and it gives two ways to identify the provision (item_id or title). It distinguishes from search_tax_guidance but does not explicitly differentiate from other get/update siblings, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to use item_id from search_tax_guidance or a title fragment, implying a typical flow of search-first-then-fetch. It provides clear context for when to use this tool but does not mention when to use alternatives or exclude other tools, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_tax_documentA

문서번호로 국세청 문서를 정확히 일치하는 것만 찾아 본문까지 반환한다. 세법해석례(사전답변·질의회신·과세기준자문·고시서면질의)와 판례·결정례(과세적부·이의신청·심사청구·심판청구·판례·헌재)를 자동 판별한다. '서면-2026-법규재산-0119', '서면 2026 법규재산 0119', '서면2026법규재산0119', '질의회신 서면-2026-법규재산-0119' 처럼 표기가 달라도 같은 문서로 정규화한다. 정확히 일치하는 문서가 없으면 NOT_FOUND 를 반환하고, 번호가 일부 겹치는 문서는 similarDocuments 로 분리해 준다(정답이 아님). 문서번호를 아는 경우 항상 이 도구를 먼저 쓸 것.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_limitNo본문 최대 글자수(기본 30000)
document_numberYes문서번호. 표기 편차를 자동 정규화한다. 적부-국세청-2026-0119 처럼 기관이 번호에 포함된 형식도 지원.
include_full_textNo본문 전문 포함 여부

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses exact-match only behavior, normalization of varying notation, NOT_FOUND when no exact match, separation of similarDocuments, and automatic classification of document types. This is highly transparent about expected behavior and edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. Every sentence adds value: principal function, document type coverage, normalization examples, NOT_FOUND/similarDocuments behavior, and usage priority. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers important edge cases (no exact match, partial overlaps), normalization rules, and document type scope. With an output schema present for return values, the description does not need to repeat those details. It is complete for both simple and complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds significant value for the document_number parameter by giving concrete examples of accepted notation variations and normalization, which goes beyond the schema. It does not add new meaning for body_limit or include_full_text, but the schema already describes those adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: find documents by exact document number match and return the body. It distinguishes itself from siblings by emphasizing exact-match semantics and automatic normalization, and explicitly mentions it should be used before other tools when a document number is known.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: when you know the document number, always use this tool first. It also clarifies that partial matches are returned as similarDocuments and are not the answer, implicitly steering users to alternative search tools for fuzzy lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tax_decisionsA

국세청·조세심판원·법원의 판례·결정례를 검색한다. 대상: 과세적부(05)·이의신청(06)·심사청구(07)·심판청구(08)·판례(09)·헌재(10). 결정결과(인용·기각·각하·경정·재조사·국승·국패 등)와 귀속연도로 필터할 수 있다. 사건번호를 알면 case_number 로 넘기면 exact lookup 이 수행된다.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNo관련 법령명
pageNo
sortNo정렬
typeNoall(기본) | pre_assessment(과세적부) | objection(이의신청) | review(심사청구) | tribunal(심판청구) | court(판례) | constitutional(헌재)all
limitNo
matchNoall=AND(기본), any=ORall
queryNo검색 키워드
resultNo결정 결과 필터(인용/기각/각하/경정/국승/국패 등)
articleNo관련 조문
date_toNo등록일 종료
excludeNo제외할 낱말(NOT)
tax_typeNo세목
date_fromNo등록일 시작
case_numberNo사건번호/문서번호. exact lookup 수행.
attribution_yearNo귀속연도(4자리)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the scope of search sources, that result filtering is supported, and prominently states that case_number triggers an exact lookup. It does not discuss pagination or result structure, but the presence of an output schema mitigates that need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with no filler or repetition of unrelated material. The dense list of target types/codes is necessary for scoping a search tool of this breadth and is immediately usable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count and no annotations, the description explains the essential aspects: what data sources are searched, what document categories are covered, what filters exist, and how to use exact lookup. It does not discuss sibling-tool selection, but the tool name and description together with sibling names still provide sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (87%), so the baseline is 3. The description adds useful context beyond the schema by mapping the target types to their official category codes (05, 06, 07, etc.) and by emphasizing that case_number yields an exact lookup. It also ties decision result and attribution year to filter behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses an active verb ('검색한다') and clearly specifies the resource: tax case precedents and rulings from the National Tax Service, Tax Tribunal, and courts. It also lists the exact target categories and filter dimensions, making its purpose unambiguous and sufficiently distinct from sibling tools like search_tax_interpretations or search_tax_guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: searching tax decisions/rulings, optionally filtering by decision result or attribution year. It explicitly tells the agent to use case_number for exact lookup when the case number is known, which is a strong usage guideline, though it does not name sibling tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tax_formsA

국세 법령서식·별표를 검색한다. 서식명·관련법령·개정일·서식 파일 식별자를 반환한다. 파일 실물은 국세법령정보시스템이 POST 폼으로만 내려주므로 이 서버는 바이너리를 제공하지 않고 조회 화면 URL 을 준다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
queryNo서식명 키워드
law_nameNo관련 법령명으로 한정

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full transparency burden. It clearly discloses the non-obvious limitation that this server does not return binaries and instead provides a viewing screen URL. It also states the exact output fields, which is strong behavioral disclosure for a 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is just two sentences. The first sentence immediately states the action and resource, and the second adds a critical limitation. Every sentence earns its place with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a straightforward search operation with an output schema available. The description covers the tool's purpose, return fields, and the crucial binary/URL limitation, making it complete enough for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes `query` and `law_name`, and the description reinforces these by mentioning form name and related law. However, `page` and `limit` are not explained in either the schema or the description, leaving a gap for pagination semantics. With 50% schema coverage, the description partially compensates but does not add significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('검색한다', searches) and clearly identifies the resource (tax legal forms and schedules). It enumerates exact return fields (form name, related law, revision date, file identifier) and is clearly distinct from sibling tools focused on interpretations, decisions, guidance, or tax law.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context that this tool searches tax forms and returns metadata plus a viewing URL. It also explains the important limitation that binaries are not provided because the upstream system only serves them via POST form. However, it does not explicitly name alternative tools for other document types 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_tax_guidanceA

국세청 행정 해석기준을 검색한다. kind: basic_ruling(국세 기본통칙) | execution_standard(세법집행기준) | notice(국세청 고시) | directive(국세청 훈령). 기본통칙은 조항 본문까지 제공되고, 집행기준은 조항명(목차)까지만 제공된다(원본이 본문을 API 로 주지 않음). 기본통칙·집행기준은 law_name 이 필요하다(예: '상속세 및 증여세법', '상속증여세 집행기준'). 이 자료는 법규가 아닌 국세청 내부 집행기준임을 결과에 함께 표기한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes조회할 기준 종류
pageNo
limitNo
queryNo조항명·본문 키워드
law_nameNo기본통칙·집행기준에는 필수
revision_yearNo개정연도. 생략하면 최신본

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

annotations이 전혀 없는 상황에서도 기본통칙은 조항 본문까지, 실행기준은 조항명(목차)까지만 제공된다는 중요한 결과 제약을 밝히고, 결과에 법규 아님 표기를 함께한다는 동작 표현을 서술한다. 다만 읽기 전용 명시나 페이지네이션 동작 같은 추가 동작 표현은 드러나 있어 완전한 투명성은 아닌 정도는 남는다.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

첫 문장으로 목적을 밝히고, 이후 kind 구분 → 제공 범위 제한 → 필수 조건 → 법규 여부 표기 순서로 핵심 정보를 겹침 없이 압축했다. 문장마다 도구 사용에 필요한 정보가 하나씩 담겨 있어 효율적이다.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

6개 파라미터와 kind별 반환 수준 차이라는 복잡도를 고려할 때, 법률명 조건부 파라미터와 검색 결과가 법규 아님을 표시해야 한다는 부분까지 다루진 완성도가 높다. 다만 형제 도구와의 경계를 한 문장으로 정리해 주면 더 충분할 수 있다.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

schema 설명은 67%만 제공되고 page/limit은 스키마에도 상세 설명이 없다. 설명은 kind enum의 사실상 의미를 국세기본통칙·세법집행기준 같은 실제 라벨로 채워주고, law_name이 어떤 kind에서 필수인지 조건부 판단정보를 추가해 값을 더해준다.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

'국세청 행정 해석기준을 검색한다'로 시작해 검색 대상을 구체적으로 특정하고, kind에 따라 basic_ruling, execution_standard, notice, directive의 네 가지 범위를 제시한다. 또한 '법규가 아닌 내부 집행기준'이라는 점을 명시하여 search_taxlaw나 search_tax_decisions 같은 형제 도구와 구별되는 목적이 분명히 드러난다.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

기본통칙·집행기준 검색 시 law_name이 필요하다는 조건을 예시와 함께 명시하여 실제 호출 맥락을 알려준다. '이 자료는 법규가 아니다'라는 제약도 안내하지만, 형제 도구와 비교하는 명시적 when-to-use/when-not-to-use 지침은 아니다.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tax_interpretationsA

국세청 세법해석례(예규)를 검색한다. 대상: 사전답변(01)·질의회신(02, 서면질의)·과세기준자문(03)·고시서면질의(04). 키워드·세목·관련법령·조문·기간으로 좁힐 수 있다. 공백으로 구분한 낱말은 AND, match='any' 는 OR, exclude 는 NOT 이다. 문서번호를 알고 있으면 document_number 를 넘기면 exact lookup 으로 처리된다. 법제처 미러가 아니라 국세청 원본을 직접 조회하므로 최신 예규가 바로 잡힌다.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNo관련 법령명(예: '상속세 및 증여세법')
pageNo페이지 번호(1부터). 오프셋이 아니다.
sortNo정렬
typeNoall(기본) | advance(사전답변) | written(질의회신) | advisory(과세기준자문) | notice_written(고시서면질의)all
limitNo페이지 크기
matchNoall=AND(기본), any=ORall
queryNo검색 키워드. 공백 구분은 AND. 따옴표로 묶으면 한 구절.
articleNo관련 조문(예: '제35조')
date_toNo등록일 종료 (YYYY-MM-DD)
excludeNo제외할 낱말(NOT)
tax_typeNo세목. 이름·별칭·코드(301~315) 허용.
date_fromNo등록일 시작 (YYYY-MM-DD)
document_numberNo문서번호를 주면 exact lookup 을 수행한다.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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 delivers: states exact scope (four types), explains match semantics (AND/OR/NOT), and discloses the data-sourcing tradeoff (direct NTS with fresh data, but not a legal mirror). Loses a point because it doesn't explain what fields are returned, pagination behavior beyond a 'page' parameter, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description avoids filler, front-loads the core purpose in the first line with a period, and the remaining text efficiently covers types, filters, query semantics, and data-source advantage in sentence fragments. It's structured as a single dense paragraph that is readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, 13-parameter tool with no annotations and no defaults on half the fields, the description explains the semantics of match models (AND/OR/NOT), the exact-lookup path, and the source-freshness tradeoff. However, it doesn't describe the kind of data returned (e.g., fields/structures) since it relies on an output schema, which the rules allow. Minor gap: it does not explain default sort behavior or how to combine 'tax_type' and 'query'—two behaviors that would have completed the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage, giving a baseline of 3. The description adds value by clarifying that 'document_number' triggers exact lookup, and that whitespace-separated words become AND terms in the query parameter, which matches the 'query' parameter's description of quoted phrase behavior. However, it doesn't provide the full boolean logic detail for exclude or how sort values map to behavior—the description adds some contextual glue but doesn't fully compensate for what's missing in terse schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states '국세청 세법해석례(예규)를 검색한다' with specific object (searching tax interpretations), lists the four categories covered, and differentiates itself from siblings by clarifying it directly queries the NTS original rather than the Ministry of Government Legislation mirror. It's specific and distinguishes the tool from search_tax_decisions, which handles rulings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use this instead of the alternative by mentioning '법제처 미러가 아니라 국세청 원본을 직접 조회하므로 최신 예규가 바로 잡힌다'—differentiating from sibling tools that might query the other source. It also cites a data-freshness advantage over alternatives. Though it doesn't name sibling tools explicitly, it provides clear context for when this tool's characteristics matter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_taxlawA

국세청 자료 전 영역을 한 번에 검색한다(해석례·결정례·고시훈령·서식). 질의에 문서번호가 섞여 있으면 exact lookup 을 최우선으로 시도한다. domains 를 생략하면 질의 표현('예규', '심판', '통칙', '적부' 등)을 보고 조회 영역을 자동 결정한다. 어느 영역을 봐야 할지 모를 때의 진입점으로 쓸 것.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes자연어 또는 키워드
domainsNo조회할 영역. 생략하면 자동 결정.
tax_typeNo세목(명시하면 필터로 적용)
limit_per_domainNo영역별 결과 수

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral transparency burden on its own. It helpfully discloses the exact-lookup priority ('질의에 문서번호가 섞여 있으면 exact lookup 을 최우선으로 시도한다') and the auto-domain-detection behavior. However, it does not reveal the return-retention format, pagination, sorting, or what happens when the auto-detection is ambiguous, leaving some important behavior unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is economical and front-loaded: the first sentence states the tool's core purpose, the next two sentences provide essential behavioral constraints, and the final sentence gives the usage context. Every sentence serves a distinct, valuable purpose without repetition or wasted tokens.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the available context with low complexity and a schema with 100% description coverage, the description is sufficiently complete. It explains the main behavioral nuances (exact lookup, auto-domain detection), and its entry-point advice makes it clear when to invoke this tool in a larger flow. A slightly more explicit distinction from lookup_tax_document and the named domain-specific siblings would make it fully complete, so it stops one step short of 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all four parameters with full coverage, which gives a baseline of 3. The description adds value by clarifying that the query parameter can include document numbers and that domains can be auto-inferred from expressions like '예규', '심판', '통칙', and '적부'. This goes beyond the schema's short description and improves an agent's understanding of how to fill meaningful values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear and specific statement: '국세청 자료 전 영역을 한 번에 검색한다' – it searches all NTS data areas at once (inquiries, decisions, notices, forms). This distinguishes the tool from sibling domain-specific search tools, and adds the exact-lookup behavior for document numbers, making the purpose explicit and unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool as the entry point when unsure which area to search ('어느 영역을 봐야 할지 모를 때의 진입점으로 쓸 것'). It also implies that when the domain is unknown, the tool will auto-detect it based on the query. However, it does not explicitly name alternatives or state when not to use this tool, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_researchA

세무 쟁점 하나를 층별 근거로 모아 온다: 법률→시행령→시행규칙(범위 밖, 확인 경로 안내)→기본통칙→세법집행기준→국세청 해석례→불복 결정례→판례·헌재. 각 층에 authorityLevel 을 붙여 법규와 행정해석과 개별 결정의 효력 차이를 구분한다. 법률적 판단이나 결론을 만들지 않는다 — 원문 근거 수집과 출처 제시만 한다. 법령 본문이 필요하면 korean-law-mcp 를 함께 쓸 것.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNo관련 법령명을 알면 지정
articleNo관련 조문을 알면 지정
questionYes세무 쟁점 질문(자연어)
tax_typeNo세목을 알면 지정(정확도 향상)
limit_per_layerNo층별 결과 수
include_guidanceNo기본통칙·집행기준 포함 여부

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It reveals key behavioral traits: the layer-by-layer evidence collection algorithm, the authorityLevel tagging mechanism for distinguishing legal effect, an explicit no-legal-conclusion guarantee (anti-hallucination), and the companion-tool suggestion. It falls short only on operational details like pagination, rate limits, or partial-failure behavior—minor gaps for a read-only research tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three information-dense sentences with zero filler—the hierarchy, the authorityLevel mechanism, the scope caveat, and the companion-tool pointer are all load-bearing. The only deduction is structural: it's a heavy wall of text with no front-loading, bolded critical caveat aside, making it denser to parse than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 6 parameters and a multi-layer research model, the description covers the essential context: the layered pipeline, the distinction between statutes/interpretations/decisions, the authorityLevel mechanism, and the no-judgment behavioral guarantee. The output schema exists to document return values. Gaps like error handling and empty-layer behavior are minor for a research tool with an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with well-described parameters (layered result counts for limit_per_layer, accuracy hints for tax_type), so the baseline is 3. The description's layer hierarchy does help interpret limit_per_layer and include_guidance (which map to specific layers like 기본통칙·집행기준), but it adds no parameter-specific detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource: 'collects one tax issue as evidence' organized by an explicit hierarchical cascade (법률→시행령→...→판례·헌재). The layered research concept, authorityLevel tagging, and the explicit no-legal-conclusions scope clearly distinguish it from sibling search/lookup/get tools focused on individual document types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names korean-law-mcp as an explicit companion tool for statutory text ('법령 본문이 필요하면'), gives an explicit scope exclusion for enforcement rules (시행규칙 '범위 밖, 확인 경로 안내'), and notes the tool's pure-research limitation ('법적 판단이나 결론을 만들지 않는다'). However, it never explicitly contrasts with sibling tools like search_tax_interpretations or search_tax_decisions, which an agent might confuse it with.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedget_tax_document
    • First observedget_tax_guidance
    • First observedlookup_tax_document
    • First observedsearch_tax_decisions
    • First observedsearch_tax_forms
    • First observedsearch_tax_guidance
    • First observedsearch_tax_interpretations
    • First observedsearch_taxlaw
    • First observedtax_research

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: exact lookup, keyword search for interpretations, decisions, guidance, forms, a unified search, and a research aggregator. Even the two get_tool functions target different data types (documents vs guidance). No ambiguity between tools.

Naming Consistency4/5

Most tools follow a consistent 'verb_noun' pattern: lookup_tax_document, search_tax_interpretations, get_tax_guidance, etc. The exception is tax_research, which breaks the pattern as a compound noun rather than verb_noun, creating a minor deviation.

Tool Count5/5

9 tools is well-scoped for a tax law research server. Each tool covers a distinct aspect (search, retrieve, research synthesis) without redundancy or excessive granularity, and the count feels appropriate for the domain.

Completeness4/5

The tool set covers the core research lifecycle: search for interpretations, decisions, guidance, and forms; retrieve full documents; and synthesize multi-layer research. Minor gaps include no direct 'get_decision' tool, but get_tax_document covers that, and legal text is deliberately delegated to another MCP server, making it slightly incomplete within this server's scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server providing comprehensive Korean legal data access (laws, precedents, regulations, ordinances) with citation verification, temporal comparison, impact graphs, and legal research workflows.
    10
    1,624 npm
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    MCP server for Korean National Law Information. Enables searching and retrieving Korean laws, English-translated laws, administrative rules, court precedents, and constitutional decisions via 54 MCP tools.
    54
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to retrieve current Korean tax statutes, judicial precedents, and tax authority interpretations via MCP, with daily-updated legislative history and full-text search.
    MIT