taxlaw-nts-mcp
This MCP server searches and retrieves Korean National Tax Service (NTS) tax law materials not well covered by law.go.kr, and supports citation verification, temporal applicability analysis, and structured responses.
Search the integrated NTS database across statutes, interpretations, precedents, forms, publications, and Hometax consultations.
Retrieve full text of tax interpretations/rulings, decisions, basic rulings, Hometax counsel, forms, and publications.
Verify existence of cited NTS document numbers (
verify_nts_citations) and check citation-claim fit.Assess validity/currency of interpretations/precedents (
assess_doctrine_validity) with 6-level verdicts and next actions.Build application timelines by year (
build_application_timetable), trace article application, get law article at a point in time, diff versions, and fetch addenda/revision text via law.go.kr API.Classify industry codes for tax credit eligibility (startup SME, SME special tax reduction) and map upjong ↔ KSIC.
Access site menus, raw
action.docalls, and static HTML pages for menus without high-level tools.Return structured status (
OK,NOT_FOUND, etc.) and enforce a 5-section response format for LLM outputs.
Allows OpenAI Codex CLI to access Korean tax law information from the National Tax Service's tax law information system (국세법령정보시스템), enabling search and retrieval of tax interpretations, rulings, precedents, publications, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@taxlaw-nts-mcpsearch for recent tax rulings on VAT"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
taxlaw-nts-mcp
An STDIO server that uses MCP tools to search data from the National Tax Law Information System (https://taxlaw.nts.go.kr).
It provides supplementary searches for National Tax Service (NTS) tax law interpretations, Q&A, tax appeal documents, basic rulings, tables/forms, publications, and Hometax consultation cases that are difficult to find directly through the Ministry of Government Legislation.
To allow access to menus that do not yet have dedicated high-level tools, it also provides tools for listing confirmed site menus/actions, raw action.do calls, and retrieving HTML text from the site.
How to use with korean-law-mcp
For tax law inquiries, we recommend a workflow where you first check the Ministry of Government Legislation/statute DB for laws, enforcement decrees, precedents, and tax tribunal decisions using korean-law-mcp, and then use this server for supplementary searches when you cannot find NTS interpretations, basic rulings, Hometax consultation cases, or publications in the Ministry of Government Legislation search.
When both MCPs find the same precedent, decision, or interpretation, consolidate them based on the document number/claim number/case number (with spaces and hyphens removed), production date/decision date, and title. Do not list identical items redundantly; include source IDs from both sides, and use the results from this server to supplement original text snippets, Hometax consultations, basic rulings, and publications that are only available in the National Tax Law Information System.
This server only displays items present in the National Tax Law Information System responses. If a search fails or an external site error occurs, it returns markers such as [NOT_FOUND], [EXTERNAL_API_ERROR], or [INVALID_PARAMETER] along with a warning against making guesses.
Related MCP server: Korean Law MCP Server
Provided Tools
Tool | Purpose |
| Integrated search for the National Tax Law Information System. Searches tables/forms, tax laws, tax interpretations/Q&A, precedents/decisions, publications, and Hometax consultation cases together |
| Searches tax interpretation/Q&A, pre-assessment review, objection, examination, adjudication, precedent, and Constitutional Court documents |
| Retrieves the detailed document body using |
| Retrieves the detailed body using |
| Retrieves major menus of the National Tax Law Information System and confirmed |
| Retrieves raw JSON from |
| Retrieves static HTML materials and general pages as text |
| Alias for legacy compatible tax interpretation search |
| Alias for legacy compatible tax interpretation detail |
| Retrieves the list of basic ruling laws |
| Retrieves the body of basic rulings |
| Searches all forms, tables, legal forms, directive forms, and frequently used forms |
| Searches NTS publications. Displays file IDs and download hints from the detailed API when available |
| Retrieves publication category codes |
Accessing the Full Menu
First, use list_taxlaw_site_menus to check menu keys, URLs, confirmed actionId, and default paramData. For menus with dedicated tools, use the corresponding high-level tool; for menus without one, pass actionId, defaultParamData, and refererPath to call_taxlaw_action to retrieve the raw response. For materials provided as static HTML, such as summary information by tax item or tax law revision proposals, pass paths like /html/U_0101.html or /cm/USECMJ001M.do to get_taxlaw_page_text. Tax schedules can be retrieved by passing year and month to the ASECMC001MR01 action identified in list_taxlaw_site_menus(query="세무일정").
Quick Start
npm install
npm run build
npm startTo run from a local source path in an MCP client:
{
"mcpServers": {
"taxlaw-nts": {
"command": "node",
"args": ["/absolute/path/to/taxlaw-nts-mcp/build/index.js"]
}
}
}After publishing to npm, you can register it more concisely after a global installation.
npm install -g taxlaw-nts-mcp{
"mcpServers": {
"taxlaw-nts": {
"command": "taxlaw-nts-mcp"
}
}
}Environment Variables
No API key is required. You can change the User-Agent used for National Tax Law Information System calls when necessary.
TAXLAW_USER_AGENT="Mozilla/5.0 ..."Error Response Policy
If there are no search or detail results, it returns [NOT_FOUND] and isError: true. External site errors are returned as [EXTERNAL_API_ERROR], and invalid inputs as [INVALID_PARAMETER]. The result body includes both the source URL and the actual ID retrieved.
Development
npm run build
npm run watch
npm pack --dry-runLicense
MIT
Available Tools
14 toolscall_taxlaw_actionB
국세법령정보시스템 action.do 원시 호출. list_taxlaw_site_menus의 actionId/defaultParamData 또는 브라우저에서 확인한 actionId를 사용할 수 있습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| actionId | Yes | action.do actionId. 예: ASIPDM001MR01 | |
| paramData | No | action.do paramData JSON 객체. 미입력 시 {} | |
| refererPath | Yes | 같은 사이트 내 referer 경로. 예: /pd/USEPDM001M.do | |
| full | No | true면 JSON 응답을 더 길게 반환 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only labels the call as 'raw' without explaining side effects, required permissions, rate limits, or error handling. This is insufficient for an agent to anticipate tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), with the main purpose stated upfront. It avoids fluff and each sentence contributes useful contextual information about parameter sourcing.
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 absence of an output schema and the tool's low-level nature, the description is incomplete. It fails to explain what the response contains, how to interpret results, or any constraints on usage. More context is needed for effective 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 description coverage is 100%, so the schema already documents all parameters. The description adds marginal value by hinting at the source of actionId, but does not deepen understanding of parameter semantics beyond what the schema provides.
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 it is a raw call to action.do of the tax law system, using a specific verb and resource. It implicitly distinguishes itself from sibling tools, which are more specific (get, search, list), by being a lower-level operation.
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 guidance on where to obtain valid actionId values (from list_taxlaw_site_menus or browser), implying when to use this tool (for arbitrary action.do calls). However, it does not explicitly state when to avoid it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taxlaw_basic_ruling_textA
국세법령정보시스템 기본통칙 본문 조회. list_taxlaw_basic_ruling_laws 결과의 lawId 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| lawId | Yes | 기본통칙 법령 ID(ntstBscId) | |
| year | No | 연도. 미입력 시 최신 연도 | |
| query | No | 통칙 제목/본문 내 필터 | |
| display | No | ||
| full | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies a read operation but does not disclose idempotency, error behavior, or rate limits, though it mentions the dependency on a sibling tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with two clauses: the resource and the usage direction. No unnecessary words, effectively front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema and no annotations, the description is moderately complete. It explains the key parameter but lacks details on return values, error cases, and the effect of the 'full' boolean.
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 descriptions cover 60% of parameters, but the description adds value by explaining that lawId originates from list results, which is not in the schema. Other parameter descriptions are present in the schema, so baseline is met and improved.
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 it retrieves basic ruling text from the National Tax Laws Information System and specifies the required lawId from a sibling tool, distinguishing it from other get_ and 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?
The description instructs to use the lawId from list_taxlaw_basic_ruling_laws results, providing clear when-to-use guidance. However, it does not state when not to use or list alternatives, missing explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taxlaw_document_textA
국세법령정보시스템 문서 상세 조회. search_taxlaw_documents/search_taxlaw_all 결과의 DOC_ID/id를 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 검색 결과의 DOC_ID 또는 DOCID. 예: 001_200000000000019482 또는 200000000000019482 | |
| docType | No | 알고 있는 경우 문서유형. 미입력 시 질의/판례 상세를 순차 시도 | |
| full | No | true면 HTML 원문 변환 텍스트를 더 길게 포함 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It does not disclose any behavioral traits like error handling, rate limits, or authentication needs that might be relevant for an AI agent.
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 brief and to the point, with a single sentence and a clarifying note. It is efficient but could be slightly more structured with explicit headings or bullet points.
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 has three parameters and no output schema or annotations, the description provides sufficient context about input (using search result IDs) and basic behavior. It does not explain return values but that is acceptable without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully described in the schema. The description adds no additional meaning beyond what the schema already provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed document text from the tax law information system using an ID from search results, distinguishing it from sibling tools that are specific to 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?
It explicitly instructs to use DOC_ID/id from search_taxlaw_documents or search_taxlaw_all, providing clear context for when to invoke this tool. However, it does not explicitly mention when not to use it or contrast with specialized get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taxlaw_hometax_counsel_textA
국세법령정보시스템 홈택스 상담사례 상세 조회. search_taxlaw_all의 hometaxCnslThan 결과 ID/REQ_STD_ID를 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 통합검색 홈택스 상담사례 결과의 ID 또는 REQ_STD_ID. 예: 369 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'detailed inquiry,' implying a read operation, but does not disclose any behavioral traits such as idempotency, error conditions, 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?
The description is a single sentence that efficiently communicates purpose and parameter origin. No unnecessary words, front-loaded with the action and object.
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 retrieval tool with one parameter and no output schema, the description adequately covers what and how. It mentions the ID source but does not specify the output format (presumably text), which could be inferred.
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?
Input schema has one parameter with a description including an example. The tool description adds context by specifying the ID originates from search_taxlaw_all results, enhancing understanding beyond the schema alone.
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 retrieves detailed text of a Home Tax counseling case from the National Tax Law Information System. It distinguishes from sibling tools by specifying the document type (hometax counsel) and mentions the ID source from search_taxlaw_all results.
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 a clear usage scenario: use the ID from search_taxlaw_all's hometaxCnslThan results. It does not explicitly state when not to use, but the context of sibling tools for different document types implies exclusivity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taxlaw_interpretation_textB
하위호환용: 세법해석례/질의회신 상세 조회. 내부적으로 get_taxlaw_document_text를 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| full | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions internal use of get_taxlaw_document_text, which implies a read operation, but does not disclose any other behavioral traits like safety, needed permissions, or idempotency. The description is too terse to be transparent.
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 very short (one sentence), which is concise but lacks essential details. It front-loads purpose and usage, but the brevity comes at the cost of missing parameter and behavior descriptions. It is not optimally structured for completeness given the tool's 0% schema coverage.
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 no output schema, 0% schema coverage, and two parameters, the description is insufficient. It provides purpose and usage guidelines but omits parameter semantics, return value description, and detailed behavior. The tool is not fully described for an agent to use correctly without further context.
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%, yet the description does not mention the parameters (id, full) at all. It fails to explain what values are expected for id or the effect of the full flag, leaving the agent with no guidance 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 retrieves detailed tax law interpretation cases/inquiry responses ('세법해석례/질의회신 상세 조회'), and explicitly marks itself as backward-compatible ('하위호환용'), distinguishing it from siblings like get_taxlaw_document_text.
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 this tool is for backward compatibility and internally uses get_taxlaw_document_text, indicating to agents that newer code should prefer the latter. This provides clear when-to-use guidance and exclusion of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taxlaw_page_textB
국세법령정보시스템 HTML/텍스트 페이지를 같은 사이트 경로로 조회해 텍스트로 변환합니다. 정적 자료(예: 세목별요약정보 /html/U_0101.html) 확인용입니다.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 같은 사이트 내 경로. 예: /bg/USEBGG001M.do, /html/U_0101.html | |
| full | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states conversion to text but does not disclose behavior on invalid paths, authentication needs, rate limits, or what the 'full' parameter does. Significant gaps for a mutation-like operation.
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, front-loaded with purpose. No wasted words, efficient structure.
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?
No output schema or annotations. Description is minimal but covers basic purpose. However, missing explanation of 'full' parameter and behavioral details makes it slightly incomplete for full comprehension.
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 low (50%) with 'full' parameter having no description. Tool description does not explain 'full' or add detail to 'path' beyond existing schema. Fails to compensate for missing schema information.
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?
Description clearly states the tool retrieves an HTML/text page from the National Tax Law Information System and converts it to text, specifying it is for static materials like tax item summary pages. It effectively distinguishes from sibling tools that target specific 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?
Implies usage for checking static materials but does not explicitly compare to sibling tools or provide when-not-to-use guidance. No mention of alternatives or context when to prefer this over specific document retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_taxlaw_basic_ruling_lawsA
국세법령정보시스템 기본통칙 법령 목록 조회. get_taxlaw_basic_ruling_text의 lawId 확보용.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 법령명 필터. 예: 법인세, 소득세 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates a read-like query but lacks details on idempotency, rate limits, or response behavior. Adequate for a simple list operation, but could be more informative.
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 with no redundancy. Front-loads purpose then usage. Every word 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 tool's low complexity (single optional parameter, no output schema), the description is mostly complete. Lacks explicit mention of return format, but sufficient for an agent to infer usage.
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%, and the parameter description in the schema already captures the filter purpose. The description adds no new semantic information beyond what the schema provides.
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?
Description clearly states the tool queries a list of basic ruling laws and specifies its role in obtaining lawId for get_taxlaw_basic_ruling_text. This differentiates it from sibling list 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?
Explicitly identifies the primary use case (securing lawId for another tool), providing clear context. Does not include negative usage guidance, but specificity is high.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_taxlaw_publication_categoriesC
국세법령정보시스템 발간책자 분야 코드 목록 조회.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., read-only, output format, pagination). Given the burden on the description, it adds minimal insight beyond the tool's basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence in Korean. It is front-loaded and gets the point across efficiently without unnecessary text.
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 no parameters and no output schema, the description lacks context about the output structure, the meaning of 'categories', or how the result integrates with other tools. Minimal completeness.
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 has 0 parameters with 100% coverage, so the description does not need to add parameter details. Baseline 3 applies as schema coverage is high and no compensation is needed.
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 it lists field codes for publications in the tax law system. It uses a specific verb ('list') and resource ('publication categories'), distinguishing it from sibling tools that search or retrieve other items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With many sibling tools, the lack of context on when to choose this for listing categories vs searching publications or listing laws leaves the agent without clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_taxlaw_allA
국세법령정보시스템 통합검색. 법제처 API에 없는 국세청 자료까지 보완 탐색: 별표서식, 국세법령, 세법해석/질의, 판례·결정례, 발간책자, 홈택스 상담사례. korean-law-mcp(법제처 DB)와 병용 권장 — 법조문 본문은 korean-law-mcp의 get_law_text가 정확하고, 본 도구의 statute 컬렉션은 메타·인용 위주.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 검색어. 예: 업무용승용차, 법인세 접대비 | |
| collections | No | 검색 컬렉션. all=전체, appendForm=별표서식, statute=국세법령, question=세법해석/질의, precedent=판례·결정례, formerLibrary=발간책자, hometaxCnslThan=홈택스 상담사례 | all |
| displayPerCollection | No | ||
| page | No | ||
| sort | No | score | |
| fromDate | No | 검색 시작일 YYYYMMDD | |
| toDate | No | 검색 종료일 YYYYMMDD | |
| taxLawCode | No | 세목 코드. 예: 303=법인세, 305=종합소득세 | |
| synonym | No | 동의어 검색 사용 여부 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It honestly states that the statute collection is metadata/citation-focused rather than full text, which is critical behavioral context. It could further mention rate limits or result structure, but the core behavioral trait is transparently communicated.
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, no wasted words. Front-loaded with purpose and immediately provides distinguishing guidance. 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 complexity (9 parameters, many collections, no output schema), the description adequately explains the scope and limitation of statute collection. It does not describe return format or pagination behavior, which would improve completeness, but it is sufficient for an agent to understand the tool's role among siblings.
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 67% with most parameters having descriptions. The description does add value by listing the collections in text, reinforcing the enum options, but does not provide additional semantics beyond schema for other parameters like sort or page. Baseline 3 is appropriate as schema does most of the work.
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 the tool as a comprehensive search of the Korean tax law information system, listing all covered collections. It explicitly distinguishes from sibling tools by noting that for statute text, korean-law-mcp's get_law_text is more accurate, highlighting this tool's complementary 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 recommends using this tool in conjunction with korean-law-mcp for precise statute text, providing clear guidance on when to use alternatives. However, it does not explicitly differentiate from the many sibling specialized search tools (e.g., search_taxlaw_interpretations), leaving the agent to infer the generalist vs. specialist distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_taxlaw_documentsA
국세법령정보시스템 문서 검색. 세법해석례/질의회신(01-04)과 과세전적부·이의·심사·심판·판례·헌재(05-10)를 검색. 최신 조세심판원 결정례는 NTS가 강세이므로 본 도구 우선; 그래도 없으면 korean-law-mcp의 search_decisions로 병행 확인 권장.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 검색어. 비우면 선택 문서유형의 최신순 목록 조회 | |
| docType | No | reply | |
| display | No | ||
| page | No | ||
| sort | No | date_desc | |
| fromDate | No | 검색 시작일 YYYYMMDD | |
| toDate | No | 검색 종료일 YYYYMMDD | |
| taxLawCode | No | 세목 코드. 예: 303=법인세, 305=종합소득세 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only describes what the tool searches and gives a usage hint, but does not disclose any behavioral traits such as read-only nature, rate limits, authentication needs, or side effects. The lack of annotation coverage combined with minimal behavioral description results in low transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences in Korean), front-loads the main purpose, and includes a helpful recommendation without unnecessary details. Every sentence adds value, making it easy to digest.
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 8 parameters and no output schema, the description covers the main searchable categories and provides a usage guideline. However, it does not describe the return format, pagination behavior, or what to do when no results are found. Given the lack of output schema and annotations, some contextual gaps remain.
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% (4 of 8 parameters have descriptions). The description adds meaning beyond the schema by explaining the docType enum values (01-04 and 05-10 categories) and their correspondence to document types. This helps an agent understand the parameter semantics, though some parameters (display, page, sort) lack additional explanation.
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?
Description clearly states it searches the National Tax Law Information System and enumerates specific document categories (interpretations, inquiries, disputes, etc.). It also distinguishes from sibling tools by recommending this tool for Tax Tribunal decisions and suggesting an alternative if not found. The verb 'search' combined with the resource and scope makes purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends prioritizing this tool for recent Tax Tribunal decisions and advises using 'korean-law-mcp's search_decisions' as a fallback. This provides clear context on when to use this tool versus an external alternative. However, it does not explicitly compare with sibling search tools on the same server, so some guidance is missing for complete differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_taxlaw_formsB
국세법령정보시스템 별표/서식 검색. 전체 서식, 별표, 법령서식, 훈령서식, 자주찾는서식을 탐색.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 별표/서식명 검색어 | |
| kind | No | all | |
| lawId | No | 특정 법령 ID(ntstBscId). 미입력 시 전체 | |
| display | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the search action and content type, but does not mention pagination, result format, permissions, or any side effects (though it is read-only by nature). The minimal description does not sufficiently inform the agent of the tool's behavior beyond its basic function.
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 very short (two sentences) and front-loads the purpose. It is concise but could include more useful information without being lengthy. The structure is acceptable for its brevity.
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 5 parameters and no output schema, the description is far from complete. It lacks details on how parameters work, what the return value contains, pagination, and how 'kind' filters results. Users (or agents) would need to guess or consult external sources.
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?
Input schema has 5 parameters with only 40% description coverage (query and lawId have descriptions, kind/display/page do not). The description adds no additional meaning to the parameters or their usage. It does not compensate for the missing schema descriptions.
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?
Description explicitly states it searches for '별표/서식' (appendix/forms) in the tax law information system, and lists the types of forms covered: all forms, appendix, legal forms, instruction forms, frequently searched forms. This clearly distinguishes it from sibling tools like search_taxlaw_documents or search_taxlaw_interpretations.
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?
Description implies the tool is for searching tax law forms but gives no explicit guidance on when to use it versus alternatives like search_taxlaw_all or search_taxlaw_documents. No when-to-use or when-not-to-use information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_taxlaw_interpretationsC
하위호환용: 세법해석례/질의회신 검색. 내부적으로 search_taxlaw_documents를 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| docType | No | reply | |
| display | No | ||
| page | No | ||
| sort | No | date_desc | |
| fromDate | No | ||
| toDate | No | ||
| taxLawCode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It reveals that the tool internally uses another search tool, but does not mention side effects, limitations, or differences in behavior. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two phrases, front-loaded with the core purpose and the internal mechanism. Every part is necessary and no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, no output schema, and no annotations, the description is severely lacking. It does not explain how to use the parameters, what the search returns, or how it differs from the internal tool. This is insufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for its 8 parameters, and the description does not explain any parameter meaning or usage beyond the schema. The description fails to compensate for the lack of parameter documentation.
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 it searches tax law interpretations and inquiry replies for backward compatibility, and notes it internally uses search_taxlaw_documents. This provides a specific verb and resource, and hints at differentiation from the sibling tool by mentioning internal delegation.
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 phrase 'backward compatibility' implies that this tool is for legacy use, but it does not explicitly state when to use it vs. the internal search_taxlaw_documents. The description provides context but lacks explicit usage guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_taxlaw_publicationsC
국세법령정보시스템 발간책자 검색. 세무안내, 신고안내 등 전자도서관 자료 탐색.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 제목 검색어 | |
| categoryCode | No | 분야 코드. list_taxlaw_publication_categories로 확인. 미입력/All=전체 | |
| display | No | ||
| page | No |
TDQS
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 'search' without revealing pagination limits, authentication needs, scope, or whether it returns metadata or full text. The brief description leaves agents blind to important constraints.
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 short sentences, no redundancy. However, the lack of structure (e.g., bullet points) and missing title are minor drawbacks. Still, it's efficient for its length.
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 4 parameters, 50% schema coverage, no annotations, and no output schema, the description is too minimal. It doesn't explain what results look like, how to use categories, or any typical usage pattern. A search tool needs more context to be safely invoked.
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% (only query and categoryCode have descriptions). The description adds no parameter meaning; it doesn't explain how query or categoryCode interact, nor does it hint at display or page behavior. With low coverage and no compensation from the description, this is insufficient.
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 it searches for publications (발간책자) in the national tax law system, distinguishing it from siblings like search_taxlaw_documents or search_taxlaw_interpretations. However, 'publications' could be more specific (e.g., booklets/guides), and the null title misses an easy clarity win.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other search tools. The description only states its function; it doesn't explain context, alternatives, or prerequisites. Siblings like search_taxlaw_all exist, but no comparison is provided.
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.
14 tool updates
v0.3.4- First observed
call_taxlaw_action - First observed
get_taxlaw_basic_ruling_text - First observed
get_taxlaw_document_text - First observed
get_taxlaw_hometax_counsel_text - First observed
get_taxlaw_interpretation_text - First observed
get_taxlaw_page_text - First observed
list_taxlaw_basic_ruling_laws - First observed
list_taxlaw_publication_categories - First observed
list_taxlaw_site_menus - First observed
search_taxlaw_all - First observed
search_taxlaw_documents - First observed
search_taxlaw_forms - First observed
search_taxlaw_interpretations - First observed
search_taxlaw_publications
TDQS
Scored across 14 tools
Many tools are clearly distinct, but there are redundant tools (get_taxlaw_interpretation_text and search_taxlaw_interpretations) that are just aliases for existing ones, causing potential confusion. Also, multiple search tools with different scopes may overlap in function.
All tool names follow a consistent verb_taxlaw_object pattern (e.g., call_taxlaw_action, list_taxlaw_basic_ruling_laws, search_taxlaw_documents), making naming predictable and easy to understand.
With 14 tools covering various aspects of tax law information access (search, retrieval, listing, raw calls), the count is well-scoped for the server's purpose, neither too few nor excessive.
The tool set covers search, retrieval, and navigation of the NTS tax law system, including documents, interpretations, rulings, forms, and publications. Minor gaps exist (e.g., reliance on korean-law-mcp for some law text), but the coverage is comprehensive for its intended use.
Maintenance
Related MCP Connectors
Full-text search over K-IFRS/K-GAAP standards and KASB accounting Q&A for Korean accountants
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
Korean tax-office and fair-trade registries, HS codes, landed cost. Two tools need no API key.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAccess Korea's national tax law information system to search rulings, precedents, statutes, and more using natural language queries via Claude.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving Korean statutes, precedents, and constitutional court decisions via MCP, using the National Law Information Center API.1,624 npm1MIT
- FlicenseAqualityCmaintenanceMCP 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-
- 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