korean-tax-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LAW_OC | No | 법제처 OC (open.law.go.kr에서 무료 신청). Required for the `law_article` tool (시점별 조문·3단 위임). Optional. | |
| UPSTAGE_API_KEY | No | Upstage API key (console.upstage.ai에서 발급). Required for the `compare_with_case` tool (사실관계 대조). Optional. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_tax_rulingsA | Search Korean tax rulings and decisions by keyword. 국세청 해석(질의회신·과세기준자문·사전답변)과 판례(법원·조세심판·이의·심사)를 키워드로 찾는다. 언제: 쟁점은 있는데 조문을 모를 때 첫 단계로. 조문을 알면 rulings_by_article, 사례집 요약만 필요하면 casebook_search. 반환: {결과: [{구분, 문서번호, 제목, 요지(400자), 세목, 일자, id, 링크}], 주의}. 본문은 get_tax_ruling(id). 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| get_tax_rulingA | Get the full text of one ruling or decision. 해석·판례 1건의 본문 전문. 언제: 검색 결과 중 인용·요약할 문서를 정한 뒤. 요지만으로 판단하지 말고 본문을 읽을 때 사용. 반환: {문서번호, 제목, 요지, 등록일, 관련조문[], 본문(질의회신: 사실관계·질의·회신 / 판례: 주문·이유, 최대 2만 자), 링크}. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| rulings_by_articleA | List rulings and decisions that cite a specific statute article. 특정 조문을 관련 법령으로 인용한 해석·판례 모음. 언제: 조문을 알고 그 조문의 실무 해석을 모을 때(예: 법인세법 제52조 → 부당행위계산). 키워드만 있으면 search_tax_rulings. 반환: {법령, 조, 결과: [{구분, 문서번호, 제목, 요지, 세목, 일자, id, 링크}]}. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| basic_rulesA | Get NTS Basic Rules (국세 기본통칙) full text by article or keyword. 국세 기본통칙 전문(최신 고시본). 언제: 조문의 국세청 공식 해석 기준이 필요할 때. 실무 집행 기준 목록은 execution_standards, 개별 사안 해석은 rulings_by_article. 반환: {법령, 기준(고시 연도), 통칙: [{통칙(번호·제목), 본문}], 링크}. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| execution_standardsA | List Tax Execution Standards (세법집행기준) items with page numbers. 세법집행기준 항목(최신 발간본). 언제: 조문별 집행 기준이 있는지·몇 쪽인지 확인할 때. 본문은 책자(PDF)라 제공하지 않으므로 통칙 본문이 필요하면 basic_rules. 반환: {법령, 기준(발간 연도), 항목: [{항목(번호·제목), 쪽}], 링크, 주의}. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| casebook_searchA | Search the NTS 2025 Tax Interpretation Casebook (96 curated cases). 국세청 「2025 세법해석 사례집」 쟁점 검색. 언제: 국세청이 대표 사례로 고른 해석을 빠르게 볼 때(오프라인, 즉시). 최신·전체 해석은 search_tax_rulings. 반환: {결과: [{문서번호, 회신일, 분야, 쟁점, 답변요지, 쪽, 점수, 인용}]}. 읽기 전용, 외부 호출 없음. |
| law_articleA | Get statute text as in force on a date, with optional Act → Decree → Rule chain. 조문 원문(기준일 시행본)과 3단 위임. 사실관계에 사업연도·귀속연도·과세기간이 있으면 as_of에 그 기간 말일을 넣는다(생략하면 오늘 시행본). 언제: 세액·요건 판단처럼 사실 발생 시점의 법령이 필요할 때. 해석·판례는 회신 당시 법 기준이므로 이 도구로 적용 연도 조문과 대조. 조문 번호를 모르면 find_article로 먼저 찾는다. 긴 조문(4,000자 초과)은 keyword(키워드가 든 항만) 또는 paragraph(특정 항)로 필요한 항만 조회 — 둘 다 없으면 항 목록과 안내 반환. 결과의 '연결'에 상위·하위 조문 위치가 있으니 그 조를 law_article로 이어서 조회. 반환: {법령, 조, 적용 시행일, 적용 기준일, 본문, 링크, 반환 범위, 연결, 읽기 주의(돌려준 본문의 단서·우선·제외 구절 원문, 최대 3개), 기준일 안내?, 최근 개정?, 다시 조회?} 또는 {위임체계: [{단계, 법령, 조, 적용 시행일, 본문}]} (+ 기본통칙·집행기준). 읽기 전용. 법제처 공식 API — 환경변수 LAW_OC(무료) 필요, 없으면 발급 안내 오류. |
| find_articleA | Find statute articles by keyword — first step when you don't know the article number. 키워드로 조문 위치를 찾는다. 언제: 쟁점 키워드는 있는데 조문 번호를 모를 때 first step. 예: '압류금지 생계비계좌' → 국세징수법 제41조. 반환: [{법령, 조, 제목, 적용 시행일, 일치 문장: 키워드가 든 문장 1~2개(각 200자 이내)}], 다음 단계: law_article(law_name, 조, keyword=...)로 해당 항만 조회. 결과 길이 4,000자 이내. 읽기 전용. 법제처 공식 API — LAW_OC 필요, 없으면 오류. |
| compare_outcomesA | Win/loss side by side for one issue: taxpayer-won vs lost decisions with both sides' arguments and the deciding reasoning. 같은 쟁점의 조세심판·심사·이의·법원 판결을 납세자 승(인용·취소)/일부 인용/패(기각)로 나누고, 건마다 납세자 주장·과세관청 의견·결정 이유(판단 끝부분)를 나란히. 언제: 불복·조사 대응에서 '이긴 쪽은 무엇을 입증했고 진 쪽은 무엇이 부족했나'를 볼 때. 이긴 사례만 걸러 보지 않는다(양쪽을 같이). 결과 판정은 본문 주문(主文)·결론 문장을 규칙으로 읽음(모델 추정 아님). 주장·이유는 본문에서 잘라 온 발췌. 반환: {쟁점, 집계, 납세자 승(인용·취소), 일부 인용, 납세자 패(기각), 각하·기타, 갈린 지점?(explain), mode?, 주의}. explain=True: Solar 설정이 없으면 mode="host_ai" — 갈린 지점에 사용자 AI용 판단 안내(발췌는 위 목록). 설정 시 Solar 요약(mode=solar_cloud/solar_onprem). 읽기 전용. 국세법령정보시스템 조회, 약 5~10초. |
| compare_with_caseA | Check your facts and argument against rulings: supports / contradicts / distinguish. 사실관계·논리를 해석·판례와 대조해 항목마다 지지·반대·구별 필요를 판정. 언제: 주장의 근거와 반대 사례를 한 번에 점검할 때(의견서·불복 검토). 단순 검색은 search_tax_rulings. 기본(mode="host_ai"): Solar 설정이 없으면 후보 문서의 원문 발췌(제목·요지, 문서번호, 링크)와 판단 안내를 반환 — 판정은 사용자 AI가 수행, Upstage로 전송 없음. 반환(host_ai): {mode, 사실관계, 우리 논리, 후보: [{문서번호, 구분, 일자, 제목, 요지, 링크}], 판단 안내, 주의}. 선택(Solar): UPSTAGE_API_KEY(클라우드, 입력이 api.upstage.ai로 전송) 또는 KOREAN_TAX_MCP_SOLAR_BASE_URL(망분리 온프렘 Solar) 설정 시 반환: {mode, 해석: [{문서번호, 구분, 관계, 이유, 사실관계 차이, 링크}], 요약, 주의}. 문서번호는 검색 결과에 있는 것만. 약 10초. 읽기 전용. |
| research_issueA | Bundle everything that applied to an issue at a past date. 그 해 기준 묶음 조회 — 사실 발생 시점의 조문(3단)·기본통칙·집행기준·그 조문을 인용한 해석·판례를 한 번에. 언제: 세무조사·불복처럼 특정 사업연도에 적용되는 근거를 정리할 때. 시점 판단을 코드로 고정한다 — 기준일(법인·소득·부가는 사업연도·과세기간 종료일, 양도는 양도일, 상속은 상속개시일, 증여는 증여일, 원천은 지급일), 기준일 조문과 현행 조문의 변경 여부, 해석·판례마다 등록일 당시 조문이 기준일 조문과 같은지. 반환: {기준일, 기준일 근거, 그 해 조문(3단), 현행과 비교, 기본통칙[], 집행기준[], 해석·판례[{…, 기준일 조문과}], 시기 규칙[]?, 주의}. 읽기 전용. 조문 부분은 LAW_OC 필요(없으면 해석·통칙만 반환). 10~30초. |
| verify_citationsA | Check that cited rulings, decisions and statute articles actually exist. 인용 검증 — 초안의 문서번호·조문이 실제로 있는지 확인. 언제: AI나 사람이 쓴 초안을 내보내기 전. 지어낸 문서번호·없는 조문을 걸러낸다. 반환: {문서번호: [{인용, 결과(확인/국세청 DB 미확인/조회 실패), 문서번호, 제목, 일자, 링크, 비슷한 번호}], 조문: [{인용, 결과, 적용 시행일}], 요약, 주의}. '확인'은 존재만 뜻함 — 내용 일치는 get_tax_ruling·law_article 본문으로 확인. 읽기 전용. 조문 확인은 LAW_OC 필요. |
| tax_treatyA | Read Korea's bilateral tax treaties (96 countries) article by article, Korean or English. 한국의 조세조약 조문(국문·영문). 언제: 비거주자 원천징수 제한세율, 고정사업장, 거주자 판정 등 국제거래 쟁점. 국내법 조문은 law_article, 국제조세 해석은 search_tax_rulings(tax='국조'). 반환: {국가, 발효일, 조문: [{조, 제목, 영문 제목, 본문}], 링크} — 조문 번호는 조약마다 다르니 keyword로 찾는 게 정확. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| search_nts_publicationsA | Full-text search inside NTS official guidebooks and reports (transfer pricing, APA reports, overseas business guides, filing guides). 국세청 발간책자 본문 검색. 언제: 국세청이 공식 책자로 낸 실무 안내(이전가격·APA 연차보고서·해외진출기업 세무 가이드·신고 안내 등)의 설명이 필요할 때. 반환: {결과: [{책자, 발간일, 분야, 담당, 발췌, 링크}]}. 책자 원문은 국세법령정보시스템 전자도서관에서. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| search_local_documentsA | Search PDFs you downloaded yourself, page by page — e.g. the OECD Transfer Pricing Guidelines. 내 PC의 PDF(예: OECD 이전가격 지침) 쪽 단위 검색. 언제: 저작권상 재배포할 수 없는 자료(OECD 지침 등)를 각자 받아 근거로 쓸 때. 문서는 이 패키지에 들어 있지 않음. 설정: 환경변수 KOREAN_TAX_MCP_DOCS에 PDF 폴더 경로, PDF 읽기용 pypdf 필요(uvx --with pypdf korean-tax-mcp). 반환: {결과: [{파일, 쪽, 점수, 발췌}], 색인}. 읽기 전용, 외부 호출 없음. 첫 호출 때 색인(파일이 크면 수십 초). |
| timing_rulesA | Timing rules table — tax liability establishment, profit/loss attribution business year, income receipt timing, VAT supply timing, with statutory basis. 시기 규칙표 — 납세의무 성립·손익 귀속사업연도·소득별 수입시기·부가 공급시기를 조문 근거와 함께. 언제: 사실관계의 날짜가 어느 사업연도·과세기간·공급시기에 속하는지 정할 때(예: 12월 인도·1월 대금, 선발급 세금계산서, 인정상여 귀속). 반환: {규칙: [{세목, 구분, 항목, 시기, 예외?(있으면), 근거}], 확인 시행본, 주의}. tax를 주면 세목 키 포함, tax 없이 부르면 공통 규칙과 세목별 건수. 읽기 전용. data/timing_rules.json 기반, 외부 호출 없음. |
| treaty_withholding_ratesA | Treaty withholding tax caps on dividends, interest and royalties for a country, with the clause text. 조세조약 원천징수 제한세율(배당·이자·사용료). 언제: "미국 법인에 배당하면 몇 %?" 같은 질문. 세율과 지분 요건을 조약 원문에서 뽑고 근거 조항((a)·(b)…)을 함께 준다. 조문 전체는 tax_treaty. 반환: {국가, 발효일, 제한세율: [{소득, 조문, 세율: [{세율(%), 근거}], 요건·기타: [{지분요건(%), 근거}], 개정 문서 언급, 주의}], 주의, 링크}. 자동 추출이라 개정 의정서·교환각서가 조문을 바꿨으면 '개정 문서 언급'에 표시 — 적용 전 확인. 지방소득세 등 국내법은 별도. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| search_formsA | Search statutory annexes (rate and useful-life tables) and official tax forms. 세법 별표·서식 검색. 언제: 세율표·기준내용연수표·상각률표 같은 별표나, 신고서·명세서·통지서 서식을 찾을 때. 조문 본문은 law_article. 반환: {결과: [{구분(별표/서식), 이름, 법령, 세법, 시행일, 내용(서식 안 글 600자), 링크}]}. 같은 서식은 최신 시행본만. 읽기 전용. 국세법령정보시스템 공개 조회(키 불필요), 같은 요청은 1일 캐시. |
| article_historyA | When did this article change, and will an upcoming amendment change it? 조문 개정 이력과 시행 예정 개정. 언제: "이 조문 언제 바뀌었나", "곧 바뀌나" — 사업연도별 적용 조문이 다른지 판단할 때. 특정 날짜 원문은 law_article(as_of). 반환: {법령, 조, 연혁: [{시행일, 공포일, 제개정, 상태(연혁/현행/시행예정), 이 조 변경(바뀜/그대로)}], 요약, 주의}. 읽기 전용. 법제처 공식 API — LAW_OC 필요. |
| verify_statementA | 진술·주장을 조문 원문과 글자 수준에서 대조해 모순 신호(숫자·양태·반대말·시점)와 단서 누락을 돌려준다. 언제: 보기 문장·주장·고객 진술이 특정 조문과 맞는지 확인할 때. 조문을 읽고도 놓치는 차이를 표로 보여 준다 — 법적 판단을 대신하지 않는다. 반환: {법령, 조, 시행본, 판정('모순'|'구절 다름'|'차이 없음'|'판단 필요'), 근거:{위치, 원문}, 대조:[{종류,진술,조문}], 단서:[...], 겹침, 주의}.
|
| judge_optionsA | 보기·주장 여러 개를 조문 1~5개와 한 번에 글자 대조해 보기마다 가장 맞는 조와 판정을 표로 돌려준다. 언제: 여러 보기(객관식 보기·고객 진술·주장 문장)를 특정 조문(1 |
| residency_checkA | 비거주자·거주자 3단계 판정 (규칙 기반, 외부 호출 없이 동작). 언제: 판정 입력 데이터로 거주자·비거주자·이중거주자·조세조약 tie-break 결과를 즉시 확인할 때. 판단은 코드 규칙 기반 — Solar 키 없어도 동작. AI 판단 기본은 사용자 AI(호스트)가 수행 — 판정 코드는 고정. 반환: {입력, 법리, 1단계(소득세법), 2단계(이중거주자), 3단계(조세조약 tie-break), 최종 판정, 유사 판례 top3, 판단이 갈리는 지점·추가 확인 사항, 주의}. 읽기 전용, 외부 호출 없음(tax_treaty는 선택 호출, 실패 시 mock 안내 첨부). 판단 순서: (1) 소득세법 §1의2·시행령 §2(①③④)·§3·§4 → 주소/거소/파견 특례 → 거주자·비거주자·판단 보류 (2) 이중거주자 여부 (증명책임: 납세의무자, 대법원 2006두3964) (3) 조세조약 tie-break (항구적 주거 → 중대한 이해관계 중심지 → 일상적 거소 → 국적 → 상호합의)
|
| residency_reportA | residency_check 결과 + rules.md를 Solar Pro 4에 넣어 판정 검토 보고서(마크다운) 작성. 언제: residency_check 결과를 더 상세한 서술형 판정 검토 보고서(report_template.md 형식)로 만들 때. Solar 선택 구조(기존 korean-tax-mcp와 동일): UPSTAGE_API_KEY(클라우드) 또는 KOREAN_TAX_MCP_SOLAR_BASE_URL(온프렘) 설정 시 Solar가 보고서 작성, 키 없으면 친절한 안내 + residency_check 결과만 반환. 결론: 보고서 결론은 residency_check 결과를 바꾸지 못함(Solar는 서술만, 판정은 코드). 읽기 전용, 외부 호출: tax_treaty·rules.md 읽기·Solar 호출(키 있을 때만). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Most tools target a clearly distinct source or action (statute text vs. article history vs. rulings search vs. treaty vs. forms), and each description includes an explicit "when to use" section that cross-references the alternative tool. A few pairs remain genuinely easy to confuse—compare_outcomes vs. compare_with_case, verify_statement vs. judge_options (single vs. batch), and search_tax_rulings vs. casebook_search vs. rulings_by_article—though the descriptions do draw the distinctions for a careful agent.
All names are uniformly snake_case with no case-style mixing, and the majority follow a verb_noun or noun_action pattern (search_tax_rulings, get_tax_ruling, find_article, verify_citations, compare_outcomes, judge_options). The deviation is a handful of bare noun names (law_article, basic_rules, timing_rules, tax_treaty, execution_standards) and inverted forms (casebook_search), which is readable but not a single predictable convention.
23 tools is at the heavy end, but each maps to a genuinely separate data source (statutes, decrees, rulings, casebook, execution standards, treaties, forms, publications, local PDFs) rather than redundant wrappers. The server's scope—Korean tax law research end to end—justifies the breadth, though an agent has a lot to sort through on first use.
The lifecycle is unusually well covered: locate article by keyword (find_article), read in-force text at a date with delegation chain (law_article), check amendment history (article_history), pull official interpretations (basic_rules, execution_standards, rulings_by_article, search_tax_rulings, get_tax_ruling), and validate outputs (verify_statement, judge_options, verify_citations). Specialized workflows (residency_check/residency_report, treaty_withholding_rates, timing_rules, compare_outcomes) close the usual dead ends for a read-only legal-research domain.