Skip to main content
Glama

tax.kr_income

Read-onlyIdempotent

Calculates South Korean income tax from a post-deduction taxable income amount and tax year using progressive Article 55 rates, returning bracket tax, effective rate, and marginal rate.

Instructions

한국 종합소득세·근로소득세 산출세액을 소득세법 제55조 기본세율(6~45% 누진, 정책 YAML)로 계산한다. taxable_income 은 공제를 모두 뺀 과세표준(원, Decimal 문자열)이고 year 는 필수다. 구간별 세액과 실효·한계세율을 돌려주며 rounding(기본 HALF_UP)으로 decimals(기본 0)자리에 맞춘다. 근로소득공제와 세액공제는 반영하지 않으므로 총급여를 그대로 넣으면 안 된다.

Input Schema

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
roundingNoHALF_UP
taxable_incomeYes
include_proposedNo

Output Schema

NameRequiredDescriptionDefault
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantive behavior beyond them: the rate schedule source (policy YAML), the returned 구간별 세액 and effective/marginal rates, and the important limitation that 근로소득공제 and 세액공제 are not applied. That limitation disclosure is the kind of context an agent cannot get from annotations.

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

Conciseness4/5

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

Four sentences, no filler, with the calculation method and the critical input definition front-loaded before the rounding and limitation notes. It is dense and readable; only the closing caveat sentence borders on being buried at the end rather than surfaced earlier.

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

Completeness3/5

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

For a 6-parameter tax tool, the description covers the computational model, the units/type of the key input, and the rounding behavior, and an output schema exists so return values need not be spelled out. The gap is that as_of and include_proposed are entirely unaddressed, leaving two defaulted parameters an agent may set blindly.

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 description coverage is 0%, so the description carries the full burden. It well explains taxable_income (원, Decimal 문자열), year (필수), rounding (default HALF_UP) and decimals (default 0), but never mentions as_of or include_proposed, which are the two parameters an agent is most likely to misuse.

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 states a specific verb (계산한다) and resource (종합소득세·근로소득세 산출세액) and pins the methodology to 소득세법 제55조 기본세율, so the agent knows exactly what is computed. It does not, however, name the near-neighbor siblings (tax.kr_comprehensive_income_tax, tax.progressive, payroll.kr_year_end_tax_settlement), so the boundary has to be inferred.

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

Usage Guidelines3/5

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

It gives a concrete input constraint — taxable_income must be the 과세표준 with all deductions removed, and gross salary must not be passed as-is — which is real usage guidance. But it never says when to prefer this over tax.kr_comprehensive_income_tax or payroll.kr_salary, so alternative selection is left implicit.

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