taxlaw-nts-mcp
taxlaw-nts-mcp
국세법령정보시스템(https://taxlaw.nts.go.kr) 자료를 MCP 도구로 검색하는 STDIO 서버입니다.
법제처에서 바로 찾기 어려운 국세청 세법해석, 질의회신, 조세 불복 문서, 기본통칙, 별표/서식, 발간책자, 홈택스 상담사례를 보완 검색합니다.
전용 고수준 도구가 아직 없는 메뉴도 접근할 수 있도록, 확인된 사이트 메뉴/action 목록 조회와 action.do 원시 호출, 같은 사이트 HTML 텍스트 조회 도구를 함께 제공합니다.
무엇에 쓰나
세법 검토의 근거는 법 조문만이 아니라 국세청 해석례·질의회신·기본통칙, 조세심판례, 홈택스 상담사례인 경우가 많습니다. 이 자료들은 법제처 국가법령정보센터에서는 잘 나오지 않고 국세법령정보시스템에만 있습니다. 이 서버는 그 자료를 찾아 본문까지 가져오고, 세법 검토에서 자주 문제되는 부분을 함께 처리합니다.
국세청 전용 자료 조회 — 세법해석례·질의회신·기본통칙·조세심판례·홈택스 상담사례·발간책자를 번호나 키워드로 찾아 본문을 가져옵니다.
인용 번호 실존 확인 — 답변에 들어갈 해석례·심판례 번호가 실제 DB에 있는지 대조합니다(
verify_nts_citations). 없는 번호는 걸러 내거나 "공개DB 미발견"으로만 남겨, 존재하지 않는 예규를 근거로 다는 일을 막습니다.적용 시점 확인 — 귀속연도를 지정하면 그 해에 적용되던 조문으로 검토하고(
build_application_timetable), 개정으로 사문화됐거나 폐지·대체된 해석인지 판정합니다(assess_doctrine_validity). 신·구 조문은 나란히 대조할 수 있습니다(diff_article_versions).계산식 조문 원문 유지 — 조특법 고용증대·통합고용 세액공제처럼 표·산식이 든 조문은 일반 법령 API에서 산식이 빠지기도 하는데, 여기서는 산식까지 그대로 가져옵니다.
업종코드 감면 판정 — 창업중소기업·중소기업특별세액감면 검토에서 해당 업종코드가 감면 대상인지 표준산업분류와 대조해 해당/제외/범위밖/애매로 판정합니다(
classify_industry_for_article).정리된 형식으로 회신 — 결론 → 케이스별 표 → 근거 법령(출처별·원문링크) → 미검증 보충(⚠) 순으로 정리돼, 의견서·검토 메모에 옮기기 쉽습니다.
법 조문·판례 원문은 법제처 MCP(korean-law-mcp), 국세청 해석·통칙·심판례는 이 서버에서 확인하는 식으로 나눠 씁니다. API 키나 비용은 없으며, 최종 판단은 원문과 전문가 확인을 거쳐야 합니다.
Related MCP server: LexLink-ko-mcp
korean-law-mcp와 함께 쓰는 방식
세법 질의는 먼저 korean-law-mcp로 법령 조문, 시행령, 판례, 조세심판 등 법제처/법령 DB 자료를 확인하고, 법제처 검색에서 국세청 질의회신·기본통칙·홈택스 상담사례·발간책자를 찾지 못할 때 이 서버로 보완 조회하는 흐름을 권장합니다.
두 MCP가 같은 판례·결정례·해석례를 찾으면 문서번호/청구번호/사건번호에서 공백·하이픈을 제거한 값, 생산일자/의결일자, 제목을 기준으로 하나로 정리하세요. 같은 항목은 중복 나열하지 말고 양쪽 출처 ID를 함께 남기며, 국세법령정보시스템에만 있는 원문 스니펫·홈택스 상담·기본통칙·발간책자는 이 서버 결과로 보완합니다.
이 서버는 국세법령정보시스템 응답에 존재한 항목만 표시하며, 검색 실패나 외부 사이트 오류가 나면 [NOT_FOUND], [EXTERNAL_API_ERROR], [INVALID_PARAMETER] 같은 마커와 추측 금지 경고를 반환합니다.
모든 도구 결과는 기존 텍스트·isError와 함께 structuredContent.status를 제공합니다. 상태값은 OK, NOT_FOUND, INVALID_INPUT, UPSTREAM_ERROR, PARSE_ERROR, AUTH_ERROR, BUDGET_EXCEEDED이며, 기존 마커를 파싱하던 클라이언트도 그대로 사용할 수 있습니다. NOT_FOUND는 공개 DB에서 해당 조건의 항목을 찾지 못했다는 뜻이지 문서의 법적 부존재를 확정하는 뜻은 아닙니다.
응답 포맷 — 5단 구조 (0.6.0+)
MCP InitializeResult.instructions로 LLM에 자동 주입됩니다. 클라이언트(Claude Code 등)는 이를 system-reminder로 노출하여 LLM이 아래 5단 구조를 따르도록 강제합니다. 단순 1~2문장 단답형 질문은 생략 가능.
결론 (요지) — 사용자 이해와 어긋나면 맨 앞에서 명시. 핵심 판정·조치 1~2문장.
매트릭스 (케이스별 처리) — 분기 기준(소득구성·신고유형·거래유형 등)을 표로 정리. 각 행에 결론 + 근거 법령 함께 표기.
법령 래퍼 (Citation) — 출처별로 분리:
(1) 법률 —
korean-law-mcp.get_law_text결과(2) 시행령/시행규칙 — MST·시행일 명시
(3) 기본통칙 —
list/get_taxlaw_basic_ruling또는 본문 인용(4) 국세청 해석례 / 심판례 / 판례 — 문서번호·일자·핵심 인용문
AI 보충 해석 (⚠ 검증되지 않음) — LLM 자체 지식·실무 팁은 별도 단락에 ⚠ 경고와 함께 분리.
인용/피드백 prompt 2줄 — "인용 본문을 더 부착해드릴까요?" + "1~5점 + 한 줄 코멘트".
출처 격리 — (1)~(4)는 검증된 출처. 섹션 내용을 다른 섹션과 섞지 말 것. AI 보충과의 혼합 금지.
연도 검증 의무 — 해석례 인용 시 get_taxlaw_document_text(targetYear=YYYY)로 인용 법조문 시점 자동 검증. 구법조문 기반 예규는 ⚠ 사문화 가능성 경고 동봉.
사문화 자동 채점 (0.7.0+) — 예규/심판례/판례를 인용할 때 assess_doctrine_validity(id, targetYear)를 호출하면 8단계 분류(valid_current / target_or_later / before_target / partially_outdated / repealed_or_superseded / no_citations / no_target / uncertain)와 6단계 최종 판정(valid_current / needs_current_check / partially_outdated / likely_outdated / superseded_or_repealed / unverified)을 자동 채점하고, korean-law-mcp로 현행 조문 대조 + 후속 결정(대법원·헌재) 확인까지 이어지는 next-action 큐를 반환합니다.
제공 도구
tools/list에 바로 노출되는 도구와, 세션 고정 토큰 절감을 위해 call_taxlaw_extra(name, args) 게이트웨이로 호출하는 저빈도 도구로 나뉩니다. 저빈도 도구도 TAXLAW_EXPOSE_ALL=1 환경변수를 주면 모두 직접 노출됩니다.
검색·본문 조회
Tool | 용도 |
| 통합검색 — 별표서식·국세법령·세법해석/질의·판례결정례·발간책자·홈택스 상담사례 |
| 세법해석례/질의회신(01–04)과 과세전적부·이의·심사·심판·판례·헌재(05–10) 검색. 세목코드( |
| 문서 상세 본문. ** |
| DOC_ID를 거치지 않고 문서번호·회신번호로 직접 조회. 공백·하이픈 정규화 후 완전일치 |
| 체인 매크로 — 검색 → 관련 상위 K건 본문( |
| 해석례·심판례·판례 한 건의 현행 유효성 자동 채점(6단계 판정 + 권장 후속 호출 큐) |
| 산출물 속 해석례·심판례·판례 번호를 일괄 추출해 실존 여부 확인(인용 게이트). |
| 기본통칙 법령 목록 조회( |
| 기본통칙 본문 조회 |
| 별표·서식(전체·법령서식·훈령서식·자주찾는서식) 검색 |
조문 시점·적용시기 (법제처 DRF 보완)
국세법령정보시스템에 없는 부칙·시점본·조문 신구대조를 법제처 국가법령정보 Open API로 보완합니다. 귀속연도가 걸린 질문은 여기부터 시작합니다.
Tool | 용도 |
| 귀속연도 제시 질문의 1차 진입점 — 개정 인벤토리 + 부칙 적용례 태깅 + 귀속연도×조문 매트릭스를 1콜로 |
| 단일 조문의 연도별(귀속) 적용시점을 부칙 적용례 기준으로 추적 |
| 특정 시점(연도/시행일/MST)의 조문 본문 + 계산식 이미지 URL. 과거본엔 후행 개정 자동 대조 |
| 두 시점 시행본의 같은 조문을 단어단위로 대조(변경 hunk만) |
| 법령 부칙(시행일·적용례·경과조치) 조회 |
| 특정 개정령의 개정문(개정 지시문 원문) 회수 |
세액감면 업종 판정
Tool | 용도 |
| 업종코드 → 창업중소기업 세액감면(조특법 §6③)·중소기업특별세액감면(§7①) 적격 업종 여부 판정. 단서업종은 조특법·령·칙 본문 재확인 |
call_taxlaw_extra로 호출하는 저빈도 도구
call_taxlaw_extra({ name, args }) 형태로 호출합니다.
업종코드 ↔ KSIC 매핑 —
lookup_upjong_code·lookup_ksic_code·lookup_ksic_prefix·search_industry_by_keyword·resolve_industry_class·classify_industry_for_article·upjong_db_info발간책자·홈택스·사이트 메뉴 —
get_taxlaw_hometax_counsel_text·search_taxlaw_publications·list_taxlaw_publication_categories·list_taxlaw_site_menus·get_taxlaw_page_text·call_taxlaw_action하위호환 별칭 —
search_taxlaw_interpretations(=search_taxlaw_documents) ·get_taxlaw_interpretation_text(=get_taxlaw_document_text)
업종코드 ↔ KSIC 매핑 DB
국세청 「업종코드-표준산업분류 연계표」를 빌드 시 JSON으로 내장(약 1.5MB, 1,784 레코드, 귀속연도 2024). 분류수준(대/중/소/세/세세)을 자동 식별해 LLM이 "대분류만 보고 잘못 매칭"하는 실수를 차단합니다.
예 — 조특법 시행령 §27③ 16호 판정(749942 vs 852000):
call_taxlaw_extra({
name: "classify_industry_for_article",
args: {
industryName: "기타 전문, 과학 및 기술 서비스업",
upjongCode: "749942", // 국세청 중분류 74 "전문 서비스업"
excludeNames: ["수의업"]
}
})
// → verdict: out_of_scope (16호가 가리키는 KSIC 중분류 73과 불일치)전체 메뉴 접근
이 절의 list_taxlaw_site_menus·call_taxlaw_action·get_taxlaw_page_text는 저빈도 도구라 기본적으로 call_taxlaw_extra로 감싸 호출합니다(TAXLAW_EXPOSE_ALL=1이면 직접 호출 가능). 먼저 list_taxlaw_site_menus로 메뉴 키, URL, 확인된 actionId, 기본 paramData를 확인합니다. 전용 도구가 있는 메뉴는 해당 고수준 도구를 쓰고, 없는 메뉴는 call_taxlaw_action에 actionId, defaultParamData, refererPath를 넘겨 원시 응답을 조회합니다. 세목별요약정보·세법개정건의처럼 정적 HTML로 제공되는 자료는 get_taxlaw_page_text에 /html/U_0101.html, /cm/USECMJ001M.do 같은 경로를 넘겨 조회합니다. 세무일정은 list_taxlaw_site_menus(query="세무일정")에서 확인한 ASECMC001MR01 action에 year, month를 넘겨 조회할 수 있습니다.
빠른 시작
git clone https://github.com/kim-go-chon/taxlaw-nts-mcp.git
cd taxlaw-nts-mcp
npm install
npm run build # tsc + 내장 DB(JSON) 복사
npm test # 240개 단위 테스트 (선택)
npm start # MCP STDIO 서버 실행설치 후 추가 다운로드 없이 모든 도구가 즉시 동작합니다. 업종코드↔KSIC 매핑 DB(src/data/upjong-ksic.json, 약 1.5MB, 1,784 레코드, 귀속연도 2024)는 저장소에 포함되어 있습니다.
매핑 DB를 최신 데이터로 교체하려면 (선택)
국세청이 「업종코드-표준산업분류 연계표」를 갱신했을 때만 필요합니다. 본인이 받은 최신 CSV를 환경변수로 지정해 재빌드하면 됩니다.
# Linux/macOS
UPJONG_CSV=/path/to/업종코드-표준산업분류\ 연계표.csv npm run build:data
# Windows PowerShell
$env:UPJONG_CSV = "C:\path\to\업종코드-표준산업분류 연계표.csv"
npm run build:data
# 그 다음 (두 OS 공통)
npm run build설치 — MCP 클라이언트별 안내
Claude Desktop / Claude Code (STDIO 직접 지원)
claude_desktop_config.json(Claude Desktop) 또는 프로젝트별 .mcp.json(Claude Code)에 등록:
{
"mcpServers": {
"taxlaw-nts": {
"command": "node",
"args": ["/absolute/path/to/taxlaw-nts-mcp/build/index.js"]
}
}
}Claude.ai 웹 (브라우저)
현재 본 MCP는 claude.ai 웹에서 직접 사용할 수 없습니다. claude.ai의 Custom Connectors 기능은 공인 인터넷으로 노출된 원격 MCP 서버(HTTPS)만 지원하지만, 본 서버는 STDIO 전용입니다.
권장 대안 — Claude Desktop: 위 "Claude Code" 섹션의 claude_desktop_config.json 등록 방식이 그대로 적용됩니다. Claude Desktop은 macOS/Windows 앱에서 로컬 STDIO MCP를 직접 지원하므로 별도 배포 없이 즉시 동작합니다. claude.ai 웹과 동일한 모델·대화 히스토리를 사용하면서 본 MCP를 쓰려면 Claude Desktop이 가장 간단한 경로입니다.
Codex (OpenAI Codex CLI)
~/.codex/config.toml에 등록:
[mcp_servers.taxlaw-nts]
command = "node"
args = ["/absolute/path/to/taxlaw-nts-mcp/build/index.js"]
default_tools_approval_mode = "approve"Windows 사용자는 백슬래시 경로 + node.exe 절대경로 권장:
[mcp_servers.taxlaw-nts]
command = 'C:\Program Files\nodejs\node.exe'
args = ['C:\Users\사용자명\.codex\mcp\taxlaw-nts-mcp\build\index.js']
default_tools_approval_mode = "approve"업데이트 절차 (양쪽 공통)
cd /path/to/taxlaw-nts-mcp
git pull
npm install
npm run build # CSV가 등록되어 있으면 데이터도 함께 재빌드MCP 클라이언트(Claude Code, Codex)를 재시작하면 새 버전이 활성화됩니다.
npm 전역 설치 (선택)
npm 레지스트리에 배포된 경우 더 짧게 등록 가능합니다.
npm install -g taxlaw-nts-mcp{ "mcpServers": { "taxlaw-nts": { "command": "taxlaw-nts-mcp" } } }[mcp_servers.taxlaw-nts]
command = "taxlaw-nts-mcp"환경 변수
API 키는 필요하지 않습니다. 기본 User-Agent는 taxlaw-nts-mcp/<version> (+https://github.com/kim-go-chon/taxlaw-nts-mcp)로 클라이언트 식별이 가능하게 설정되어 있습니다. 국세법령정보시스템에서 봇으로 차단되는 경우에 한해 일반 브라우저 UA로 덮어쓰세요.
TAXLAW_USER_AGENT="Mozilla/5.0 ..."도구 콜 1건에 시간예산을 걸 수 있습니다(tail-latency 방어, 소진 시 부분 결과 + 재호출 안내).
TAXLAW_TOOL_BUDGET_MS=90000 # 도구 콜 시간예산(ms). 기본 90000, 0=무제한오류 응답 원칙
검색 또는 상세 조회 결과가 없으면 [NOT_FOUND]와 isError: true를 반환합니다. 외부 사이트 오류는 [EXTERNAL_API_ERROR], 잘못된 입력은 [INVALID_PARAMETER]로 반환합니다. 결과 본문에는 출처 URL과 실제 조회한 ID를 함께 표시합니다.
개발
npm run build
npm run watch
npm test
npm pack --dry-run데이터 출처 · 저작권 안내
국세법령정보시스템 응답: 본 MCP가 실시간 호출로 받아오는 모든 본문은 국세법령정보시스템(
https://taxlaw.nts.go.kr)의 공개 자료입니다. 저작권은 각 발행기관(국세청·법원·헌법재판소·기재부 등)에 있습니다.업종코드↔KSIC 매핑 DB: 본 저장소는 「업종코드-표준산업분류 연계표」(국세청 홈택스 공개 자료)를 JSON으로 변환한 결과(
src/data/upjong-ksic.json, 귀속연도 2024)를 포함합니다. 사용자가 추가로 다운로드할 필요 없이 즉시 사용 가능합니다. 최신 데이터로 교체하려면 본인이 받은 CSV를UPJONG_CSV환경변수로 지정해npm run build:data && npm run build를 다시 실행하세요.인용 시: "출처: 국세청 「업종코드-표준산업분류 연계표」" 형태로 출처를 함께 표기하세요.
이용약관·법적 고지
이 도구는 국세법령정보시스템(https://taxlaw.nts.go.kr)의 공개 자료를 개인 학습·연구·법률 업무 보조 목적으로 조회하기 위한 비공식 클라이언트입니다. 이 프로젝트는 국세청과 무관하며, 사용자가 직접 NTS의 이용약관과 법령을 준수할 책임이 있습니다.
준수 사항
NTS 사이트의 이용약관 및
robots.txt를 사용 전 확인하세요.본 MCP는 기본 User-Agent로 클라이언트 식별 문자열을 보냅니다. 식별 정보를 제거하거나 위장할 목적으로 변경하지 마세요.
NTS 서버에 부담을 주지 않도록 대량 일괄 수집(scraping), 짧은 간격의 반복 호출은 피하세요. 발간책자 enrichment는 동시 8건으로 제한되어 있습니다.
조회한 자료를 무단 재배포·상업적 가공하지 마세요. 법령·판례·해석례의 저작권은 각 기관에 있습니다.
한계
결과는 NTS 응답 시점의 데이터입니다. 법적 효력 있는 판단은 반드시 원문(법제처/국세청)과 변호사·세무사·관할 기관 확인이 필요합니다.
LLM이 결과를 추측·생성하지 않도록 가드 메시지를 함께 반환하지만, 최종 판단은 사용자에게 있습니다.
면책
본 도구의 사용으로 발생한 법률·세무 판단 오류, NTS 약관 위반, 차단 조치, 데이터 손실 등에 대해 저자/기여자는 책임지지 않습니다(MIT License 참조).
라이선스
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
Korean national tax and social insurance filings, invoices and payroll data as MCP tools.
Korean law: statutes, precedents, ordinances, treaties and citation verification (법제처 API).
1012,656Full-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
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving Korean statutes, precedents, and constitutional court decisions via MCP, using the National Law Information Center API.5,081 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.93MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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.1MIT