Skip to main content
Glama
UpstageAI

korean-tax-calc-mcp

personal_deduction

Read-onlyIdempotent

Calculates basic and additional personal deductions for Korean comprehensive income tax filings, including per-dependent amounts and eligibility breakdowns from taxpayer and dependent data.

Instructions

종합소득 인적공제(기본공제·추가공제). 언제: 종합소득세 신고에서 기본공제·추가공제 금액을 구할 때. 입력: 귀속연도 → year, 납세자 정보 → taxpayer, 부양가족 목록 → persons. 결과: 기본공제·추가공제·인적공제·사람별 내역·근거. 기본공제 1인당 150만원, 추가공제(경로우대 100만·장애인 200만·부녀자 50만·한부모 100만).

Input Schema

NameRequiredDescriptionDefault
yearYes사업연도·귀속연도(2016~2026)
personsYes[{name, relation, birth_year, income_items?, income?, wage_only_gross?, disabled?, cohabiting?}] — name: 사람 표시 이름(문자열, 중복 불가). relation: 공제대상자와의 관계. 허용값: 배우자·직계존속·직계비속·입양자·형제자매·수급자·위탁아동. 문항 표현 그대로 '아들'·'딸'·'자녀'는 '직계비속', '부친'·'모친'·'부모'는 '직계존속'으로 적을 것. birth_year: 출생연도(정수, 나이 계산용). income_items: [{kind, amount}] — 부양가족 소득 종류·금액 목록. kind 허용값: 근로_총급여·사업소득금액·이자·배당·공적연금·사적연금·기타소득금액·양도소득금액·퇴직소득금액·전통주_제조소득_농어촌·비과세·공적연금_과세제외. income_items를 쓰면 income·wage_only_gross는 함께 입력할 수 없음. disabled: 장애인 여부(bool). cohabiting: 동거 여부(bool, 기본 True, 형제자매·수급자는 동거 필요). 소득 없음 → income_items: []. 근로소득만 있음 → income_items: [{"kind": "근로_총급여", "amount": 총급여}]. 예시: [{"name":"부친","relation":"부친","birth_year":1938,"income_items":[{"kind":"공적연금_과세제외","amount":30000000}]}]
taxpayerYes{sex, birth_year, has_spouse, comprehensive_income, disabled?, household_head?} — sex: '남'|'여'. birth_year: 출생연도(정수). has_spouse: 배우자 유무(bool). comprehensive_income: 종합소득금액(원, 기본공제 한도 판단용). disabled: 장애인 여부(bool, 기본 무시). household_head: 세대주 여부(bool, 부녀자 공제 판단용).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.12.2

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, and the description adds real substance beyond them: it declares the return fields (기본공제·추가공제·인적공제·사람별 내역·근거) and the underlying statutory rates (1인당 150만원, 경로우대 100만·장애인 200만·부녀자 50만·한부모 100만). It still omits eligibility thresholds and how conflicts are resolved, but nothing contradicts the annotations.

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

Conciseness5/5

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

Four terse lines with an explicit 언제/입력/결과 structure, front-loading the purpose before the input mapping and legal rates. Every sentence carries information; nothing is padding.

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

Completeness4/5

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

With three required parameters, nested objects, no output schema, and a read-only safety profile, the description covers purpose, input mapping, result shape and rates — exactly what an agent needs to call it. It stops short of the age/income eligibility rules that materially affect which persons qualify, which keeps it from a 5.

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

Parameters3/5

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

Schema coverage is 100% and the schema itself is very rich (relation enums, income_items kinds, mutual-exclusion rule, examples), so the description's '입력:' line only restates year→귀속연도, taxpayer→납세자, persons→부양가족 목록. It adds labeling convenience but no semantics the schema does not already carry, matching the baseline-3 case.

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

Purpose4/5

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

The description names the exact resource and its subcomponents (종합소득 인적공제: 기본공제·추가공제) and the '언제' clause supplies the verb by stating it computes the basic/additional deduction amounts in a comprehensive income tax return. This is enough to distinguish it from siblings like income_adjustment_total, special_tax_credit or income_tax, though it never explicitly contrasts itself with a neighboring tool.

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

Usage Guidelines4/5

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

The '언제: 종합소득세 신고에서 기본공제·추가공제 금액을 구할 때' line gives a clear, concrete trigger condition for use. There is no when-not guidance and no named alternative for cases where the agent instead needs a credit, an income adjustment, or total tax, so the routing duty is only half done.

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

Deploy Server

Other Tools