Skip to main content
Glama

fin_calc

Read-onlyIdempotent

Skip manual math on Korean statutory tax limits. Computes executive severance limits, entertainment expense caps, depreciation, deemed interest, and retirement income tax with cited provisions.

Instructions

[재무·세무·회계 전용 — 법정 한도·세액은 직접 계산하지 말고 이 도구를 사용] 세법에 명문화된 산식을 결정형 코드로 계산한다 (계산 과정·근거 조문 동봉). 지원: 임원퇴직금한도(법인세 손금 한도 — 일반 근로자 퇴직금은 미지원), 기업업무추진비한도, 감가상각비 상각범위액, 가지급금인정이자, 퇴직소득세.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNo[가지급금인정이자] 대여 일수(일)
yearsNo[임원퇴직금한도·필수] 근속 연수(년)
is_smeNo[기업업무추진비한도·필수, 기본값 없음] 중소기업 여부
methodNo[감가상각비·필수] 상각방법
monthsNo[임원퇴직금한도] 잔여 개월(기본 0)
revenueNo[기업업무추진비한도·필수] 일반 수입금액(원)
calc_typeYes계산 유형
principalNo[가지급금인정이자] 잔액(원) — days와 함께
rate_typeNo[가지급금인정이자·필수, 기본값 없음] 가중평균차입이자율=원칙(시행령 §89③ 본문) · 당좌대출이자율=예외(가중평균 적용 불가·대여기간 5년 초과·신고 시 선택, §89③ 단서 각 호) — 근거 없이 당좌대출 선택 금지
useful_lifeNo[감가상각비·필수] 내용연수(년)
balance_daysNo[가지급금인정이자] 적수(원×일) — principal·days 대신
is_leap_yearNo[가지급금인정이자] 윤년 여부(기본 false)
annual_salaryNo[임원퇴직금한도·필수] 직전 1년 총급여액(원)
paid_interestNo[가지급금인정이자] 수령 약정이자(원, 기본 0)
service_yearsNo[퇴직소득세·필수] 근속연수(년)
severance_payNo[퇴직소득세·필수] 퇴직소득금액(원, 비과세 제외)
business_monthsNo[기업업무추진비한도·감가상각비] 사업연도·상각 월수(기본 12)
remaining_valueNo[감가상각비·정률법 필수] 기초 미상각잔액(원)
acquisition_costNo[감가상각비·필수] 취득가액(원)
short_period_basisNo[감가상각비·business_months<12 필수] 기중취득=사업연도 중 취득(월할) · 사업연도변경의제=사업연도 변경으로 그 해만 짧음(월할) · 사업연도1년미만=정관상 사업연도 자체가 1년 미만(환산내용연수, 월할 아님)
related_party_revenueNo[기업업무추진비한도] 특수관계인 수입금액(원, 기본 0)
weighted_average_rateNo[가지급금인정이자·가중평균 선택 시 필수] 연 이자율(%)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds real behavioral context beyond that: deterministic computation, output bundled with the calculation process and legal citations, and a scope boundary (ordinary employee severance unsupported). It says nothing about error behavior for out-of-range or unsupported inputs.

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?

Three dense sentences, with the most actionable instruction (do not hand-calculate statutory limits) front-loaded in the bracket. It is appropriately sized for a 22-parameter tool; the supported-types list is a compact enumeration rather than filler.

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?

For a complex multi-mode calculator with no output schema, the description covers supported calc types, scope exclusions, and what the response contains (process plus cited articles), while the oneOf schema handles conditional parameter requirements. An agent can call it correctly without guessing at the tool's boundaries.

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 100% and the 22-parameter schema (including oneOf branches) already documents every field in detail. The description only clarifies the meaning/scope of each calc_type value, which the enum and per-parameter bracketed tags already convey, so it adds marginal value over structured data.

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?

States a specific verb and resource ('세법에 명문화된 산식을 결정형 코드로 계산한다') and enumerates all five supported calculation types, matching the calc_type enum exactly. It clearly reads as the calculator in a sibling set of search/verification tools, but it never names a sibling to differentiate against, so it lands at 4 rather than 5.

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?

Gives an explicit use directive in the bracket ('법정 한도·세액은 직접 계산하지 말고 이 도구를 사용') and one concrete exclusion ('일반 근로자 퇴직금은 미지원'). It does not point to any alternative sibling (e.g., fin_verify for checking a result or fin_article for the source text), so no alternatives are covered.

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