Skip to main content
Glama

SooTool

Precision Calc MCP for LLM tool use.

CI PyPI version Python 3.12+ License: MIT

LLM 대신 계산을 맡는 MCP 서버. 세금, 급여, 금융, 통계, 공학 계산을 Decimal로 정확하게 수행하고 계산 근거를 함께 돌려준다. 18개 계산 도메인 276개 기본 도구 + 10개 admin 정책 도구, 한 번에 최대 500건 병렬 계산(core.batch), 단계 연결 계산(core.pipeline), 4종 전송(stdio/Streamable HTTP/Unix, 폐기 예정 SSE)을 제공한다. Python 3.12 이상.

왜 필요한가

LLM은 숫자를 계산하지 않고 그럴듯한 숫자를 생성한다. 그래서 누진세 구간 경계, 반올림 방향, 연도별 세율에서 자주 틀린다. 아래는 같은 20문제를 풀린 결과다(2026-04-24 측정).

풀이 주체

정답(exact)

근사(오차 0.01% 이내)

오답

SooTool

20

0

0

gemini-3-pro-preview

12

4

4

claude-opus-4-7

9

3

8

gpt-5.4

5

3

12

틀리는 지점은 모델이 달라도 비슷하다. 소득세 구간 경계, 양도소득세 장기보유특별공제, 부가세 반올림, 교류 임피던스 정밀도다. 문제 구성과 원자료는 bench/에 있다.

SooTool은 이 계산을 세 가지 장치로 고정한다.

  • Decimal 전용 계산. 입력 숫자는 문자열이나 Decimal로 받는다. 부동소수점 오차가 계산에 끼지 않는다.

  • 법령 값의 외부화. 세율, 공제액, 보험료율은 정책 파일(YAML)에 근거 조문과 시행일을 붙여 둔다. 시점(as_of)을 주면 그날 시행 중이던 값으로 계산한다.

  • 계산 근거 반환. 모든 응답에 공식, 입력, 중간값, 결과가 담긴 trace와 재실행 검증용 영수증(_meta.integrity)이 붙는다.

Related MCP server: leftbrain

구조

 LLM 에이전트 / CLI / 파이썬 코드
        │
        │  MCP(stdio, HTTP, Unix)        sootool call ...        from sootool.sdk import tax
        ▼                                      ▼                          ▼
 ┌──────────────────────────────────────────────────────────────────────────────┐
 │ 경계 검사   인자 이름·타입·크기 검증, 숫자 문자열 → Decimal, 인증 범위 확인     │
 ├──────────────────────────────────────────────────────────────────────────────┤
 │ 레지스트리   도구 286개를 이름으로 찾아 실행 (core.batch / core.pipeline 포함)   │
 ├───────────────────────────────┬──────────────────────────────────────────────┤
 │ 도메인 도구                     │ 정책 로더                                      │
 │ tax · payroll · finance ·      │ policies/<도메인>/<이름>_<연도>.yaml           │
 │ realestate · stats · ...       │ 해시 검증 → as_of 시점의 시행 버전 선택         │
 └───────────────────────────────┴──────────────────────────────────────────────┘
        │
        ▼
 { 결과 필드, trace(공식·입력·단계·출력), 정책 출처와 근거 조문, _meta.integrity(영수증) }

세 진입점(MCP, CLI, SDK)은 같은 레지스트리를 거친다. 같은 입력이면 어느 경로로 불러도 결과와 영수증이 같다.

빠른 시작

설치

pip install sootool                 # 기호 계산(symbolic.*)까지 쓰려면 pip install "sootool[symbolic]"

Claude Code에 등록

claude mcp add --scope user sootool -- uvx sootool

저장소를 받아 개발 중인 코드로 띄우려면 다음처럼 등록한다.

git clone https://github.com/JinHo-von-Choi/SooTool.git
cd SooTool && uv sync
claude mcp add --scope user sootool -- uv run --directory "$PWD" python -m sootool

첫 계산

MCP 클라이언트에서 "과세표준 5천만 원의 2026년 소득세는?"이라고 물으면 에이전트가 tax.kr_income을 호출한다. 터미널에서 같은 도구를 직접 실행할 수도 있다.

sootool call tax.kr_income --arg taxable_income=50000000 --arg year=2026 --format raw
{
  "tax": "6240000",
  "effective_rate": "0.12480000",
  "marginal_rate": "0.15",
  "breakdown": [ ... 구간별 과세표준과 세액 ... ],
  "policy_effective_date": "2026-01-01",
  "policy_citations": [{"law": "소득세법", "article": "제55조제1항", "url": "https://www.law.go.kr/법령/소득세법/제55조"}]
}

응답 읽는 법

finance.npv(rate="0.08", cashflows=["-1000","300","400","500","200"], rounding="HALF_EVEN", decimals=2)의 실제 응답이다.

{
  "npv": "164.64",
  "trace": {
    "tool": "finance.npv",
    "formula": "NPV = sum(CF_t / (1+r)^t, t=0..n)",
    "inputs": {"rate": "0.08", "cashflows": ["-1000", "300", "400", "500", "200"], "rounding": "HALF_EVEN", "decimals": 2},
    "steps": [{"label": "npv_raw", "value": "164.63539696786661172171511042618089308126395968697"}],
    "output": "164.64"
  },
  "_meta": {
    "integrity": {
      "tool": "finance.npv",
      "input_hash": "00da5199...",
      "result_hash": "d7a0ecfe...",
      "tool_version": "1.0.0",
      "sootool_version": "0.3.0"
    },
    "engine": "decimal"
  }
}

필드

뜻

npv 등 결과 필드

계산 결과. 숫자는 모두 문자열이다.

trace.steps

반올림 전 값을 포함한 중간 계산. 결과를 사람이 검산할 때 본다.

policy_*

정책 도구만 붙는다. 적용한 정책 파일의 시행일, 상태, 근거 조문, 해시.

_meta.integrity

영수증. 입력과 결과의 해시라서 sootool receipt verify로 같은 계산을 다시 돌려 대조할 수 있다.

_meta.engine

계산 엔진. decimal(정확), mpmath(지정 자릿수), float64(근사), composite, none.

_meta.hints

다음에 부를 만한 도구 제안. 결과 값에는 영향이 없다.

주요 기능

반올림은 호출자가 고른다

반올림 관행이 상황마다 갈리는 금융·회계 도구(부가세, 현금흐름, 감가상각, 환전 등)는 rounding(HALF_EVEN, HALF_UP, DOWN, UP, FLOOR, CEIL)과 decimals를 받는다. 부가세 역산은 원 단위 절사(DOWN), 회계 일반은 HALF_EVEN처럼 쓰임새마다 규칙이 다르기 때문이다. 법령이 끝수 처리를 정한 세목(예: 지방세 10원 미만 절사)은 그 규칙을 그대로 따르고 도구 설명에 적어 둔다.

시점을 지정한 정책 계산

세법과 보험료율은 연중에도 바뀐다. 정책 도구는 year 외에 as_of(YYYY-MM-DD)와 include_proposed를 받는다.

policies/payroll/kr_4insurance_2026.yaml             2026-01-01 ~ 2026-06-30
policies/payroll/kr_4insurance_2026@2026-07-01.yaml  2026-07-01 ~ 2026-10-31  ◀── as_of="2026-08-15"
policies/payroll/kr_4insurance_2026@2026-11-01.yaml  2026-11-01 ~ 2026-12-31

as_of가 속한 버전으로 계산하고, 응답에 그 버전의 시행일과 근거 조문을 싣는다.

as_of를 주지 않으면 그 해 확정 버전 중 시행일이 가장 늦은 것을 쓴다. 국회 확정 전 개정안(status: proposed)은 include_proposed=true일 때만 쓴다. 정책 파일을 서버 재배포 없이 고치는 절차는 docs/policy_management.md에 있다.

여러 건을 한 번에: batch와 pipeline

core.batch     독립 계산 N건을 병렬로             core.pipeline   앞 단계 결과를 다음 단계 입력으로
                                                 
 ┌ s1: finance.npv(rate=0.05) ┐                  annual = core.mul(3000000, 12)
 ├ s2: finance.npv(rate=0.08) ┼─▶ id 순서로 결과       │  ${annual.result.result}
 └ s3: finance.npv(rate=0.10) ┘                       ▼
                                                  tax = tax.kr_income(annual, 2026)
 최대 500건, 항목당 10초, 전체 60초              최대 50단계, 깊이 10, 단계당 2초, 전체 30초

core.batch는 항목마다 성공, 오류, 시간 초과를 따로 기록하고 결과를 입력 순서대로 돌려준다. core.pipeline은 앞 단계가 실패하면 뒤 단계를 skipped로 표시하며, 실패한 지점부터 다시 돌리는 core.pipeline_resume(10분 보관)이 있다.

{
  "name": "core.pipeline",
  "arguments": {
    "steps": [
      {"id": "annual", "tool": "core.mul",      "args": {"operands": ["3000000", "12"]}},
      {"id": "tax",    "tool": "tax.kr_income", "args": {"taxable_income": "${annual.result.result}", "year": 2026}}
    ]
  }
}

실무에서는 다음처럼 쓴다.

작업

규모

조합

급여 마감

직원 500명

core.batch + payroll.kr_salary

투자 민감도

할인율 9개 × 현금흐름 5안

core.batch + finance.npv, finance.irr

거래명세서 부가세 분리

수백 건

core.batch + accounting.vat_extract

월급에서 실수령액까지

4단계

core.pipeline

역산, 비교, 설명

  • core.solve_for: 목표 결과를 만드는 입력값을 찾는다. 예) 실수령액 300만 원이 되는 세전 월급.

  • core.compare: 기준안 대비 시나리오별 값과 차이를 표로 낸다.

  • core.explain: 계산 과정과 적용 정책을 한국어나 영어 문장으로 풀어 쓴다. 수치는 바꾸지 않는다.

영수증 재실행 검증

sootool receipt verify --tool finance.fv \
  --arguments '{"present_value":"1000","rate":"0.05","periods":10}' \
  --receipt receipt.json

같은 도구를 다시 실행해 도구 이름, 입력 해시, 결과 해시, 도구 버전, 정책 해시를 대조한다. SOOTOOL_RECEIPT_KEY_FILE에 ed25519 개인 키 파일을 지정하면 영수증에 서명이 붙는다.

도구 카탈로그 (276개 기본 + 10개 admin, 18 계산 도메인 + 운영 도구)

Namespace

Count

대표 도구

core

11

add, sub, mul, div, calc(수식), batch, pipeline, pipeline_resume, solve_for, compare, explain

accounting

12

vat_extract, vat_add, balance, 감가상각 3종, dupont 2종, ratios, income_statement, cashflow_operating, break_even

finance

18

pv, fv, npv, irr, roi, cagr, payback_period, loan_schedule, bond_ytm, bond_duration, black_scholes, var 2종, sharpe, sortino

tax

17

kr_income, kr_comprehensive_income_tax, kr_withholding_simple, capital_gains_kr, kr_gift, kr_inheritance, kr_corporate, kr_eitc, 지방세 부가 3종

tax_us

4

federal_income, capital_gains, state_tax, fica

payroll

15

kr_salary, kr_gross_from_net, kr_severance_pay, kr_year_end_tax_settlement, kr_overtime_pay, kr_minimum_wage_check, 공제 4종

realestate

10

kr_acquisition_tax, kr_transfer_tax, kr_property_tax, kr_comprehensive, kr_ltv, kr_dti, kr_dsr, kr_subscription_score

stats

14

descriptive, t-검정 3종, anova_oneway, regression_linear, ci_mean, bootstrap_ci, 비모수 검정

probability

30

정규, 이항, 포아송, 감마, 베타, 지수, 로그정규, 카이제곱, F 분포의 pdf·cdf·ppf, bayes, nCr, nPr

datetime

14

영업일 계산, day_count, age, diff, tz_convert, 음양력 변환, 24절기, 회계연도, 소득세 과세기간

math

10

수치 적분 2종, 수치 미분 2종, 보간 2종, polynomial_roots, polynomial_horner, fft, ifft

geometry

15

넓이·부피 7종, 벡터 3종, 행렬 4종, haversine

engineering

56

전기·교류 회로, 유체, 열전달, 재료역학, 제어, 신뢰성, SI 접두어 변환

units

8

convert, fx_convert, fx_triangulate, temperature, 에너지·압력·데이터 크기·시간 변환

medical

12

bmi, bsa, egfr, dose_weight_based, pregnancy_weeks, cha2ds2_vasc, has_bled, framingham_cvd_10y, QTc 4종

science

11

half_life, ideal_gas, molar_mass, stoichiometry, nernst, snell_law, thin_lens, bragg 외

crypto

10

gcd, lcm, egcd, modinv, modpow, crt, is_prime, euler_totient, carmichael_lambda, hash

pm

5

critical_path, pert, evm, earned_schedule, monte_carlo_schedule

symbolic

2

solve, diff (sootool[symbolic] 설치 시)

sootool

2+10

skill_guide, verify_receipt, 정책 관리 10종(쓰기 4종은 관리자 모드)

도구별 버전, 정확도 등급, 설명은 docs/tool_catalog.md에 있다. 이 파일은 레지스트리에서 자동 생성한다.

서버 실행

sootool                                                    # stdio (MCP 클라이언트 기본)
sootool --transport http --http-port 10535                 # Streamable HTTP
sootool --transport unix --socket /tmp/sootool.sock        # Unix 소켓
sootool --transport stdio,http --socket /tmp/sootool.sock  # 여러 전송 동시 기동

전송

용도

비고

stdio

Claude Code, Claude Desktop 등 로컬 클라이언트

기본값

http

원격 접속(Streamable HTTP)

무상태라 로드 밸런서 뒤에 둘 수 있다. 기본 포트 10535

unix

같은 호스트의 다른 프로세스

소켓 파일 권한(기본 0600)으로 접근을 통제한다

sse-legacy

MCP 2024-11 클라이언트 호환

폐기 예정. --enable-sse-legacy로만 켜진다. 기본 포트 10536

네트워크 전송의 보안 규칙은 다음과 같다.

  • 기본 바인딩은 127.0.0.1이다. --host 0.0.0.0으로 외부에 열려면 --auth-token(또는 SOOTOOL_AUTH_TOKEN)이 있어야 기동한다.

  • 정책을 바꾸는 쓰기 도구 4종은 stdio와 Unix 소켓에서만 노출한다. 네트워크에서 쓰려면 --admin --remote-admin --admin-token <토큰>이 모두 필요하고, 관리자 토큰으로 인증한 요청만 쓰기를 수행한다.

노출 프로파일

sootool --profile full   # 기본값. 도구 286개를 모두 노출
sootool --profile lean   # sootool.search, describe, call, skill_guide 4개만 노출

lean은 도구 정의 전체를 컨텍스트에 올리지 않는다. 에이전트는 sootool.search로 도구를 찾고, sootool.describe로 인자를 확인한 뒤, sootool.call로 실행한다. 결과와 영수증은 직접 호출과 같다. sootool.call은 읽기 전용 도구만 실행한다.

명령줄

서브커맨드를 주면 서버를 띄우지 않고 도구를 바로 실행한다.

sootool call core.add --arg 'operands=["1.5","2.5"]'
sootool call finance.npv --arg-json '{"rate":"0.1","cashflows":["-100","50","60","70"]}'
sootool call payroll.kr_gross_from_net --arg net_monthly=3000000 --arg year=2026 --format raw
sootool tools list --search 양도세        # 줄임말과 일상 표현으로 검색
sootool tools describe tax.kr_income     # 인자와 정책 인자 확인
sootool batch -f items.json              # -f - 는 표준입력
sootool policy show --arg domain=tax --arg name=kr_income --arg year=2026
sootool skill-guide --section triggers
sootool version

항목

내용

인자

--arg 이름=값을 반복하거나 --arg-json으로 한 번에 넘긴다. 문자열 인자는 값을 그대로 쓰고, 정수·불리언·목록·객체는 JSON으로 읽는다.

출력 형식

--format pretty(기본), json(전체), raw(trace와 _meta 제외), trace

출력 위치

결과는 표준출력, 오류는 표준에러에 JSON으로 낸다.

종료 코드

0 성공, 1 도구 오류, 2 입력 오류, 3 관리자 모드 필요(SOOTOOL_ADMIN_MODE=1), 70 내부 오류

파이썬 라이브러리로 쓰기

MCP 서버 없이 같은 도구를 함수로 부른다. 결과, 영수증, as_of 처리가 MCP와 같고 결과 타입이 선언되어 있어 타입 검사기가 필드를 확인한다.

from sootool.sdk import tax

out = tax.kr_income(taxable_income=50_000_000, year=2026)
out["tax"]                                # "6240000"
out["_meta"]["integrity"]["input_hash"]   # 재실행 검증용 영수증

샌드박스에서 에이전트가 파이썬을 실행하는 구성은 docs/sdk.md를 본다.

에이전트에 사용 규칙 알려 주기

도구를 등록해도 에이전트가 직접 암산하는 경우가 있다. 아래 중 하나로 "숫자 계산은 SooTool로" 규칙을 넣는다.

  • 세션 시작 시 sootool.skill_guide를 호출하게 한다. 언제 어떤 도구를 부를지 정리한 트리거 표, 예시, 금지 패턴, 플레이북을 돌려준다(section: triggers, examples, anti_patterns, playbooks, all / lang: ko, en).

  • 클라이언트 설정 파일에 붙여 넣을 규칙: Claude Code, Cursor, AGENTS.md

문서

문서

내용

사용자 가이드

도메인별 도구 개요, 공통 인자, 응답 규칙

도구 카탈로그

도구 286개의 버전, 정확도 등급, 설명

정책 관리

정책 파일 구조, 시점 선택, 갱신·롤백 절차, 감사 로그

SDK

파이썬 라이브러리 사용법과 샌드박스 구성

외부 정책 팩

서명된 정책 묶음의 생성, 검증, 설치

안정성 계약

호환을 약속하는 범위와 폐기 절차

쿡북

세무, 금융, 전기 공학 시나리오별 호출 예시

아키텍처 결정 기록

설계 결정과 근거(ADR)

릴리스 절차

버전 올리기부터 PyPI 게시까지

개발

uv sync --extra symbolic
make test        # pytest와 커버리지
make lint        # ruff
make typecheck   # mypy
uv run python scripts/mcp_smoke_test.py   # stdio 연결 점검 (http, sse, unix 스크립트도 있다)

새 도구는 src/sootool/modules/<도메인>/에 함수를 만들고 @REGISTRY.tool(namespace, name, description, version)을 붙인 뒤 도메인 __init__.py에서 불러오면 등록된다. 도구 설명이나 타입을 바꾸면 scripts/gen_tool_catalog.py와 scripts/gen_sdk_stubs.py로 생성 문서를 다시 만든다. 정책 파일을 고치면 scripts/policy_stamp.py로 해시를 갱신한다.

라이선스

MIT. LICENSE 참조.

Available Tools

286 tools
accounting.balanceA
Read-onlyIdempotent

분개 목록의 차변 합계와 대변 합계가 같은지 검증한다. entries 는 {account, debit, credit} 항목의 목록이며 금액은 Decimal 문자열, 비어 있으면 0 으로 본다. 반환값은 balanced 여부, 두 합계, 차이의 절댓값(diff). account 는 합계에 쓰이지 않으므로 계정별 잔액 검증에는 쓸 수 없다.

NameRequiredDescriptionDefault
entriesYes

Output Schema

NameRequiredDescription
diffYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
balancedYes
debit_totalYes
credit_totalYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and closed-world behavior, so the safety profile is covered. The description adds real substance beyond them: empty entries are treated as zero, amounts are Decimal strings, and the account field is inert — all behaviors an agent would otherwise have to guess.

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?

Front-loaded with the purpose, then input shape, then return values, then the scope caveat. Short Korean sentences with no filler; the caveat is placed last where it reads as a qualifier rather than burying the main point.

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

Completeness5/5

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

The tool is a single-parameter validator with an output schema, so return-value documentation is not strictly required, and the description supplies it anyway plus input semantics and scope limits. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0% and the schema only says 'array of objects', so the description carries the burden and largely meets it: it specifies the {account, debit, credit} item shape, the Decimal-string amount format, and the zero-default for empty values. It does not address optionality of debit/credit or what additional keys do, leaving a modest gap.

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

Purpose5/5

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

States a specific verb and resource: validating that the debit total and credit total of a journal-entry list match. It also scopes itself out of per-account balance checking, which separates it from the other accounting.* tools such as accounting.income_statement and accounting.ratios.

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 closing sentence gives an explicit when-not-to-use: the account field is ignored in the totals, so it cannot verify per-account balances. That is strong exclusion guidance, but no named alternative is offered for the per-account case.

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

accounting.break_evenA
Read-onlyIdempotent

손익분기 판매량 = fixed_costs / (unit_price - unit_variable_cost). 금액은 유한한 Decimal 문자열이며 고정비와 단위 변동비는 0 이상, 판매 단가는 단위 변동비보다 커야 한다. 50자리 Decimal 정밀도로 계산하고 decimals(기본 4)자리 HALF_EVEN 반올림한다. 결과는 소수 판매량이며 정수 판매 개수로 올림하지 않는다.

NameRequiredDescriptionDefault
decimalsNo
unit_priceYes
fixed_costsYes
unit_variable_costYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
break_even_unitsYes

TDQS

A4.2/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), yet the description adds real substance: 50-digit Decimal internal precision, HALF_EVEN rounding to `decimals` (default 4), and the important caveat that the result is a fractional sales quantity rather than being rounded up to whole units. It does not describe error behavior when unit_price <= unit_variable_cost, which is the one gap.

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 sentences, formula front-loaded, then validity constraints, then numeric precision/rounding, then the output-semantics caveat. Every sentence carries information an agent needs; nothing is redundant with the schema or annotations.

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 an output schema present and annotations covering safety, the description need only cover computation semantics — precision, rounding, and the non-integer result — all of which it does. The only missing piece is failure behavior for an invalid denominator, a minor omission for a pure calculation tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it largely does: it specifies that amounts are finite Decimal strings, gives per-parameter validity constraints for all three required inputs, and documents `decimals` (default 4) plus its rounding mode. It stops short of naming each parameter individually, which is why it is not a 5.

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

Purpose5/5

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

The description opens with the exact formula '손익분기 판매량 = fixed_costs / (unit_price - unit_variable_cost)', which names both the verb (compute break-even sales volume) and the precise resource/definition. No sibling in the accounting.* family could be confused with this one after reading the formula.

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?

Domain context and input preconditions (fixed_costs and unit_variable_cost >= 0, unit_price > unit_variable_cost) are given, which implicitly tells the agent when the call is valid. However, there is no explicit guidance on when to use this versus alternatives (e.g. core.calc or core.solve_for), and no statement about what happens when preconditions fail.

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

accounting.cashflow_operatingA
Read-onlyIdempotent

간접법 영업활동현금흐름(CFO)을 계산한다. 당기순이익에 감가상각비, 무형자산상각비, 기타 비현금 항목을 더하고 매출채권 증가와 재고자산 증가는 빼며 매입채무 증가는 더한다. 금액은 Decimal 문자열이며 반올림하지 않는다. 증가는 양수로 넣어야 하며 증가분을 음수로 넣으면 부호가 뒤집힌다.

NameRequiredDescriptionDefault
net_incomeYes
amortizationNo0
depreciationNo0
other_noncashNo0
change_in_other_wcNo0
change_in_payablesNo0
change_in_inventoryNo0
change_in_receivablesNo0

Output Schema

NameRequiredDescription
cfoYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: no rounding occurs, amounts are Decimal strings, and the sign convention (increases as positive) warns of a silent error mode if violated.

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 sentences ordered as purpose, formula, numeric format, then sign convention. The critical sign warning is placed last but is stated in one tight sentence, and no sentence restates the tool name or title without adding information.

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?

An output schema exists, so return-value explanation is unnecessary, and the description supplies the formula, precision rule, and sign semantics needed for an 8-parameter computation tool. The one omission is any mention of change_in_other_wc, leaving that parameter to be inferred from schema defaults.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry parameter meaning, and it largely does: it enumerates net income, depreciation, amortization, other non-cash items, receivables, inventory, and payables, and defines the sign direction for each change term. Only change_in_other_wc is left unaddressed, a minor gap given how much is otherwise covered.

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

Purpose5/5

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

The description opens with a specific verb and resource ('간접법 영업활동현금흐름(CFO)을 계산한다') and pins down the method (indirect method), which distinguishes it from siblings like accounting.income_statement or accounting.balance. An agent can immediately tell this is a single-purpose calculation tool.

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?

The phrase '간접법' implicitly scopes usage to indirect-method CFO computation, but the description never states when to choose this over building the same figure via accounting.income_statement or accounting.balance, nor does it name any prerequisites or exclusions. Usage is inferable but not stated.

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

accounting.depreciation_declining_balanceA
Read-onlyIdempotent

정률법 감가상각 스케줄을 계산한다. 연도별 감가비 = 기초 장부가 x 감가율(rate, 0 초과 1 미만 Decimal 문자열)이며 장부가는 잔존가치 아래로 내려가지 않고 도달하면 이후 연도 감가비는 0 이다. decimals(기본 0)자리로 rounding(기본 HALF_EVEN) 처리한다. 감가율은 입력값 그대로 쓰며 내용연수로 역산하지 않는다.

NameRequiredDescriptionDefault
costYes
rateYes
salvageYes
decimalsNo
roundingNoHALF_EVEN
life_yearsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
scheduleYes

TDQS

A3.7/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 goes well beyond them: it discloses the salvage floor clamp, the zero-depreciation behavior once the floor is reached, the rounding mode applied, and that the rate is taken literally rather than back-derived from life_years. That last clause pre-empts a realistic caller misconception. It does not describe output shape, but an output schema exists.

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 dense sentences with no filler, front-loaded with the purpose and formula before the edge-case rules. Every sentence contributes a constraint or default; it is compact for the amount of semantics it delivers.

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 six-parameter read-only calculator with an output schema, this is nearly complete: calculation rule, clamping behavior, precision and rounding defaults, and the rate-interpretation caveat are all present. The remaining gap is the meaning of life_years, which determines how many periods the schedule emits.

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 and only partly meets it. It fully specifies rate (Decimal string, strictly between 0 and 1), decimals (default 0) and rounding (default HALF_EVEN), and implies salvage via the floor rule, but cost and especially life_years — the schedule horizon — are never explained.

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 opens with a specific verb and resource in the declining-balance method and even states the governing formula (beginning book value x rate), which distinguishes it in substance from depreciation_straight_line and depreciation_units_of_production. It stops short of naming those siblings explicitly, so the routing is inferred from the method name rather than stated.

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?

No explicit when-to-use or when-not-to-use guidance and no named alternative among the sibling depreciation tools. Usage is only implied by the method stated in the first sentence, which is adequate but leaves the agent to decide between declining-balance, straight-line and units-of-production on its own.

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

accounting.depreciation_straight_lineA
Read-onlyIdempotent

정액법 감가상각 스케줄을 계산한다. 연 감가비 = (취득원가 - 잔존가치) / 내용연수(life_years, 1 이상 정수), 취득원가와 잔존가치는 유한한 0 이상 Decimal 문자열이며 취득원가는 잔존가치 이상이어야 한다. decimals(기본 0)자리로 rounding(기본 HALF_EVEN) 처리하되 감가비는 남은 상각액을 넘지 않는다. 마지막 해는 소수 자릿수와 관계없이 잔액을 정확히 상각한다. 월할이나 기중 취득 안분은 지원하지 않는다.

NameRequiredDescriptionDefault
costYes
salvageYes
decimalsNo
roundingNoHALF_EVEN
life_yearsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
scheduleYes
annual_expenseYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, idempotent, closed-world); the description adds substantive behavior: the per-year depreciation is capped at the remaining basis, and the final year amortizes the exact residual regardless of decimal places. Those are non-obvious edge-case rules that materially change results.

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?

One front-loaded paragraph: verb and formula first, then input constraints, then rounding and terminal-year rules, then an explicit exclusion. No sentence is redundant, and the most decision-relevant content leads.

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 an output schema present, the return shape needn't be explained, and the description covers inputs, constraints, rounding policy, and the final-year edge case. The one remaining hole is the accepted value set for `rounding`, which neither the schema nor the prose supplies.

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

Parameters4/5

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

Schema coverage is 0%, so the description must do the work — and it does: life_years must be an integer >= 1, cost and salvage must be finite non-negative Decimal strings with cost >= salvage, decimals defaults to 0 and rounding to HALF_EVEN. The only gap is that the permitted values for the string parameter `rounding` are never enumerated (no enum in schema either), so an agent must guess valid tokens beyond the default.

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

Purpose5/5

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

The description names the specific operation (정액법 감가상각, straight-line depreciation) and gives the exact formula, which immediately distinguishes it from the sibling declining-balance and units-of-production calculators. It also explicitly scopes out monthly proration and mid-year acquisition, closing off ambiguity an agent might otherwise have.

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?

It clearly states the applicable case (straight-line, full-year periods) and explicitly says when NOT to use it ('월할이나 기중 취득 안분은 지원하지 않는다'). It doesn't name the sibling tools by name, but the method-specific framing makes the alternative choice obvious.

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

accounting.depreciation_units_of_productionA
Read-onlyIdempotent

생산량비례법 감가상각 스케줄을 계산한다. 기간 감가비 = (취득원가 - 잔존가치) / 총생산량 x 기간 생산량. total_units 는 1 이상 정수, period_units 는 기간별 생산량 정수 목록이며 금액은 Decimal 문자열. decimals(기본 0)자리로 rounding(기본 HALF_EVEN) 처리한다. 누적 생산량이 총생산량을 넘어도 오류 없이 장부가가 잔존가치에서 멈춘다.

NameRequiredDescriptionDefault
costYes
salvageYes
decimalsNo
roundingNoHALF_EVEN
total_unitsYes
period_unitsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
scheduleYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and closed-world behavior, so the description adds the non-obvious edge case: cumulative production exceeding total_units does not error and book value floors at salvage. It also discloses the rounding/scale post-processing, which is genuine behavioral context beyond 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.

Conciseness4/5

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

Four dense sentences, front-loaded with the formula and followed by constraints and edge-case behavior; nothing is filler. It could be slightly tighter by merging the rounding sentence into the parameter notes.

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 an output schema present, return values need not be described, and the description covers formula, input constraints, rounding, and overflow behavior. Only the enumeration of accepted rounding modes is missing for a fully self-contained definition.

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

Parameters4/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 burden and largely succeeds: total_units must be an integer >= 1, period_units is a per-period integer list, cost/salvage are Decimal strings, and decimals/rounding defaults are restated. The only gap is that valid rounding mode values beyond the HALF_EVEN default are not enumerated.

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

Purpose5/5

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

States a specific verb (계산한다) and resource (생산량비례법 감가상각 스케줄) and then gives the exact formula, which uniquely distinguishes it from the straight-line and declining-balance siblings without needing to name them.

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?

The formula implies when the method applies, but there is no explicit statement about when to choose this over accounting.depreciation_straight_line or accounting.depreciation_declining_balance, nor any prerequisites. Usage is inferable but not guided.

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

accounting.dupont_3A
Read-onlyIdempotent

DuPont 3단계 분해로 ROE = 순이익률 x 총자산회전율 x 자기자본승수(재무레버리지)를 계산한다. 금액은 Decimal 문자열이며 매출, 총자산, 자기자본은 0 이 아니어야 한다. 각 값은 decimals(기본 6)자리 HALF_EVEN 반올림이고 음수 자기자본은 막지 않으므로 부호를 확인해야 한다.

NameRequiredDescriptionDefault
revenueYes
decimalsNo
net_incomeYes
total_assetsYes
total_equityYes

Output Schema

NameRequiredDescription
roeYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
net_marginYes
asset_turnoverYes
equity_multiplierYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint, so the safety profile is covered; the description still adds real behavioral context beyond that — inputs are Decimal strings, revenue/total assets/total equity must be non-zero, rounding is HALF_EVEN at `decimals` (default 6), and negative equity is deliberately not rejected so the caller must validate sign. That is meaningful disclosure for a calculation tool.

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 compact sentences, front-loaded with the formula, then constraints, then rounding/sign caveats. Dense but every clause carries information; only the sign-check remark is somewhat terse in phrasing.

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 an output schema present, return values need not be described, and the description covers input format, validity constraints, and numeric precision. The remaining gap is competitive positioning against accounting.dupont_5, which would help an agent choose correctly between the two decompositions.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it largely does: it establishes that the monetary parameters are Decimal strings, that three of the four required inputs are non-zero-constrained (implicitly leaving net_income able to be zero/negative), and that `decimals` defaults to 6 with HALF_EVEN rounding. It does not explain the unit/currency convention or the exact meaning of total_equity vs. average equity.

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 ('DuPont 3단계 분해로 ROE = ...를 계산한다') and spells out the exact formula, so the agent knows precisely what is computed. The '3단계' qualifier implicitly distinguishes it from accounting.dupont_5, but the sibling is never named or contrasted explicitly.

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?

The formula and the ROE context imply when to use it (ROE decomposition into three components), but there is no explicit when-to-use/when-not guidance. Critically, the obvious alternative accounting.dupont_5 (five-step decomposition) is never mentioned, so the agent must infer the choice from the tool name alone.

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

accounting.dupont_5A
Read-onlyIdempotent

DuPont 5단계 분해로 ROE = 세부담비율(순이익/세전이익) x 이자부담비율(세전이익/EBIT) x 영업이익률 x 총자산회전율 x 재무레버리지를 계산한다. 금액은 Decimal 문자열이며 세전이익, EBIT, 매출, 총자산, 자기자본은 0 이 아니어야 한다. 각 값은 decimals(기본 6)자리 HALF_EVEN 반올림이다.

NameRequiredDescriptionDefault
ebitYes
revenueYes
decimalsNo
net_incomeYes
total_assetsYes
total_equityYes
pretax_incomeYes

Output Schema

NameRequiredDescription
roeYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
tax_burdenYes
asset_turnoverYes
interest_burdenYes
operating_marginYes
equity_multiplierYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already guarantee read-only, idempotent, closed-world behavior, and the description adds genuinely new traits: all amounts must be passed as Decimal strings, five specific inputs must be non-zero, and results are HALF_EVEN-rounded to 6 places by default. It stops short of stating units or an error shape, but that is a minor residual gap.

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: formula first, then validity constraints, then precision rules — front-loaded and free of filler. Nothing is redundant, though the formula is compact enough that it requires careful reading.

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 7-parameter pure-calculation tool with an output schema already present, the description covers inputs, domain constraints, and rounding, which is essentially everything an agent needs. The only omission is whether ROE is returned as a ratio or a percentage.

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

Parameters4/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 whole burden, and it does: it maps each argument to its formula role (net_income, pretax_income, ebit, revenue, total_assets, total_equity), declares the string/Decimal format, and documents the decimals default and rounding mode. Only the exact meaning of total_equity in the leverage term is left implicit.

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

Purpose5/5

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

States a specific verb (compute) and a precisely defined resource (5-stage DuPont decomposition of ROE), and spells out the exact factor chain from net income down to financial leverage. That formula alone separates it from accounting.dupont_3 and accounting.ratios without opening any schema.

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

Usage Guidelines2/5

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

The description never says when to reach for this instead of dupont_3 or accounting.ratios; the only conditional content is a data-validity constraint (denominators must be non-zero), not a routing rule. An agent must infer the choice from the factor count in the name.

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

accounting.income_statementA
Read-onlyIdempotent

다단계 손익계산서: 매출에서 매출총이익, 영업이익, 세전이익, 당기순이익까지 단계별 이익과 이익률을 계산한다. 금액은 유한한 Decimal 문자열이며 매출과 매출원가는 0 이상이어야 한다. 50자리 Decimal 정밀도로 계산하며 이익에 별도 반올림을 적용하지 않는다. 이익률은 소수 6자리 HALF_EVEN(0.25 = 25%)이며 매출이 0 이면 0 이다. 계산 범위 초과는 입력 오류다. 비용 항목은 양수로 입력한다.

NameRequiredDescriptionDefault
revenueYes
tax_expenseNo0
other_incomeNo0
cost_of_salesYes
other_expensesNo0
interest_expenseNo0
operating_expensesNo0

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
net_incomeYes
net_marginYes
gross_marginYes
gross_profitYes
pretax_incomeYes
pretax_marginYes
operating_incomeYes
operating_marginYes

TDQS

A4/5.0
Behavior5/5

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

Beyond the read-only and idempotent annotations, the description discloses important calculation behavior: 50-digit Decimal precision, no separate rounding of profit figures, 6-decimal HALF_EVEN margin rounding, zero-revenue margin behavior, and out-of-range errors. These details materially help an agent predict results and failure modes.

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?

The description is front-loaded with the purpose, then proceeds through input format, precision, rounding, error behavior, and sign convention. It is compact and every sentence adds operational information.

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 7-parameter financial calculation with an output schema, the description covers the key computational and input constraints needed to invoke it correctly. The main remaining gap is that the description does not fully clarify how each of the optional income and expense parameters is signed or categorized.

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?

With 0% schema description coverage, the description usefully adds that all amounts are finite Decimal strings, revenue and cost of sales must be non-negative, and expense items are entered as positive numbers. It still does not explain the role or sign conventions for every parameter, especially other_income versus other_expenses, interest_expense, and tax_expense.

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 clearly states a specific resource and operation: a multi-step income statement calculating gross profit, operating profit, pre-tax profit, net profit, and margins. It is distinguishable from balance-sheet or cash-flow siblings by resource, but it does not explicitly contrast itself with related profit tools such as accounting.break_even or accounting.ratios.

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?

Usage is implied by the resource name and the listed income-statement stages, so an agent can infer when this tool is appropriate. However, there is no explicit when-to-use guidance, no exclusions, and no named alternative such as accounting.break_even for break-even analysis.

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

accounting.ratiosA
Read-onlyIdempotent

재무상태표와 손익 항목으로 유동비율, 당좌비율, 부채/자기자본, 부채/총자산, 자기자본비율, ROE, ROA, 순이익률 8개를 한 번에 계산한다. 금액은 유한한 Decimal 문자열이며 호출자 설정과 독립적인 50자리 정밀도로 계산한다. 비율은 배수(0.5 = 50%)로 decimals(기본 4)자리 HALF_EVEN 반올림한다. decimals는 0 이상 정수이고 계산 범위 초과는 입력 오류다. 분모(유동부채, 자기자본, 총자산, 매출)가 0 이면 오류이며 백분율로 쓰려면 직접 100 을 곱한다.

NameRequiredDescriptionDefault
revenueYes
decimalsNo
inventoryYes
net_incomeYes
total_assetsYes
total_equityYes
current_assetsYes
total_liabilitiesYes
current_liabilitiesYes

Output Schema

NameRequiredDescription
roaYes
roeYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
debt_ratioYes
net_marginYes
quick_ratioYes
equity_ratioYes
current_ratioYes
debt_to_equityYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark it read-only, idempotent, and closed-world, so the low bar is met, yet the description adds substantial beyond-schema behavior: 50-digit internal precision, HALF_EVEN rounding to decimals, error on zero denominators, and that results are multiples not percentages. These are genuinely useful invocation-shaping facts.

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?

Front-loaded with the eight ratios then the precision/rounding/error details; every sentence carries real information. It is dense and the error/percentage clauses run together, but nothing is wasted.

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

Completeness5/5

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

Given an output schema exists (return values need not be spelled out) and the tool is read-only, the description covers everything an agent needs: what it computes, precision, rounding, units, and failure conditions.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it does well: it clarifies decimals (non-negative integer, default 4, out-of-range is an input error), defines amounts as finite Decimal strings, and specifies that four specific denominators erroring is the failure mode. It stops short of documenting each amount parameter's sign/validity individually.

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

Purpose5/5

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

States a specific action (calculate 8 ratios at once) and explicitly enumerates all eight ratios, plus names the input sources (balance sheet and income statement). An agent immediately knows what this produces and from what inputs.

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?

The 'at once' framing implies this is the batch ratio tool, but there is no explicit guidance on when to prefer it over siblings like dupont_3, dupont_5, or finance.roi, nor any 'when not to use' exclusions. Usage is only implied.

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

accounting.vat_addA
Read-onlyIdempotent

공급가액에 부가세를 더해 공급대가를 계산한다. 부가세 = 공급가액 x rate(기본 0.1)를 정수 자리로 rounding 처리하며 기본은 HALF_EVEN 으로 vat_extract 의 기본(DOWN)과 다르다. 금액은 Decimal 문자열. 공급대가에서 공급가액을 구하려면 vat_extract 를 쓴다.

NameRequiredDescriptionDefault
netYes
rateNo0.1
roundingNoHALF_EVEN

Output Schema

NameRequiredDescription
vatYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
grossYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the description's job is to add computation semantics — which it does: rounding to integer places, default HALF_EVEN, and Decimal-string amounts. It does not state the accepted rounding-mode vocabulary or how rate bounds/negative inputs are handled, so it stops just short of full disclosure.

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 tight sentences, front-loaded with the computation before the disambiguation and format notes; no filler. Density is high but each sentence carries distinct information (formula, rounding default contrast, Decimal format, reverse tool).

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 an output schema present, return values need no explanation, and the description covers the formula, defaults, and the reverse-direction alternative. Only the rounding-mode vocabulary and input-format edge cases are left unstated for a tool whose parameters have zero schema descriptions.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load, and it largely does: it identifies net as the supply amount (required), gives rate's default 0.1, and gives rounding's default HALF_EVEN plus the fact that rounding targets integer places. The gap is that the allowed rounding enum values and the expected rate string format (fraction vs percent) are never enumerated.

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

Purpose5/5

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

States a specific verb and resource (add VAT to the supply amount to get the gross amount) and names the exact formula (VAT = net × rate). It also names the sibling it is not: vat_extract, which goes the other direction.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use vat_add when going net→gross, and use vat_extract when going gross→net. It further disambiguates the two by flagging that their default rounding modes differ (HALF_EVEN vs DOWN), which is exactly the kind of detail that prevents a wrong sibling choice.

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

accounting.vat_extractA
Read-onlyIdempotent

공급대가(부가세 포함 금액)에서 공급가액과 부가세를 역산한다. 공급가액 = gross / (1 + rate)를 정수 자리로 rounding(기본 DOWN, 절사) 처리하고 부가세 = gross - 공급가액. rate 기본 0.1, 금액은 Decimal 문자열. 공급가액에서 공급대가를 구하는 순방향 계산에는 vat_add 를 쓴다.

NameRequiredDescriptionDefault
rateNo0.1
grossYes
roundingNoDOWN

Output Schema

NameRequiredDescription
netYes
vatYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.8/5.0
Behavior4/5

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

Goes beyond the readOnly/idempotent annotations by giving the exact formula, the default truncation behavior of rounding (DOWN/절사), the default rate, and the Decimal-string input convention. Only the full set of accepted rounding values is left implicit.

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?

Three sentences, each carrying distinct load: purpose, computation/rounding rule, and sibling routing. The alternative is placed last, after the core semantics, which is the right ordering.

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

Completeness5/5

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

An output schema exists so return values need not be explained, and the description still spells out what the two outputs are and how they are computed. Nothing an agent needs to invoke this correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, yet the description covers all three parameters: gross is defined as the VAT-inclusive amount, rate's default of 0.1, and rounding's default of DOWN with the meaning of truncation to integer. This compensates fully for the empty schema descriptions, with only the alternate rounding values unspecified.

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

Purpose5/5

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

States a specific verb (역산/extract) and resource (gross → supply value + VAT), and immediately disambiguates from the sibling that performs the opposite direction. An agent can select it without opening the schema.

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

Usage Guidelines5/5

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

Explicitly names vat_add as the tool for the forward calculation (공급가액 → 공급대가), making the split between the two tools unambiguous. That is a direct when-to-use-this-vs-alternative statement.

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

core.addA
Read-onlyIdempotent

Decimal 정밀 덧셈. operands(쉼표, 단위, 공백 없는 숫자 문자열 목록)의 합을 result 문자열로 반환한다. 유효숫자 50자리 안에서 계산하고 별도 반올림은 없다. trace_level 은 summary(기본), full, none. 합계를 직접 암산하지 말고 이 도구로 구한다.

NameRequiredDescriptionDefault
operandsYes
trace_levelNosummary

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceNo계산 근거(tool, formula, inputs, steps, output)
resultYes
truncatedNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, closed-world), so the description earns credit for adding domain behavior: computation to 50 significant digits and no separate rounding step. It does not mention limits on operand count or error behavior for malformed input, keeping it short of a 5.

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 short sentences, front-loaded with precision and return form, then constraints, then the usage directive. Every sentence carries information, though the trace_level sentence is slightly abrupt and could tie more clearly to output behavior.

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

Completeness5/5

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

An output schema exists, so return-value detail is not required from the description, and the description still names the result string and precision. For a two-parameter arithmetic primitive with read-only annotations, nothing essential is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it largely does: operands are described as a list of numeric strings without commas, units, or spaces, and trace_level is given its three values with 'summary' marked as the default. It stops short of stating what full vs none actually change in the output, so not a 5.

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

Purpose5/5

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

States a specific verb and resource ('Decimal 정밀 덧셈') and adds the output form ('합을 result 문자열로 반환'). An agent can distinguish it from core.sub/core.mul/core.div purely from the name plus this sentence.

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?

Explicitly directs the agent to use the tool rather than doing mental arithmetic ('합계를 직접 암산하지 말고 이 도구로 구한다'), which is real usage guidance. It does not name alternatives such as core.calc or core.batch, so the sibling-routing guidance is implied rather than stated.

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

core.batchA
Read-onlyIdempotent

서로 독립인 도구 호출 N개를 병렬 실행한다. items 는 id, tool, args 를 가진 객체 목록(최대 500개, id 중복 불가)이고 읽기 전용 도구만 실행된다. 결과는 입력 id 순서이며 항목별 status(ok, error, timeout)와 item_timeout_s, batch_timeout_s 가 적용된다. 앞 결과를 뒤 입력에 쓰려면 core.pipeline 을 쓴다.

NameRequiredDescriptionDefault
itemsYes
max_workersNo
deterministicNo
item_timeout_sNo
batch_timeout_sNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
statusYes
resultsYes
count_okYes
count_errorYes
parallelismYes
count_timeoutYes
total_time_msYes
non_deterministicNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, and the description usefully confirms and explains that only read-only tools are executed. It adds result ordering (input id order) and per-item status values (ok, error, timeout), but says nothing about how max_workers or deterministic change execution behavior, or what happens when some items fail.

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 dense sentences, front-loaded with purpose, then constraints, then the sibling redirect. No filler, though the timeout sentence packs both the status model and two timeout params into a way that makes the two undocumented params easy to miss.

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?

Return shape need not be explained since an output schema exists, yet the description still covers ordering and status codes. For a 5-param orchestration tool, the remaining gap is the semantics of max_workers and deterministic, which no structured field covers.

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% and the items property is an untyped object with additionalProperties:true, so the description's breakdown (id, tool, args) is essential and well beyond the schema. It also explains item_timeout_s and batch_timeout_s, but leaves max_workers and deterministic completely undocumented.

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

Purpose5/5

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

States a specific verb and resource ("서로 독립인 도구 호출 N개를 병렬 실행한다") and immediately names the semantic boundary versus core.pipeline (independent vs. dependent items). An agent can distinguish batch from pipeline without opening either schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use core.pipeline when later inputs depend on earlier results, implying core.batch is for independent calls. It also gives hard constraints (max 500 items, unique ids, read-only tools only) that act as when-not conditions.

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

core.calcA
Read-onlyIdempotent

AST 기반 안전 수식 평가기. expression 은 사칙, %, //, **, 괄호, 함수(sqrt, abs, floor, ceil, round, log, ln, exp, 삼각함수 등), 상수(pi, e, tau)를 쓸 수 있고 variables 는 Decimal 문자열 전용이다. 결과는 precision(기본 50)자리 십진 문자열이다. 비교, 조건식, 속성 접근은 거부한다. 세금, 금융 공식은 전용 도구를 쓴다.

NameRequiredDescriptionDefault
precisionNo
variablesNo
expressionYes
trace_levelNosummary

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceNo계산 근거(tool, formula, inputs, steps, output)
resultYes
truncatedNo

TDQS

A4.6/5.0
Behavior4/5

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

With readOnlyHint/idempotentHint already declaring the safety profile, the description adds genuine behavior: the accepted operator/function/constant set, the hard rejection of comparisons and attribute access, and that variables must be Decimal strings. It omits any mention of trace_level, whose effect on the response is left unexplained.

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 dense sentences, each carrying distinct information (capability, input types, output format, exclusions), with the core purpose front-loaded. No 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?

Output schema exists, so return values need no prose; the description still usefully states the result is a precision-digit decimal string. The only gap is trace_level, an unannotated parameter with no explanation anywhere.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate; it does so for three of four parameters — expression (allowed operators, functions, constants), variables (Decimal strings only), and precision (default 50, digits of the decimal-string result). trace_level receives no semantics at all.

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

Purpose5/5

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

Names the mechanism (AST-based safe expression evaluator) and the resource (arithmetic expressions), which cleanly separates it from core.add/core.mul/core.div and from the domain-specific formulas in finance.*/tax.*. The added note that comparisons, conditionals and attribute access are refused further pins down the boundary.

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

Usage Guidelines5/5

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

Explicitly states what is rejected (comparisons, conditional expressions, attribute access) and routes the agent elsewhere for tax/financial formulas ('use the dedicated tools'). That is both a when-not and an alternative pointer, so nothing is left to inference.

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

core.compareA
Read-onlyIdempotent

시나리오 비교: 읽기 전용 도구 tool 을 base_arguments 로 실행한 기준안과, 각 시나리오의 arguments 로 덮어쓴 실행을 비교한다. fields 는 결과에서 비교할 필드 경로 목록(예: tax, breakdown.0.rate). 숫자 필드는 기준안 대비 차이(delta_vs_baseline)를, 숫자가 아닌 필드는 null 을 반환한다. 시나리오는 이름이 겹치지 않게 최대 50개까지 받는다.

NameRequiredDescriptionDefault
toolYes
fieldsYes
scenariosYes
base_argumentsYes

Output Schema

NameRequiredDescription
toolYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
baselineYes
scenariosYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false), but the description adds real behavior: numeric fields yield delta_vs_baseline, non-numeric fields yield null, and scenarios are capped at 50 with unique-name constraints. That is substantive context beyond the structured fields.

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?

The core comparison mechanic is front-loaded, then field semantics, then the 50-scenario cap. It is dense but every sentence adds information; no 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?

An output schema exists, so return-value shape is covered elsewhere, and the description still explains delta_vs_baseline and null-for-non-numeric semantics. Given nested scenario objects and four required parameters, the definition is nearly complete, with only the per-scenario object structure left implicit.

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

Parameters4/5

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

Schema description coverage is 0%, so the description has to carry parameter meaning, and it does: tool is a read-only tool, base_arguments is the baseline run, scenarios are per-run overrides (max 50, unique names), and fields is a list of result paths with a concrete example (tax, breakdown.0.rate). The internal shape of each scenario object remains undocumented, keeping it from a 5.

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

Purpose5/5

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

The description states a specific verb (compare) and mechanism: it runs a read-only tool once with base_arguments as the baseline and again per scenario with overridden arguments. That is clearly distinguishable from sibling compute tools like core.add or core.calc, which return single values.

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?

It tells the agent this only applies to 'read-only' tools and frames the use case as scenario comparison, which implicitly excludes mutations. It does not name an explicit alternative or a when-not condition, so it stops short of a 5.

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

core.divA
Read-onlyIdempotent

Decimal 정밀 나눗셈 a / b. a 와 b 는 쉼표, 단위, 공백 없는 숫자 문자열이며 b 가 0 이면 오류를 반환한다. 몫은 유효숫자 50자리로 계산되어 나누어떨어지지 않으면 50자리에서 끊긴다. 정수 몫이나 원 단위 절사가 필요하면 결과를 별도로 반올림한다.

NameRequiredDescriptionDefault
aYes
bYes
trace_levelNosummary

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceNo계산 근거(tool, formula, inputs, steps, output)
resultYes
truncatedNo

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing the b=0 error path, the 50-significant-digit precision ceiling, and the truncation (not rounding) behavior when the division is not exact. Missing is anything about output shape or the role of trace_level, but the core behavioral risks are covered.

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 tight sentences, front-loaded with the operation and then the input-format constraint, error condition, and precision limit in order of importance. Every sentence adds information; only the final rounding note is slightly tangential but still useful.

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 an output schema present, the description need not explain return values, and it supplies the precision semantics an agent needs to interpret the result. The unaddressed trace_level parameter is the one real gap for a three-parameter tool.

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 compensates well for a and b (numeric strings, no commas/units/spaces), but the third parameter trace_level is never mentioned anywhere, leaving one parameter completely undocumented.

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

Purpose5/5

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

States a specific verb+resource ('Decimal 정밀 나눗셈 a / b') and immediately scopes it as arbitrary-precision division rather than the integer/normal arithmetic done by siblings like core.add or core.mul. An agent can tell exactly what operation this performs without opening the schema.

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?

Provides clear operational context: the inputs must be bare numeric strings, and if an integer quotient or won-unit truncation is wanted the result must be rounded separately. It does not name sibling tools such as core.calc or core.mul or state explicit exclusions, so it falls short of a 5.

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

core.explainA
Read-onlyIdempotent

설명 모드: 읽기 전용 도구 tool 을 arguments 로 실행하고, 수식, 입력, 계산 단계, 결과, 적용 정책(상태, 시행 기간)과 근거 조문을 평문(lang: ko 또는 en)으로 풀어 반환한다. 수치는 도구 결과 그대로이며 설명은 trace 를 서술할 뿐이다. 긴 값은 300자에서 줄여 보이고 원본은 result 에 있다.

NameRequiredDescriptionDefault
langNoko
toolYes
argumentsYes

Output Schema

NameRequiredDescription
langYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
linesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes
summaryYes
citationsYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description still adds meaningful behavior: numbers are passed through verbatim, the prose only narrates the trace, and long values are truncated at 300 characters with the original preserved in `result`. It omits failure behavior (invalid tool name, non-read-only tool rejected) and any cost/latency expectations.

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, front-loaded with the mode and the operation, then output shape, then fidelity guarantee, then truncation. Slight redundancy between the fidelity sentence and the truncation sentence, but 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?

An output schema exists, yet the description still usefully enumerates the returned fields, and it discloses the read-only restriction and truncation rule an agent needs to interpret results. Missing only edge-case handling (invalid/nested tool, error surfacing) for a meta-tool with a free-form nested `arguments` object.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load and largely does: `tool` is the read-only tool to run, `arguments` is that tool's argument object, and `lang` selects ko or en for the prose. It does not clarify the tool-name format (dotted identifiers like accounting.balance) or whether `arguments` must match the target tool's schema.

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 action: execute a read-only tool with `arguments` and return a plain-text narration of the formula, inputs, steps, result, applied policy, and statutory basis. The 'explanation mode' framing makes it distinguishable from plain calculation, but it never names the obvious sibling (core.calc) as the non-explaining alternative.

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 does constrain usage to read-only tools, which is a real when-not-to-use signal for mutating siblings. However there is no explicit guidance on when an agent should prefer core.explain over core.calc or over calling the target tool directly, so the routing decision is left to inference.

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

core.mulA
Read-onlyIdempotent

Decimal 정밀 곱셈. operands(쉼표, 단위, 공백 없는 숫자 문자열 목록)의 곱을 result 문자열로 반환한다. 유효숫자 50자리를 넘는 곱은 그 자릿수로 반올림되며 그 밖의 반올림은 없다. 세금이나 이자 계산에는 전용 도구를 쓴다.

NameRequiredDescriptionDefault
operandsYes
trace_levelNosummary

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceNo계산 근거(tool, formula, inputs, steps, output)
resultYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, closed-world), so the description adds genuine value by disclosing the precision contract: products beyond 50 significant digits are rounded to that many digits and no other rounding occurs. This is exactly the kind of numeric-semantics detail annotations cannot express. It stops short of saying anything about failure behavior for malformed input.

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 short sentences, each carrying distinct information: purpose, input format, precision policy, and exclusion. Purpose is front-loaded and nothing is redundant.

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 an output schema present, the description need not detail return values, and it still notes the result is returned as a string. Input format and rounding policy are fully covered. The only gap is the unexplained trace_level parameter, which is minor for an optional diagnostic field.

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 0%, so the description carries the full burden and does well on the required 'operands' parameter, spelling out that it is a list of numeric strings with no commas, units, or spaces. The optional 'trace_level' parameter is never mentioned, leaving one of two parameters entirely undocumented in both schema and description.

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

Purpose5/5

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

The description states a specific operation on a specific resource ('Decimal 정밀 곱셈') and names the return type, making it trivially distinguishable from core.add, core.sub, and core.div. An agent can tell what this tool does without opening the schema.

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?

It explicitly routes the agent away from this tool for tax and interest calculations ('세금이나 이자 계산에는 전용 도구를 쓴다'), which is a real exclusion against siblings like accounting.vat_add or finance.*. It does not, however, state when to prefer this over core.calc or the other core arithmetic tools, so routing among the core.* family is left to inference.

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

core.pipelineA
Read-onlyIdempotent

의존 관계(DAG)를 가진 도구 호출을 순서대로 실행하고 앞 단계 결과를 뒤 단계 입력으로 전달한다. steps 는 id, tool, args 목록(최대 50단계, 깊이 10)이며 args 에서 ${단계id.result.필드} 로 앞 결과를 참조한다. 실패한 단계의 하류는 skipped 가 되고 pipeline_id 로 재개할 수 있다. 서로 독립인 호출은 core.batch 를 쓴다.

NameRequiredDescriptionDefault
stepsYes
step_timeout_sNo
pipeline_timeout_sNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
orderYes
stepsYes
statusYes
pipeline_idYes
total_time_msYes

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations: hard limits (최대 50단계, 깊이 10), failure propagation semantics ('실패한 단계의 하류는 skipped'), and the resume mechanism are all disclosed, none of which readOnlyHint/idempotentHint convey. It does not, however, explain how the two timeout parameters interact or what the response contains on a partial failure, so it stops short of full behavioral coverage.

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 dense sentences, each adding distinct information: purpose, step schema and limits, reference syntax, failure/resume behavior, then the sibling hand-off. The differentiating constraint and the alternative are both front-loaded with no 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 nested-DAG orchestrator with a published output schema, the description covers the mechanics, limits, failure semantics, and the alternative tool, so an agent can construct a valid call. The omission of the timeout parameters' semantics is the remaining gap, but it is bounded since both have sane schema defaults.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load — and it does for the only required parameter, spelling out the {id, tool, args} shape and the ${단계id.result.필드} interpolation syntax that the schema does not express at all. step_timeout_s and pipeline_timeout_s (defaults 2/30) are never mentioned, leaving two of three parameters documented only by a bare title.

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

Purpose5/5

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

States a specific verb+resource ('의존 관계(DAG)를 가진 도구 호출을 순서대로 실행') and immediately scopes it against the sibling that does the opposite ('서로 독립인 호출은 core.batch 를 쓴다'). An agent can distinguish core.pipeline from core.batch, core.add, and core.pipeline_resume without opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit selection rule — use this tool when steps depend on each other, use core.batch when they are independent — and names the recovery path (pipeline_id 로 재개) that pairs with core.pipeline_resume. Both the when and the when-not are stated rather than inferred.

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

core.pipeline_resumeA
Read-onlyIdempotent

이전 core.pipeline 실행을 pipeline_id 로 지정하고 from_step 단계부터 다시 실행한다. from_step 앞쪽의 성공 단계는 결과를 재사용(reused)한다. 실행 기록은 약 10분 동안만 보관되어 만료되면 오류가 난다. 입력을 바꿔 다시 계산하려면 새로 core.pipeline 을 호출한다.

NameRequiredDescriptionDefault
from_stepYes
pipeline_idYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
orderYes
stepsYes
statusYes
pipeline_idYes
total_time_msYes

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: successful steps preceding from_step are reused rather than recomputed, execution records expire after roughly 10 minutes and then error out, which explains the idempotentHint. The readOnlyHint is consistent since this is a pure computation pipeline with no mutation of user data described.

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 short, front-loaded sentences with no filler, leading with the action and scope before the caveats. Slight room to tighten, but every sentence carries information.

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?

Covers lifetime/expiry, reuse semantics, and the alternative path; an output schema exists so return shape needn't be described. The remaining gap is the format and validation of from_step for a two-required-parameter tool.

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 0% (only bare titles), so the description must carry the burden. It gives the meaning of both parameters (pipeline_id = identifier of a prior run, from_step = restart boundary) but never specifies the expected format of from_step as a string, such as a step name versus an index, nor valid values.

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

Purpose5/5

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

States a specific verb and resource: re-executes a previous core.pipeline run identified by pipeline_id, beginning at from_step. It also distinguishes itself from the sibling core.pipeline by explaining that a fresh call is how you recompute with new inputs.

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

Usage Guidelines5/5

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

Explicitly tells the agent when to use it (resuming an existing execution) and when not to (use core.pipeline instead when inputs change), naming the alternative tool directly. No inference is required to route between the two.

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

core.solve_forA
Read-onlyIdempotent

역산: 읽기 전용 도구 tool 의 결과 필드 target_field 가 target 이 되도록 숫자 문자열 입력 variable 을 [lower, upper] 에서 이분법(Decimal)으로 찾는다. 예: 세후 월급에서 세전 월급 구하기. 구간 양 끝의 함수값 부호가 달라야 하며 단계별 함수는 가장 가까운 해와 residual 을 반환한다. 잔차가 tolerance(기본 0.5) 이내면 converged 가 true 이고 max_iter(기본 100)는 최대 200이다.

NameRequiredDescriptionDefault
toolYes
lowerYes
upperYes
targetYes
integerNo
max_iterNo
variableYes
argumentsYes
toleranceNo0.5
target_fieldYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
bracketYes
achievedYes
residualYes
solutionYes
convergedYes
iterationsYes
at_solutionYes
evaluationsYes

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations, the description discloses the bisection/Decimal method, the sign-change requirement, nearest-solution and residual return behavior, convergence tolerance defaults, and the max_iter cap of 200. It does not describe what happens when the sign condition fails, but most behavioral traits are covered.

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?

The description is compact, front-loads the core purpose, then adds an example, preconditions, and convergence details without filler. Every sentence contributes useful information.

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 complex 10-parameter tool with a nested arguments object, the description covers the main workflow and convergence behavior well enough to start, and the output schema covers return values. It remains incomplete because the arguments object, integer flag, and error behavior are not described.

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?

With 0% schema description coverage, the description must carry parameter meaning, and it does explain tool, variable, target_field, target, lower/upper, tolerance, and max_iter. It leaves important parameters like arguments and integer unexplained, so it is only partially compensating for the schema gap.

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 inverse-solving purpose: find a numeric-string variable via Decimal bisection so that another read-only tool's target_field equals target. It is clear and concrete, with an example, but it does not explicitly distinguish itself from nearby alternatives such as symbolic.solve or core.calc.

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?

The description implies when to use it through the inverse-calculation framing and the gross-from-net salary example, and it states key preconditions such as the target tool being read-only and the interval endpoints needing opposite signs. However, it does not explicitly name alternatives or say when not to use this tool.

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

core.subA
Read-onlyIdempotent

Decimal 정밀 뺄셈 a - b. a 와 b 는 쉼표, 단위, 공백 없는 숫자 문자열이며 결과는 result 문자열이다. 유효숫자 50자리 안에서 계산하고 별도 반올림은 없다. 순서에 주의한다(a 에서 b 를 뺀다).

NameRequiredDescriptionDefault
aYes
bYes
trace_levelNosummary

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceNo계산 근거(tool, formula, inputs, steps, output)
resultYes
truncatedNo

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing the 50-significant-digit working precision, the absence of rounding, and the input-string normalization requirement — real behavioral constraints an agent cannot infer from readOnlyHint/idempotentHint. It does not describe error behavior (e.g., what happens on malformed input), which keeps it short of a 5.

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 short sentences, purpose front-loaded, with the operand-order caveat placed last where it is most actionable. The clause noting the return is a 'result' string is largely redundant given an output schema exists.

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?

Annotations cover the safety profile and an output schema covers the return value, so the description only needs to add precision, rounding, and input-format constraints — which it does. The only real gap is the undocumented trace_level parameter.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the burden; it explains a and b substantively (digit strings without commas/units/spaces) and clarifies directionality (a minus b). The third parameter, trace_level, is never mentioned, leaving one parameter undocumented in both schema and description.

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

Purpose5/5

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

States a specific verb and resource ('Decimal 정밀 뺄셈 a - b') and pins the operand order, which cleanly separates it from siblings core.add, core.mul and core.div. An agent can identify the operation without opening the schema.

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?

Offers operational guidance in the form of input-format rules (no commas, units, or spaces) and an explicit warning about operand order. However, it never names an alternative (e.g., core.add, core.calc) or states when not to use this tool, so routing guidance is only implied.

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

crypto.carmichael_lambdaA
Read-onlyIdempotent

카마이클 함수 λ(n) = lcm(λ(p^k)) 를 구한다. n 은 1 이상 10^14 이하의 정수 문자열이며 시행 나눗셈으로 소인수분해하므로 한도를 넘으면 오류다. 결과 키는 lambda(정수 문자열)와 factorization 이다. λ(n) 은 φ(n) 의 약수이므로 둘을 혼동해 쓰지 않는다.

NameRequiredDescriptionDefault
nYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
lambdaYes
factorizationYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent, closed-world read, so the description focuses on value-adds: the hard input ceiling, the failure mode above it, and the method (trial division) that explains the performance bound. It does not mention cost or response format beyond the key names, keeping it just below full marks.

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 compact sentences ordered from purpose to input constraint to return keys to the sibling distinction, with no filler. Slightly dense but every sentence contributes information an agent needs.

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?

Even though an output schema exists, the description still names the result keys, and it covers the domain limit and error condition that the schema cannot express. Nothing essential is missing for a correct call, though a note on expected failure behavior for non-numeric input would round it out.

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

Parameters4/5

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

Schema coverage is 0% for the single parameter, so the description carries the burden and does so: it specifies that n is a string (not a number), the inclusive bounds 1 to 10^14, and the algorithmic reason for that bound. Only minor detail, such as handling of leading zeros or whitespace, is left unspecified.

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

Purpose5/5

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

The description states a specific computation with its formula (λ(n) = lcm(λ(p^k))), so there is no ambiguity about the resource involved. It also explicitly distinguishes itself from the nearest sibling, crypto.euler_totient, by noting that λ(n) divides φ(n) and that the two must not be confused.

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?

It gives concrete applicability constraints — n must be an integer string in [1, 10^14] and is factored by trial division — and warns that exceeding the range is an error. The φ-vs-λ warning functions as a when-not-to-use note, though it stops short of naming the alternative tool by name.

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

crypto.crtA
Read-onlyIdempotent

중국인의 나머지 정리로 연립합동식 x ≡ r_i (mod m_i) 의 해 x 를 구한다. residues, moduli 는 길이가 같은 정수 문자열 리스트이고 moduli 는 모두 양수이며 쌍별 서로소여야 한다. x 는 0 이상 modulus(법의 곱) 미만이다. 서로소가 아닌 법은 해가 있어도 거부한다.

NameRequiredDescriptionDefault
moduliYes
residuesYes

Output Schema

NameRequiredDescription
xYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
modulusYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already establish readOnly, idempotent, closed-world behavior, so the transparency bar is lower. The description adds meaningful behavioral detail beyond them: inputs must be equal-length string lists, moduli must be positive and pairwise coprime, non-coprime inputs are rejected, and the result is normalized into [0, modulus). That is a solid failure-mode disclosure, though it does not say how the rejection is surfaced.

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, each carrying information: the operation, the input constraints, the output range, and the rejection rule. The purpose statement comes first, so the definition is front-loaded. Minor redundancy between the coprime precondition and the rejection sentence keeps it from a 5.

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

Completeness5/5

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

An output schema exists, so the description need not explain return values, yet it still specifies the normalization range of x, which is exactly the detail an agent needs to interpret the result. Combined with the coprime requirement and the rejection rule, everything required to invoke the tool correctly is present.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter semantics and largely does: it explains that residues and moduli are equal-length integer string lists, that moduli must be positive and pairwise coprime, and that the returned x lies between 0 and the product of the moduli. The only gap is the absence of format examples or bounds guidance for very large integers.

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

Purpose5/5

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

The description names a specific verb and mathematical object ("중국인의 나머지 정리로 연립합동식 x ≡ r_i (mod m_i) 의 해 x 를 구한다") and pins down exactly what is computed. It is clearly distinguishable from siblings such as crypto.modinv, crypto.egcd, and crypto.modpow, which handle different number-theoretic operations.

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 description gives clear preconditions and an explicit exclusion: moduli must be pairwise coprime, and non-coprime moduli are rejected even when a solution exists. That tells an agent when this tool applies and when it will fail. It stops short of naming an alternative for the non-coprime case, so it is not a full 5.

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

crypto.egcdA
Read-onlyIdempotent

확장 유클리드 알고리즘으로 gcd(a, b) = ax + by 를 만족하는 gcd 와 Bezout 계수 x, y 를 구한다. a, b 는 정수 문자열(자릿수 한도 2048)이고 gcd 는 0 이상이다. 계수 쌍은 유일하지 않으며 이 알고리즘이 내는 한 쌍이다. 모듈러 역원이 목적이면 modinv 가 직접적이다.

NameRequiredDescriptionDefault
aYes
bYes

Output Schema

NameRequiredDescription
xYes
yYes
gcdYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered; the description adds genuinely non-obvious behavior: inputs are constrained to 2048-digit integer strings, the returned gcd is normalized to non-negative, and the Bezout coefficient pair is explicitly non-unique ('계수 쌍은 유일하지 않으며 이 알고리즘이 내는 한 쌍이다'). That non-uniqueness caveat is important for interpreting or comparing results, though the failure mode for inputs exceeding the digit limit is not described.

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 short sentences, front-loaded with what is computed, then constraints, then the non-uniqueness caveat, then the sibling routing. Every sentence carries information the agent cannot get from the schema or annotations.

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

Completeness5/5

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

An output schema exists, so return structure needn't be explained; the description instead covers what matters and isn't in the schema: input format/limits, output normalization (gcd ≥ 0), non-uniqueness of coefficients, and the alternative tool. For a 2-parameter pure function with full annotations, nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0% (bare titles 'A'/'B'), so the description must compensate — and it does, stating both parameters are integer strings with a 2048-digit cap. It does not clarify sign handling (e.g. whether negative operands are accepted or how the gcd normalizes for them), leaving a small gap given zero schema help.

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

Purpose5/5

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

States a specific verb and resource ('확장 유클리드 알고리즘으로 gcd(a, b) = a*x + b*y 를 만족하는 gcd 와 Bezout 계수 x, y 를 구한다') and names the identity it satisfies, which lets an agent distinguish it from crypto.gcd and crypto.lcm without opening the schema. The output is named explicitly (gcd plus the Bezout pair), so the purpose is unambiguous.

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?

Explicitly routes the agent to crypto.modinv when a modular inverse is the goal ('모듈러 역원이 목적이면 modinv 가 직접적이다'), which is the main competing sibling. It does not state when to prefer this over plain crypto.gcd (i.e. when only the gcd is needed), so the routing is clear but not exhaustive.

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

crypto.euler_totientA
Read-onlyIdempotent

오일러 토션트 φ(n) = n * Π(1 - 1/p) 를 구한다. n 은 1 이상 10^14 이하의 정수 문자열이며 시행 나눗셈으로 소인수분해하므로 한도를 넘으면 오류다. phi 는 정수 문자열, factorization 은 소수 문자열을 지수에 대응시킨 맵이다. RSA 크기의 수에는 쓸 수 없다.

NameRequiredDescriptionDefault
nYes

Output Schema

NameRequiredDescription
phiYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
factorizationYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already carry readOnly, idempotent and closed-world hints, yet the description adds real behavioral context: trial-division factoring, an error when n exceeds the limit, and the shape of the result. The note that it is unusable at RSA scale is exactly the kind of non-obvious caveat annotations cannot express.

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 dense sentences: the formula and purpose first, then input constraint, then output shape, then the practical limitation. No filler and the most decision-relevant information is front-loaded.

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

Completeness5/5

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

For a single-parameter read-only math tool, the description covers purpose, valid input domain, failure mode, return structure and a practical limitation. The output schema exists, but the extra explanation of phi and the factorization map costs nothing and adds clarity.

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

Parameters5/5

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

Schema coverage is 0% – the schema only says 'n: string'. The description fully compensates by specifying that n is an integer string, its inclusive bounds 1 to 10^14, and that out-of-range input is an error.

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 a specific verb and resource ('오일러 토션트 φ(n) = n * Π(1 - 1/p) 를 구한다'), giving the exact function and its formula. It does not explicitly differentiate itself from its closest sibling, crypto.carmichael_lambda, but the formula itself makes the distinction unambiguous.

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?

It states a hard input domain (1 ≤ n ≤ 10^14) and an explicit exclusion ('RSA 크기의 수에는 쓸 수 없다'), which effectively tells the agent when not to call it. It stops short of naming an alternative tool for the large-number case, so the routing is implied rather than complete.

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

crypto.gcdA
Read-onlyIdempotent

두 정수의 최대공약수(GCD)를 구한다. a, b 는 정수 문자열(부호는 무시, 자릿수 한도 2048)이고 결과 result 는 정수 문자열이다. 둘 다 0 이면 0. 소수점이나 쉼표가 든 값은 거부하며, 세 수 이상은 결과를 다시 넣어 이어서 호출한다.

NameRequiredDescriptionDefault
aYes
bYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds real behavioral detail beyond them: sign is ignored, a 2048-digit limit applies, both-zero returns 0, and decimal points or commas are rejected. It leaves minor behavior implicit, such as whether the result is always non-negative.

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 no filler, and the core operation plus input contract are front-loaded ahead of edge cases and chaining advice. The final sentence bundles two ideas (rejection rules and multi-number chaining) but stays compact.

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

Completeness5/5

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

For a two-parameter arithmetic tool with an output schema already documenting the return, the description covers everything an agent needs: input encoding, limits, rejection rules, the degenerate zero case, and how to extend beyond two operands.

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

Parameters4/5

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

With 0% schema description coverage, the description carries the full burden and does so: it explains that a and b are integer-encoded strings, that signs are dropped, that the digit limit is 2048, and what input shapes are rejected. Only the exact output encoding of edge cases beyond both-zero is unspecified.

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 ('두 정수의 최대공약수(GCD)를 구한다') so the operation is unambiguous. It does not distinguish itself from nearby siblings such as crypto.lcm or crypto.egcd, so an agent must infer the boundary from names alone.

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 concrete usage direction: exactly two operands, and for three or more numbers the caller must chain by re-feeding the result. It does not state when to prefer crypto.egcd or crypto.lcm, so it is clear context without explicit exclusions.

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

crypto.hashA
Read-onlyIdempotent

문자열을 UTF-8 로 인코딩해 해시를 소문자 16진수 hex 로 반환한다. algorithm 은 sha256(기본) | sha512 | blake2b(64바이트 출력)이며 대소문자를 구분하지 않는다. 무결성 지문 확인용이고, 솔트와 반복이 없어 비밀번호 저장에는 쓰지 않는다.

NameRequiredDescriptionDefault
dataYes
algorithmNosha256

Output Schema

NameRequiredDescription
hexYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, closed-world), and the description adds genuinely new behavior: the encoding applied to input, the exact hex casing of output, the blake2b 64-byte output length, and the security limitation of unsalted/uniterated hashing. It does not state error behavior for unsupported algorithm values, which keeps it from a 5.

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?

Three sentences, front-loaded with output format, then algorithm options, then the usage caveat. No filler or restatement of the tool name.

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?

An output schema exists, so return details need not be restated, and the description nevertheless pins down the hex format. Only edge cases (e.g., unsupported algorithm names, empty input) are unaddressed.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it does: algorithm's allowed values, its default (sha256), its case-insensitivity, and the differing output size for blake2b. The data parameter gets only an implied meaning (string, UTF-8 encoded) rather than an explicit statement.

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

Purpose5/5

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

States a specific verb (hash) and resource (a UTF-8 string) plus the exact output form (lowercase hex). It is trivially distinguishable from the neighboring crypto tools, which are number-theoretic (gcd, modinv, modpow) or certificate-related (crypto.crt).

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?

Explicitly frames the tool as an integrity-fingerprint function and explicitly excludes password storage ("솔트와 반복이 없어 비밀번호 저장에는 쓰지 않는다"), which is strong when/when-not guidance. It does not name an alternative to use for password hashing, but no sibling offers one, so the gap is minor.

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

crypto.is_primeA
Read-onlyIdempotent

Miller-Rabin 으로 소수 여부 is_prime(bool)을 판정한다. n 은 정수 문자열(자릿수 한도 2048)이며 2 미만과 음수는 False. 약 3.8e18 미만은 고정 증인이라 결정적이고, 그 이상은 무작위 증인 k 회(기본 20, 1~256)라 확률적이어서 True 가 소수 증명은 아니다. 소인수분해는 하지 않는다.

NameRequiredDescriptionDefault
kNo
nYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
is_primeYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint, and the description adds substantial behavior beyond them: the determinism threshold, the probabilistic tail with witness count, the 2048-digit input ceiling, edge-case handling (n < 2 and negatives return False), and the explicit caveat that True is not a primality proof.

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?

A single dense paragraph with zero filler — algorithm, input format, edge cases, determinism threshold, and caveats in that order. Every clause carries information an agent needs.

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

Completeness5/5

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

For a two-parameter read-only predicate with an output schema, nothing is missing: input format, limits, edge cases, and the interpretation of a True result are all covered, so the agent can call it and read the boolean correctly.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry the load and it does: n is specified as an integer string with a digit limit and defined behavior for values below 2 and negatives; k is given a default (20), a valid range (1–256), and a meaning (random witness count). That fully compensates for the undocumented schema.

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

Purpose5/5

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

States a specific verb+resource (판정한다 / 소수 여부 is_prime(bool)) plus the algorithm (Miller-Rabin), and explicitly excludes a neighboring capability with '소인수분해는 하지 않는다', so an agent can separate it from a factorization tool without opening the schema.

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?

Explains precisely when the result is trustworthy: deterministic below ~3.8e18 via fixed witnesses, probabilistic above that with k random witnesses, and that True is not a proof of primality. It doesn't name an alternative sibling tool, which keeps it from a 5.

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

crypto.lcmA
Read-onlyIdempotent

두 정수의 최소공배수(LCM)를 구한다. a, b 는 정수 문자열(부호는 무시, 자릿수 한도 2048)이고 큰 정수도 정확히 계산해 result 를 정수 문자열로 돌려준다. 둘 중 하나가 0 이면 0 이다. 분수의 통분에는 분모들의 LCM 을 쓰되, 소수 입력은 받지 않는다.

NameRequiredDescriptionDefault
aYes
bYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, idempotent, closed-world), and the description adds behavior those annotations cannot express: sign is ignored, inputs are capped at 2048 digits, big integers are computed exactly, and either operand being 0 yields 0. What's missing is any note on error behavior for malformed or over-limit input.

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 short sentences with the core operation front-loaded, then constraints, then the zero edge case, then the use case. Dense and waste-free, though the fraction-reduction sentence is slightly tangential relative to the core definition.

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 an output schema present, return-format explanation is optional (the description mentions the integer-string result anyway), and the input contract, size limit and zero case are all stated. Only failure modes for invalid input are left unspecified.

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

Parameters4/5

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

Schema coverage is 0% (only bare 'A'/'B' titles), so the description must carry the load — and it does, stating both a and b are integer strings, that signs are ignored, and the 2048-digit limit. It doesn't say whether leading zeros or whitespace are tolerated, keeping it just below a 5.

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?

Names a specific verb+resource ('두 정수의 최소공배수(LCM)를 구한다') and pins down input/output types. It is clearly distinct from crypto.gcd / crypto.crt in practice, but never explicitly contrasts with those siblings, so an agent must infer the boundary.

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 a concrete usage context (fraction common denominators via the LCM of denominators) and one explicit exclusion ('소수 입력은 받지 않는다'). It does not name an alternative tool to use when the LCM is not what's wanted, so it stops short of full when/when-not routing.

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

crypto.modinvA
Read-onlyIdempotent

모듈러 역원 a^-1 mod m 을 구한다. a, m 은 정수 문자열(자릿수 한도 2048)이고 m 은 2 이상이어야 한다. result 는 0 이상 m 미만이며, gcd(a, m) 이 1 이 아니면 역원이 없어 오류가 난다. a 가 0 이거나 m 과 약수를 공유하면 역원이 없다.

NameRequiredDescriptionDefault
aYes
mYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral details beyond annotations: the 2048-digit limit, m >= 2 requirement, result range 0 <= result < m, and specific error conditions when gcd(a,m) != 1 or a is 0.

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?

The description is short and front-loads the core operation before constraints and error behavior. The final sentence partially restates the gcd condition already covered earlier, which is a minor redundancy but not harmful.

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?

An output schema exists and annotations cover the safety profile, so the description need not explain return values or read-only behavior. It provides the key input constraints, error conditions, and result bounds needed to call the tool correctly, with only sibling-routing guidance missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it does: both a and m are integer strings with a 2048-digit limit, and m must be at least 2. It also clarifies the result range and the gcd precondition that governs whether a has an inverse, though edge cases such as negative a are not explicitly addressed.

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 mathematical resource: it computes the modular inverse a^-1 mod m. This is clear and distinct from siblings such as crypto.modpow or crypto.egcd, though it does not explicitly name alternatives to reinforce the distinction.

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

Usage Guidelines2/5

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

The description gives mathematical preconditions (m >= 2, gcd(a,m)=1) but does not explain when to choose this tool over related siblings like crypto.modpow or crypto.egcd. There is no explicit when-to-use or when-not-to-use guidance beyond the validity conditions.

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

crypto.modpowA
Read-onlyIdempotent

모듈러 거듭제곱 base^exponent mod modulus 를 구한다. 세 인자는 정수 문자열(자릿수 한도 2048)이며 modulus 는 1 이상, exponent 는 0 이상이어야 한다. result 는 0 이상 modulus 미만의 정수 문자열이다. 음수 지수로 역원을 구하려면 modinv 를 쓴다.

NameRequiredDescriptionDefault
baseYes
modulusYes
exponentYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already establish that the operation is a read-only, idempotent, non-open-world function, so the safety profile is covered. The description adds constraints beyond the annotations: a 2048-digit limit per argument, modulus >= 1, exponent >= 0, and a guaranteed result range of [0, modulus). This is meaningful context, but it does not describe error behavior when the digit limit or the domain constraints are violated.

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?

The description is four sentences, ordered from purpose to input format, output range, and alternative. Every sentence adds new information with no restatement of the tool name or title.

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?

An output schema exists, and the description still usefully gives the result domain; the input format and limits fully cover a 3-required-parameter tool. It is nearly complete and lacks only error or failure behavior for out-of-range inputs, which is minor.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does: it declares that all three arguments are integer strings, imposes a 2048-digit limit, and gives per-argument domain constraints (modulus >= 1, exponent >= 0). It does not separately explain what base or exponent means beyond their names, which are self-describing, so a 4 rather than a 5 is appropriate.

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

Purpose5/5

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

The description names a precise mathematical operation and spells out the exact formula (base^exponent mod modulus), so the agent knows exactly what is computed without opening the schema. It also distinguishes itself from crypto.modinv by assigning negative-exponent inverse operations to that sibling.

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 final sentence gives an explicit exclusion plus the alternative tool ('for inverse with negative exponent, use modinv'), which directly disambiguates it from the closest sibling. It does not discuss broader routing versus other modular-arithmetic siblings such as crypto.crt or crypto.egcd, but that absence is minor for a pure function.

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

datetime.add_business_daysA
Read-onlyIdempotent

start_date 에 영업일 기준으로 days 를 더한(음수면 뺀) 날짜 end_date 를 YYYY-MM-DD 로 반환한다. 토·일, holidays 패키지의 country(기본 KR) 공휴일, extra_holidays 를 건너뛰고 시작일은 세지 않는다. days 는 절대값 100000 이하이며, 0 이면 시작일이 휴일이어도 그대로 반환한다.

NameRequiredDescriptionDefault
daysYes
countryNoKR
start_dateYes
extra_holidaysNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
end_dateYes

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, and the description still adds meaningful behavior: weekend and holiday skipping, KR default country, exclusion of the start date from the count, the absolute-value cap of 100000, and the special days=0 return. It does not discuss invalid country codes or error behavior, but its disclosure of behavior is well above the annotation baseline.

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 front-loaded with the return value and its format, then the skip rules, then the edge cases. Every sentence carries substantive information, though the enumeration of rules in the middle sentence is somewhat hard to parse.

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 an output schema present, the description need not explain return values, yet it still names the output field and format. All four parameters and the key edge cases are covered, so the description is close to complete; it does not state what happens when the inputs are invalid.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the full burden of explaining parameters; it does explain all four: start_date as the base date, days as a signed integer with a 100000 cap and defined 0-behavior, country as the holidays-package country code defaulting to KR, and extra_holidays as additional dates to skip. The remaining gap is that it never states the expected string format for start_date, extra_holidays, or country codes.

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: it adds signed business days to start_date and returns end_date in YYYY-MM-DD format. The business-day and holiday-skipping semantics make it clearly distinct from datetime.diff or datetime.count_business_days, but no sibling is named explicitly, so the definition does not achieve the highest level of differentiation.

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?

The description does not explicitly state when to use this tool versus alternatives such as datetime.diff or datetime.count_business_days, and it names no exclusions. The usage is strongly implied by the precise semantics, which is the minimum viable level.

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

datetime.ageA
Read-onlyIdempotent

만 나이(한국 법정 연령)를 years, months, days 정수로 계산한다. 날짜는 YYYY-MM-DD 이고 생일 당일에 한 살이 오른다. reference_date 를 생략하면 서버의 오늘 날짜를 쓰므로 실행일마다 결과가 달라진다. 기준일이 생일보다 앞서면 오류이며 세는나이는 계산하지 않는다.

NameRequiredDescriptionDefault
birth_dateYes
reference_dateNo

Output Schema

NameRequiredDescription
daysYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
yearsYes
monthsYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/closed-world, and the description adds genuinely non-obvious behavior: omitting reference_date makes results depend on the server's execution date, the birthday boundary rule (age increments on the birthday itself), and the error condition. This is exactly the kind of context annotations cannot carry.

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, each carrying distinct information (purpose, format/boundary rule, default behavior, error/scope exclusion), with purpose front-loaded. Dense but no filler; the 세는나이 exclusion could be framed more directly as guidance.

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?

Output schema exists, so return shape need not be described. Inputs, default, boundary rule, and error case are all covered; the only real gap is the timezone behind the server-default date.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it does: it specifies the YYYY-MM-DD format for both dates, that reference_date is optional and defaults to the server's today, and the invalid-ordering error. It stops short of stating the server timezone, which matters for the default.

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

Purpose5/5

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

States a specific computation (Korean legal age in years/months/days as integers) and scopes it against the obvious confusable concept by declaring 세는나이 is not computed. An agent can tell this apart from datetime.diff or datetime.day_count without opening any schema.

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 clear operating context: reference_date may be omitted (server today is used), and a reference date earlier than the birth date is an error. It does not explicitly name a sibling alternative for the counting-age case, only excluding it, so it stops short of full when/when-not routing.

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

datetime.count_business_daysA
Read-onlyIdempotent

start 와 end 사이의 영업일 수 count 를 정수로 센다. 날짜는 YYYY-MM-DD 이고 양 끝 날짜를 포함하며 토·일과 holidays 패키지의 country(기본 KR) 공휴일은 제외한다. end 가 start 보다 앞서거나 구간이 100000일을 넘으면 오류이고, 임시 휴일을 더하는 입력은 없다.

NameRequiredDescriptionDefault
endYes
startYes
countryNoKR

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
countYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnly/idempotent/openWorld=false; the description adds genuinely new behavioral facts: both endpoints are inclusive, Saturday/Sunday plus the holidays package's country calendar (default KR) are excluded, and two concrete error conditions (reversed range, range over 100000 days). It also discloses a limitation — there is no input to add ad-hoc temporary holidays — which prevents a wrong call.

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 sentences, front-loaded with the action and return type, then the exclusion rules, then the error/limitation clause. No filler, though the final clause packs error conditions and the missing-holiday-input note into one dense sentence.

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

Completeness5/5

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

For a 3-param, read-only, idempotent computation with an output schema, the description covers everything an agent needs: input format, inclusivity, holiday policy and default, error guards, and the absence of a custom-holiday parameter. Return shape is handled by the output schema, so nothing material is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it does: start/end are YYYY-MM-DD and inclusive, and country selects the holidays-package calendar with a stated default of KR. All three parameters get semantics the schema alone does not provide.

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

Purpose5/5

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

States a specific verb+resource ('영업일 수 count 를 정수로 센다') with the exact scope: between start and end, inclusive of both endpoints, excluding weekends and country holidays. This clearly separates it from datetime.add_business_days (which shifts a date) and datetime.day_count (which counts calendar days) without needing to open any schema.

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 defines the operating rules (inclusive endpoints, weekend/holiday exclusion, default KR) and error boundaries (end before start, span > 100000 days), which implicitly tells the agent when this tool fails. However, it never explicitly routes the agent away from sibling alternatives like datetime.day_count or datetime.add_business_days, nor states when to prefer another tool.

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

datetime.day_countA
Read-onlyIdempotent

이자 계산용 일수 days(정수)와 연 환산 비율 year_fraction(Decimal 문자열)을 구한다. convention 은 30/360(말일 31일 보정만 적용, 2월 말일 규칙 없음) | ACT/365 | ACT/ACT(연 경계별 윤년 분모) | ACT/360 이며 날짜는 YYYY-MM-DD, end 는 start 이후여야 한다. 비율은 반올림 없이 유효 50자리까지 나온다.

NameRequiredDescriptionDefault
endYes
startYes
conventionYes

Output Schema

NameRequiredDescription
daysYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
year_fractionYes

TDQS

A4.1/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), yet the description adds substantial behavior: output precision capped at 50 significant digits with no rounding, output types (integer vs Decimal string), and the exact 30/360 variant (31st end-of-month adjustment only, no February rule) plus per-year-boundary leap denominators for ACT/ACT. These are real implementation details an agent could not infer. Minor gap: no error/edge behavior for equal or reversed dates beyond 'end must be after start'.

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 sentences, front-loaded with what is returned, followed by the convention taxonomy and the date constraint. Dense but every clause is load-bearing; the parenthetical convention qualifiers are exactly the disambiguation needed.

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

Completeness5/5

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

For a 3-required-param calculation tool with an output schema (so return structure needn't be explained, though types are still noted), the description supplies output meaning, convention semantics, date format, and input constraint. An agent can call it correctly without opening anything else.

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

Parameters5/5

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

Schema description coverage is 0% and the convention parameter has no enum, so the description carries the full burden — and it does: all four convention values are enumerated with their distinguishing semantics, the date format YYYY-MM-DD is given for start/end, and the start<end ordering is stated. Nothing about the three required parameters is left undocumented.

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 result set: computes interest-accrual day count (integer days) and annualized year_fraction (Decimal string), which is far more precise than a generic 'date difference'. It never names a sibling such as datetime.diff to draw the boundary, so it falls short of the top mark.

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?

The domain anchor ('이자 계산용', for interest calculation) implies the intended use case, and the ordering constraint that end must follow start is stated. However, there is no explicit guidance on when to choose this over datetime.diff or the business-day tools, and no exclusions.

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

datetime.diffA
Read-onlyIdempotent

두 날짜의 차이를 unit(days | weeks | months | years) 단위의 정수 문자열 value 로 돌려준다. 날짜는 YYYY-MM-DD 이다. weeks 는 일수를 7 로 나눈 몫(내림), months 와 years 는 가득 찬 달과 해만 세며 end 가 start 보다 앞서면 음수이다. 소수 단위나 남는 일수는 주지 않는다.

NameRequiredDescriptionDefault
endYes
unitYes
startYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
valueYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), and the description adds real computational semantics beyond them: weeks floors by 7, months/years count only complete periods, and the sign flips when end precedes start. It does not mention error behavior for malformed dates or unsupported units.

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 dense sentences, front-loaded with the return contract and followed by unit semantics and the sign rule. No filler, though the unit definitions and the date format are stated in separate sentences that could be tightened.

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?

An output schema exists, and the description already states the return is an integer string, so return-value explanation is not required. Combined with annotations covering safety and the description covering all three parameters, the definition is nearly complete; only invalid-input behavior is unaddressed.

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

Parameters4/5

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

Schema coverage is 0% and no parameter has an enum, so the description carries the full burden — and it does so well, fixing the YYYY-MM-DD format for start/end and enumerating the unit domain (days | weeks | months | years) with per-unit computation rules. It stops short of naming each parameter's role explicitly (start vs end other than via the negative-case remark).

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+resource (difference between two dates) and enumerates the four output units, so the agent knows exactly what is computed. It does not differentiate from close siblings such as datetime.day_count or datetime.age, which likely overlap, so an agent must infer which to pick.

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?

Usage is only implied by the unit semantics; there is no explicit statement of when to choose datetime.diff over datetime.day_count or datetime.age, nor any note on invalid inputs. Adequate but leaves routing to inference.

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

datetime.fiscal_quarterA
Read-onlyIdempotent

기준일 as_of(YYYY-MM-DD)가 속한 회계분기 번호 quarter(1~4)와 시작·종료일을 구한다. country(KR | US | JP | UK, 기본 KR)의 회계연도 시작일에서 3개월씩 끊으며 시작일의 일자를 유지한다(UK 는 분기마다 6일 시작). 부가세 신고 등 법정 신고기한은 계산하지 않는다.

NameRequiredDescriptionDefault
as_ofYes
countryNoKR

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
countryYes
quarterYes
end_dateYes
start_dateYes
fiscal_yearYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent and closed-world, so safety is covered. The description adds real behavioral rules beyond that: quarters are cut in 3-month steps from each country's fiscal-year start, the start day-of-month is preserved, and UK quarters begin on the 6th. It does not disclose edge-case handling (e.g. day-of-month overflow such as a 31st start), which for a date-arithmetic tool is the remaining risk.

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?

Three dense sentences with no filler: output definition, computation rule, then the exclusion. The returned value is front-loaded and the caveat is placed last where it belongs.

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?

An output schema exists, so the description needn't spell out the return shape, and the country/as_of semantics are fully covered. The one gap is that per-country fiscal-year start dates (KR Jan 1, US Oct 1, JP Apr 1, UK Apr 6) are referenced but never listed, leaving the agent to rely on the implementation for the actual anchors.

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

Parameters5/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 load and does so: as_of is defined as a YYYY-MM-DD reference date, and country is enumerated inline (KR | US | JP | UK) with a stated default of KR — information the schema's bare string types do not provide.

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

Purpose5/5

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

States a specific verb (구한다) and resource (회계분기), plus exactly what is returned: quarter number 1~4 and start/end dates. Naming '분기' versus the sibling datetime.fiscal_year makes the scope boundary legible without opening either schema.

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 clear applicability context via the country parameter (fiscal-year start per jurisdiction, default KR) and an explicit exclusion: statutory filing deadlines such as VAT reporting are not computed. It stops short of naming the alternative tool (e.g. datetime.tax_period_kr) that would handle those deadlines, so the 'use instead' half of the guidance is only implied.

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

datetime.fiscal_yearA
Read-onlyIdempotent

기준일 as_of(YYYY-MM-DD)가 속한 회계연도의 라벨 fiscal_year 와 시작·종료일을 구한다. country 는 KR | US(1/112/31), JP(4/1다음 해 3/31), UK(4/6~다음 해 4/5)이며 라벨은 시작일이 속한 해이다. 기업별 결산기는 반영하지 않으므로 고정 국가 기준 연도 판정에만 쓴다.

NameRequiredDescriptionDefault
as_ofYes
countryNoKR

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
countryYes
end_dateYes
start_dateYes
fiscal_yearYes

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses the actual country calendars (KR/US 1/1~12/31, JP 4/1~3/31, UK 4/6~4/5) and the labeling convention (label = year containing the start date), plus a real limitation about company-specific fiscal year ends. That is meaningful behavioral context; only the default-country behavior is left implicit in the schema.

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 sentences, front-loaded with the core action and result, then the country rules, then the exclusion. Dense but every clause carries information (period boundaries, label rule, limitation); only the inline country list makes it slightly run-on.

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

Completeness5/5

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

An output schema exists so return values need not be explained, yet the description still names the returned label and start/end dates. Combined with the calendar rules, label convention, and scope caveat, an agent has everything needed to call it correctly.

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

Parameters5/5

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

Schema description coverage is 0% and the schema declares no enums, so the description carries the full burden — and it does: it gives the as_of format (YYYY-MM-DD) and enumerates the accepted country values with their exact period boundaries. This adds information the schema does not contain at all, not a restatement of it.

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

Purpose5/5

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

States a specific verb and resource ('as_of가 속한 회계연도의 라벨 fiscal_year 와 시작·종료일을 구한다') and names the returned fields, so it is immediately distinguishable from datetime.fiscal_quarter and the rest of the datetime family. No ambiguity about whether it returns a date, a label, or both.

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?

Explicitly bounds applicability with '기업별 결산기는 반영하지 않으므로 고정 국가 기준 연도 판정에만 쓴다', telling the agent when this tool is the wrong choice. It does not, however, name the sibling alternative (e.g. datetime.fiscal_quarter or datetime.tax_period_kr) that an agent should reach for in the excluded case.

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

datetime.lunar_holidayA
Read-onlyIdempotent

음력 명절을 양력 solar_date 로 환산한다. name 은 seollal(설날), jeongwol_daeboreum(정월대보름), buddhas_birthday(부처님오신날), dano(단오), chilseok(칠석), chuseok(추석), seotdal_geumum(섣달그믐)이고 year 는 음력년(20202030)이라 섣달그믐은 이듬해 양력 12월에 나온다. 윤달은 쓰지 않으며 연휴와 대체공휴일은 계산하지 않는다.

NameRequiredDescriptionDefault
nameYes
yearYes

Output Schema

NameRequiredDescription
nameYes
yearYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
lunar_dayYes
solar_dateYes
lunar_monthYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent and closed-world, so the bar is low; the description still adds real behavioral context by bounding the year range to 2020~2030, stating leap months are unsupported, and warning that substitute holidays and holiday spans are not computed. Those are exactly the surprises an agent would otherwise hit.

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?

Two dense sentences with zero filler, and the core conversion purpose is front-loaded before constraints. Slightly run-on for a reader, but every clause (enum list, year range, leap-month exclusion, no-substitute-holidays) earns its place.

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?

An output schema exists, so return values need not be explained, and the description covers the parameters, range limit, and known exclusions. The only residual gap is behavior on invalid names or out-of-range years, which is not stated but is likely enforced by the server.

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

Parameters5/5

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

Schema description coverage is 0% and there are no enums, so the description carries the entire burden: it lists all seven valid name values with Korean glosses and defines year as the lunar year with its range. It also explains the non-obvious edge case that seotdal_geumum returns a solar date in the following January/February.

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 ('음력 명절을 양력 solar_date 로 환산한다') and is clearly narrower than the generic datetime.lunar_to_solar / solar_to_lunar siblings, since it operates on a fixed set of named holidays. It never explicitly names those siblings, but the enumerated holiday list makes the scope unambiguous.

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?

Usage is only implied through the enumerated names and the 2020~2030 range; there is no explicit 'use this when X, use lunar_to_solar when Y' routing. The exclusion of 윤달 and 연휴/대체공휴일 implicitly says when not to reach for this tool, but it is never framed as guidance.

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

datetime.lunar_to_solarA
Read-onlyIdempotent

음력 날짜를 양력 solar_date(YYYY-MM-DD)로 바꾼다. lunar_year 는 20202030, lunar_month 는 112, lunar_day 는 1~30 정수이고 윤달이면 is_leap=True 를 준다. 그 해에 없는 윤달이나 달 길이를 넘는 일자는 오류이며 범위 밖 연도는 지원하지 않는다.

NameRequiredDescriptionDefault
is_leapNo
lunar_dayYes
lunar_yearYes
lunar_monthYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
solar_dateYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and closed-world, so the description correctly focuses on the failure surface instead: nonexistent leap months, day lengths exceeding the actual month, and unsupported years all raise errors rather than silently clamping. That is genuinely useful behavior no annotation conveys.

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?

Three sentences, front-loaded with the transformation and output format, then parameter constraints, then error semantics. Every clause adds information; there is no filler or restatement of the tool name.

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?

An output schema exists and the description still names the output format, annotations cover the safety profile, and all four parameters plus failure modes are addressed — enough for correct invocation. It stops short of noting the calendar system assumed or cross-referencing datetime.solar_to_lunar/datetime.lunar_holiday for related tasks.

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

Parameters4/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 and mostly succeeds: it bounds lunar_month to 1–12 and lunar_day to 1–30, states lunar_year is restricted to a supported year window, and explains is_leap must be True only for an actual leap month. The only gap is that is_leap's default (false) behavior is left implicit.

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

Purpose5/5

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

The description uses a specific verb and resource (음력 날짜를 양력으로 변환) and names the output format solar_date(YYYY-MM-DD), so an agent knows exactly what comes back. It is clearly the inverse of the sibling datetime.solar_to_lunar, which an agent can infer from the direction stated.

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?

Usage is only implied: it tells you the tool converts lunar input, so the agent must infer to use datetime.solar_to_lunar for the opposite direction. There is no explicit when-to-use / when-not-to-use routing statement, though the error conditions (nonexistent leap month, out-of-range day, unsupported year) do implicitly define invalid invocations.

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

datetime.payroll_periodA
Read-onlyIdempotent

as_of(YYYY-MM-DD)가 속한 월 단위 급여 정산 기간의 period_start, period_end 를 구한다. start_day(128, 기본 1)일에 시작해 다음 달 start_day 전날에 끝난다. 지급일이 아닌 산정 기간이며 2931일 시작은 지원하지 않는다.

NameRequiredDescriptionDefault
as_ofYes
start_dayNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
period_endYes
period_startYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world, and the description goes beyond them by spelling out the exact interval rule (start on start_day, end the day before next month's start_day) and the hard constraint that 29–31 is unsupported. Missing is what happens on an invalid start_day (error vs clamp), which keeps it from a 5.

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 compact sentences ordered as output-what → rule → caveat, with no filler. Slight density cost comes from packing the range, default and unsupported-case into one clause, but nothing is wasted.

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 only 2 parameters, no output schema text needed and annotations covering safety, the description is essentially complete for correct invocation. A note on invalid start_day handling or on whether as_of is clamped would close the remaining edge case.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry both parameters, and it largely does: as_of is shown as YYYY-MM-DD and start_day is bounded to 1~28 with default 1 plus its effect on the interval end. The only redundancy is restating the default already present in the schema.

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

Purpose5/5

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

Starts with a precise verb-and-resource statement: it computes period_start and period_end of the monthly payroll settlement period containing as_of. An agent immediately knows this is a payroll-period boundary calculator, distinct from generic date arithmetic or tax-period siblings.

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 closing sentence '지급일이 아닌 산정 기간이며' pre-empts the most likely misuse (treating the result as a pay date) and states an explicit unsupported case (start_day 29~31). It does not name a sibling alternative, so it stops short of a 5.

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

datetime.solar_termsA
Read-onlyIdempotent

양력 year 의 24절기 이름과 양력 날짜 24개를 입춘부터의 순서로 반환한다. 연도별 계산이 아닌 고정 일자표이므로 모든 연도에 같은 월일이 나오고 실제 절기일과 하루 어긋날 수 있다. 소한·대한은 같은 해 1월 날짜이며 절기 시각이 필요한 용도에는 쓰지 않는다.

NameRequiredDescriptionDefault
yearYes

Output Schema

NameRequiredDescription
yearYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
termsYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.5/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations: it explains that the result is a fixed date table, not a per-year astronomical calculation, so month/day values repeat across years and can differ from actual solar-term dates by a day. It also clarifies the January terms and warns against time-specific use.

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?

Three tight sentences, front-loaded with the return behavior and followed by the key caveat and exclusion. Every sentence adds relevant information with no waste.

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

Completeness5/5

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

An output schema exists, so return-value structure need not be explained in prose. Annotations already cover read-only/idempotent/open-world behavior, and the description supplies the key caveats an agent needs in order to call this correctly.

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?

There is one parameter with 0% schema description coverage, so the description must carry the meaning. It clarifies that year is a Gregorian/solar year rather than lunar, which is useful, but it does not specify an accepted range or format for the integer year.

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

Purpose5/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: it returns the 24 solar-term names and Gregorian dates for a given year, ordered from Ipchun. This clearly distinguishes it from sibling lunar/solar conversion and holiday tools by specifying solar terms rather than lunar dates or holidays.

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?

It gives a clear usage context and an exclusion: do not use it when precise solar-term times are needed, because the table is fixed and may be off by one day. It does not explicitly name an alternative tool for precise astronomical solar-term timing, so it falls short of a full when-to-use/when-not/alternatives guideline.

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

datetime.solar_to_lunarA
Read-onlyIdempotent

양력 날짜를 음력 년·월·일(lunar_year, lunar_month, lunar_day)과 윤달 여부 is_leap 으로 바꾼다. 입력은 YYYY-MM-DD 이고 내장 조견표의 음력 20202030년에 해당하는 2020-01-252031-01-22 만 지원하며 범위 밖은 오류이다. 그 밖의 연도 음력 계산에는 쓸 수 없다.

NameRequiredDescriptionDefault
solar_dateYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
is_leapYes
lunar_dayYes
lunar_yearYes
lunar_monthYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds substantive context beyond them: the calculation is backed by a built-in lookup table, has a hard date window, and raises an error outside it. It doesn't describe return formatting or precision, but the output schema covers that.

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?

Three tight sentences: what it produces, the input format and supported window, then the limitation. The constraint is front-loaded ahead of the caveat, and no sentence is redundant.

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

Completeness5/5

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

For a single-parameter conversion with a rich output schema, everything an agent needs is present: input syntax, valid range, failure behavior, and the explicit scope limitation. Return-value semantics are correctly left to the output schema.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter, and it does: it fixes the input format as YYYY-MM-DD and bounds it with the exact valid date range. It stops short of discussing timezone or malformed-string handling, so not a full 5.

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

Purpose5/5

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

States a specific verb and both endpoints of the conversion (solar date → lunar year/month/day plus is_leap), naming the exact output fields. The direction of conversion unambiguously separates it from the sibling datetime.lunar_to_solar without needing either schema.

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 supported window (2020-01-25 ~ 2031-01-22, lunar 2020–2030) and states that out-of-range input is an error and that other years cannot be calculated. The only gap is that it never names datetime.lunar_to_solar as the inverse alternative, but the when/when-not conditions themselves are fully stated.

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

datetime.tax_period_krA
Read-onlyIdempotent

as_of(YYYY-MM-DD)가 속한 한국 소득세 과세기간(소득세법 제5조, 1/1~12/31)의 연도 tax_year 와 경계일을 반환한다. 사업 개시·폐업, 사망, 출국으로 달라지는 중도 종료 기간은 다루지 않으며 법인의 사업연도에는 쓰지 않는다.

NameRequiredDescriptionDefault
as_ofYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
countryYes
end_dateYes
tax_yearYes
start_dateYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and closed-world behavior, so the description's job is to add domain semantics — which it does by citing the governing statute, fixing the calendar-year convention, and disclosing the exclusion of partial periods. It doesn't say what the boundary dates look like (inclusive/exclusive) or how leap years are treated, a minor residual gap.

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?

Two sentences, no filler: the affirmative definition with its legal anchor comes first, the scope exclusions second. Dense and front-loaded, with every clause carrying information.

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 one-parameter read-only tool with an output schema, the description is nearly complete: purpose, format, legal basis and exclusions are all present. What's missing is only the shape of the returned boundary values and how dated edges (e.g. exactly the last day of the year) are handled, which is minor given the output schema.

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

Parameters4/5

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

Schema coverage is 0% and the single as_of property has no description, so the description carries the full burden. It supplies both the expected format (YYYY-MM-DD) and the semantic role (the reference date whose period is being determined), which is enough to call the tool correctly.

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

Purpose5/5

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

States a specific verb (returns tax_year and boundary dates) and a precisely scoped resource (Korean income tax period under Income Tax Act Art. 5, Jan 1–Dec 31) keyed off the as_of date. The explicit statement that it does not cover corporate fiscal years separates it from datetime.fiscal_year and datetime.fiscal_quarter without requiring a schema comparison.

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 clear negative guidance: not for mid-year terminations caused by business start/closure, death or departure, and not for corporate fiscal years. It stops short of naming the sibling an agent should use instead (e.g. datetime.fiscal_year) for that fallback case, so routing is implied rather than explicit.

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

datetime.tz_convertA
Read-onlyIdempotent

IANA 타임존 사이에서 시각을 변환해 UTC 오프셋이 붙은 ISO 8601 문자열 iso_datetime 으로 돌려준다. 입력은 초 단위(YYYY-MM-DDTHH:MM:SS, 공백 구분 허용, 소수 초 불가)이며 오프셋이 없으면 from_tz 로 해석하고 있으면 from_tz 를 쓰지 않는다. 서머타임 겹침 시각은 앞선 쪽으로 해석한다.

NameRequiredDescriptionDefault
to_tzYes
from_tzYes
iso_datetimeYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
iso_datetimeYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely new behavioral rules beyond them: offset precedence (from_tz ignored when an offset is present) and DST-overlap disambiguation to the earlier instant. It stops short of stating error behavior for invalid IANA names, so not a 5.

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?

Three tightly packed sentences: purpose first, then input format, then ambiguity rules. No filler, and the highest-risk detail (offset precedence) comes before the DST edge case.

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?

An output schema exists, so return values need not be described, and annotations cover safety. Combined with the input-format and DST rules the definition is nearly sufficient; only failure modes (unknown timezone, unparseable datetime) are unaddressed.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter burden and largely does: iso_datetime format is spelled out (YYYY-MM-DDTHH:MM:SS, space allowed, no fractional seconds) and from_tz's conditional use is defined. to_tz is only implicitly covered — the reader must infer it drives the output offset.

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

Purpose5/5

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

States a specific verb and resource ('IANA 타임존 사이에서 시각을 변환'), names the exact output form ('UTC 오프셋이 붙은 ISO 8601 문자열 iso_datetime'), and is clearly distinguishable from the other datetime siblings (diff, add_business_days, lunar conversions).

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 explains how input is interpreted (offset present vs. absent, DST overlap) but never says when to pick this tool over alternatives such as datetime.diff or units.time_small_convert, nor any when-not conditions. Usage is implied by the conversion semantics rather than stated.

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

engineering.ac_impedanceA
Read-onlyIdempotent

R, L, C 조합의 AC 합성 임피던스 크기와 위상각을 구한다. frequency(Hz, 0 초과), resistance(Ω), inductance(H), capacitance(F)는 0 이상 Decimal 문자열이고 topology='series' 또는 'parallel'. 반환: magnitude(Ω), phase_deg(도), real, imag. 값 0은 그 소자가 없다는 뜻이며 단락이나 0 용량이 아니다. 병렬에서 소자를 모두 생략하면 오류.

NameRequiredDescriptionDefault
topologyNoseries
frequencyYes
inductanceNo0
resistanceNo0
capacitanceNo0

Output Schema

NameRequiredDescription
imagYes
realYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
magnitudeYes
phase_degYes

TDQS

A4/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 real behavioral content beyond them: the constraint that frequency must exceed 0, that zero means an absent element rather than a short or zero capacitance, and that a fully empty parallel combination raises an error. Only the return-shape disclosure is redundant with the output schema.

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 compact sentences, front-loaded with the purpose and then parameter constraints and return values. The return-value sentence is the weakest, since the output schema already lists magnitude, phase_deg, real and imag, but it is short enough not to be costly.

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 5-parameter numeric calculator with no schema descriptions, the definition supplies units, constraints, the zero-element convention and the one error condition, which is close to everything an agent needs to call it correctly. The only shortfall is that the series-vs-parallel default and its effect are not spelled out (default is series in the schema but unstated in prose).

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

Parameters5/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 and does: it gives units (Hz, Ω, H, F), type and sign constraints (>0 for frequency, ≥0 Decimal strings for the passive elements), the two legal topology values, and a non-obvious semantic rule that 0 denotes an omitted element. That is meaningfully more than the bare property names in the schema.

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 opens with a specific verb+resource: computing the magnitude and phase of composite AC impedance for an R/L/C network, which tells an agent immediately what the tool computes. It does not explicitly contrast with the nearest siblings (bode_magnitude_phase, lc_resonant_frequency, rlc_time_constant), so sibling differentiation is left to inference.

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?

Usage is implied by the topology parameter and the note that a value of 0 means the element is absent, plus the explicit error case for parallel with all elements omitted. There is no statement of when to prefer this over bode_magnitude_phase or lc_resonant_frequency, which are the closest alternatives in the sibling list.

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

engineering.beam_deflectionA
Read-onlyIdempotent

표준 하중 조건의 보 최대 처짐 δ_max 를 계산한다. case: cantilever_point_end(PL³/3EI), cantilever_uniform(wL⁴/8EI), simply_supported_point_center(PL³/48EI), simply_supported_uniform(5wL⁴/384EI). length m, young Pa, inertia m⁴, load 는 점하중 N 또는 등분포하중 N/m(모두 0 초과)이며 처짐은 m. 하중 종류와 case 가 어긋나면 값이 틀리고 전단 변형은 무시한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
caseYes
loadYes
youngYes
lengthYes
inertiaYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
deflectionYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the read-only and idempotent annotations, the description discloses important behavioral assumptions: shear deformation is ignored, inputs must be positive, and results are returned without rounding to 50 significant digits. It also warns that load-type/case mismatch yields a wrong value.

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?

The description is front-loaded with the purpose, followed by case definitions, units, constraints, and precision behavior. Every sentence adds necessary information, and there is no filler.

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

Completeness5/5

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

For a five-parameter engineering calculation with an output schema and safety annotations, the description supplies the formula cases, units, positivity constraints, ignored effects, and precision behavior. Nothing essential for correct invocation is missing.

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

Parameters5/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 and does so well. It defines every parameter's meaning and units, lists all valid case values with their formulas, and explains that load is either a point load in N or a distributed load in N/m.

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

Purpose5/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: calculating a beam's maximum deflection δ_max under standard load conditions. It even names the four supported case formulas, which makes the tool's scope unambiguous and separates it from neighboring engineering calculators.

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?

It clearly defines supported cases and warns that mismatching the load type with the case produces an incorrect value. It does not name alternative tools, but it gives enough context to select and use the correct calculation path.

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

engineering.bearing_equivalent_loadA
Read-onlyIdempotent

베어링 동등가하중 P = X·Fr + Y·Fa 를 계산한다. 반경하중, 축하중, 계수 X 와 Y 는 모두 0 이상이고 두 하중이 동시에 0 이면 오류다. X, Y 는 카탈로그 값을 직접 넣어야 하며 Fa/Fr 과 e 의 비교로 계수를 고르는 과정은 하지 않는다. 순수 반경하중이면 axial_load 와 y_factor 를 0 으로 둔다. 결과는 bearing_life_l10 의 equivalent_load 로 쓴다.

NameRequiredDescriptionDefault
x_factorYes
y_factorYes
axial_loadYes
radial_loadYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
equivalent_loadYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already state readOnly, idempotent, and closed-world behavior, and the description adds substantial non-annotated behavior: all inputs must be nonnegative, both loads being zero is an error, and coefficient lookup is not performed. This is valuable operational context beyond the structured 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?

The description is front-loaded with the formula, then constraints, caveats, and downstream usage. Every sentence contributes useful information with no repetition or 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 four-parameter engineering calculation with no schema descriptions, the description covers the formula, input constraints, coefficient sourcing, zero-load case, and result usage. Units and expected numeric formatting are not addressed, which leaves a minor completeness gap.

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

Parameters4/5

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

With 0% schema description coverage, the description carries the burden well by mapping Fr, Fa, X, and Y to the formula and giving nonnegative and zero-handling constraints. It still omits units and does not explain the string-typed parameter representation.

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

Purpose5/5

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

The description states a specific calculation and names the exact formula P = X·Fr + Y·Fa, making the tool's purpose unambiguous. It also distinguishes the scope by noting that coefficient selection via Fa/Fr vs e is not performed.

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?

It gives clear usage context: X and Y must be catalog values, coefficient selection is out of scope, and pure radial load requires axial_load and y_factor set to 0. It also points to bearing_life_l10 as the downstream use, though it does not explicitly name an alternative tool for coefficient selection.

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

engineering.bearing_life_l10A
Read-onlyIdempotent

구름 베어링 기본정격수명 L10 = (C/P)^p 를 백만 회전(10⁶ rev) 단위로 계산한다. bearing_type 'ball' 은 p=3(정확 계산), 'roller' 는 p=10/3(30자리 유효숫자). dynamic_capacity 와 equivalent_load 는 같은 힘 단위이고 0 초과여야 한다. 신뢰도나 윤활 보정계수는 적용하지 않으며 등가하중은 bearing_equivalent_load 로 먼저 구한다.

NameRequiredDescriptionDefault
bearing_typeYes
equivalent_loadYes
dynamic_capacityYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
exponentYes
l10_million_revolutionsYes

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses the output unit (10⁶ rev), the exponent per bearing type, 30-significant-digit precision for 'roller', the same-force-unit and >0 input constraints, and that reliability/lubrication factors are deliberately omitted. That is exactly the behavioral context annotations cannot carry.

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 dense sentences, front-loaded with the formula and unit, followed by per-type exponent behavior, input constraints, and scope exclusions. No filler; every clause conveys information needed to call the tool correctly.

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

Completeness5/5

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

With an output schema present, return values need no explanation, and the description still covers output units, precision, input validity, scope exclusions, and the prerequisite tool. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0% and all three parameters are bare strings, so the description must compensate: it supplies the meaningful enum values 'ball' (p=3) and 'roller' (p=10/3), and constrains dynamic_capacity/equivalent_load to same force units and >0. It does not state a concrete unit (N vs kN) or the string-number format, leaving a small gap.

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

Purpose5/5

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

Names a specific verb (계산한다) and resource (구름 베어링 기본정격수명 L10) and gives the exact formula (C/P)^p with output units in 10⁶ rev. An agent can distinguish it from engineering.bearing_equivalent_load or engineering.sn_fatigue_life without opening the schema.

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?

Explicitly states a prerequisite ordering ('등가하중은 bearing_equivalent_load 로 먼저 구한다'), routing the agent to the sibling tool for P before calling this. Also excludes reliability and lubrication modifiers, implying those belong to other tools, though no when-not case for other life models is spelled out.

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

engineering.bending_stressA
Read-onlyIdempotent

휨응력 σ = M·c/I 를 계산한다. moment 는 굽힘모멘트(N·m, 부호 유지), distance_neutral 은 중립축에서 응력을 구할 섬유까지 거리 c(m, 0 초과), inertia 는 단면 이차모멘트 I(m⁴, 0 초과)이며 결과는 Pa. 최외곽 응력이 필요하면 c 에 전체 높이가 아니라 중립축에서 바깥 면까지의 거리를 넣어야 한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
momentYes
inertiaYes
distance_neutralYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
stressYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, closed-world), and the description adds real behavioral context on top: sign of the moment is preserved, result is in Pa, and output is unrounded to 50 significant digits. It does not describe error behavior for invalid inputs (zero/negative c or I), which keeps it short of a 5.

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?

Three sentences, front-loaded with the formula, then parameter meanings, then the common pitfall and precision behavior. No filler; every clause adds information the agent needs to call it correctly.

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

Completeness5/5

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

An output schema exists, so return values need not be explained, and the description still adds unit, precision, and constraint information. For a three-parameter pure-calculation tool, nothing an agent needs to invoke it correctly is missing.

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

Parameters5/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 and does: it maps each of the three parameters to its symbol, unit (N·m, m, m⁴), validity constraint (c and I must be > 0), and the sign convention for moment. The extra note that c must be the neutral-axis-to-outer-fiber distance rather than the full height is exactly the kind of semantic detail the schema lacks.

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

Purpose5/5

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

States the specific verb and resource with the governing formula (σ = M·c/I) and the output unit (Pa), which unambiguously separates it from engineering.mech_stress, engineering.shear_stress, and engineering.section_moment_inertia. An agent can identify the operation without opening the schema.

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?

Usage is implied through the formula and one practical hint about which c to use for outermost-fiber stress, but there is no explicit when-to-use statement or named alternative (e.g. use mech_stress for axial, shear_stress for transverse shear). The guidance is inferable rather than stated.

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

engineering.bernoulliA
Read-onlyIdempotent

베르누이 방정식 P + ½ρv² + ρgz = 일정 을 풀어 상태 2의 미지수 하나를 구한다. pressure_2, velocity_2, elevation_2 중 정확히 하나만 생략(None)하며 압력 Pa, 속도 m/s, 높이 m, 밀도 kg/m³, 중력가속도 기본 9.80665 m/s². 비압축성 비점성 정상류 가정이라 펌프나 마찰 손실이 있는 관로에는 쓰지 않는다. 속도 해는 30자리, 나머지는 반올림 없음.

NameRequiredDescriptionDefault
densityYes
gravityNo9.80665
pressure_1Yes
pressure_2No
velocity_1Yes
velocity_2No
elevation_1Yes
elevation_2No

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
pressure_2No
velocity_2No
elevation_2No

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered, and the description adds substantive behavior beyond them: the validity assumptions, the exactly-one-null solving convention, unit conventions for every quantity, and output precision (velocity to 30 digits, others unrounded). These are properties an agent cannot recover from the schema.

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 dense sentences: equation and task first, then the null convention, then units, then assumptions and exclusions, then precision. Every sentence carries non-redundant information and the ordering is front-loaded on the primary constraint.

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?

An output schema exists, so return-value explanation is not required, and the description supplies units, assumptions, the solving constraint, and precision. What is slightly thin is failure behavior — what happens if zero or more than one state-2 field is null — and whether gravity can be overridden for non-Earth problems beyond the default.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter meaning, and it does: Pa, m/s, m, kg/m³, and the default gravity of 9.80665 m/s². The one-omitted rule among the three state-2 fields is explained, but the description uses Korean labels rather than the exact property names, and gravity's role (standard vs. local) is only implied.

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

Purpose5/5

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

It names the specific equation (P + ½ρv² + ρgz = const) and states exactly what it computes: solving for the single unknown in state 2. The domain boundary is also stated explicitly: it is not for pipes with pumps or friction losses. This clearly distinguishes it from the fluid-mechanics siblings (darcy_weisbach, hazen_williams_flow).

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

Usage Guidelines5/5

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

Explicit when-not guidance is given: incompressible, inviscid, steady-flow assumption means it should not be used for lines with pumps or friction losses. The operational precondition — exactly one of pressure_2/velocity_2/elevation_2 must be omitted as None — is also stated, leaving nothing to inference.

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

engineering.bode_magnitude_phaseA
Read-onlyIdempotent

단일 극점 또는 영점 1차 전달함수의 Bode 크기(dB)와 위상(도)을 구한다. mode='pole'이면 G(jω)=1/(1+jω/ωc), 'zero'이면 G(jω)=1+jω/ωc. corner_freq ωc와 frequency ω는 같은 단위(rad/s 또는 Hz)의 0 초과 Decimal 문자열이며 비율만 쓴다. 유효숫자 30자리. 오용 주의: 극점과 영점이 여러 개인 전달함수는 직접 합산해야 한다.

NameRequiredDescriptionDefault
modeYes
frequencyYes
corner_freqYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
phase_degYes
magnitude_dbYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and closed-world, so safety is covered. The description adds genuine behavioral context beyond that: the exact transfer-function forms for each mode, scale-invariance (only the ratio ωc/ω is used), and 30-significant-digit precision. Return shape is covered by the output schema.

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?

Front-loaded with purpose, then formulas, then parameter constraints, then the misuse warning. Dense but every sentence adds necessary information with no padding.

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

Completeness5/5

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

Covers purpose, both mode formulas, unit/type constraints, precision, and the key misuse case. An output schema exists to describe return values, so nothing essential is missing for correct invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry all parameter meaning, and it does: mode's two accepted values are defined via formulas, corner_freq and frequency are specified as Decimal strings >0 in matching units (rad/s or Hz), and their ratio-only use is stated.

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

Purpose5/5

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

States a specific verb and resource (compute Bode magnitude in dB and phase in degrees) and scopes it precisely to a first-order transfer function with a single pole or zero. The formulas for both modes make the operation unambiguous and clearly distinct from siblings like first_order_response or rc_filter_cutoff.

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 explicit usage context and a clear exclusion: transfer functions with multiple poles/zeros must be summed directly rather than passed here. It does not name a concrete sibling alternative, so it falls short of a full 5, but the 'when not to use' warning is present and actionable.

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

engineering.capacitor_combineA
Read-onlyIdempotent

커패시터 여러 개의 합성 정전용량을 구한다. topology='series'면 1/C=Σ(1/Cᵢ), 'parallel'이면 C=ΣCᵢ. capacitors 는 0 초과 정전용량(F)의 Decimal 문자열 목록이며 최소 1개, total 은 입력과 같은 단위. 계산은 유효숫자 50자리 Decimal. 오용 주의: 저항과 인덕터는 직렬 병렬 공식이 반대다.

NameRequiredDescriptionDefault
topologyYes
capacitorsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
totalYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the description's job is to add computation semantics — and it does: 50-significant-digit Decimal arithmetic, output unit identical to input unit, and input validity constraints (positive, at least one). It does not discuss behavior on invalid input or mixed-unit inputs, which would have completed the picture.

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 compact sentences: purpose first, formulas second, input/output contract third, misuse caveat last. No filler, and the highest-value information (what it computes) is front-loaded.

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

Completeness5/5

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

For a two-parameter read-only calculation with an output schema, everything an agent needs — accepted topology values, input format, unit contract, precision — is stated. Return-value shape can be left to the output schema.

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

Parameters5/5

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

Schema description coverage is 0% and topology is an unconstrained string with no enum, yet the description supplies the full allowed value set ('series'/'parallel') with the formula each triggers. It also specifies the capacitors element type and format (Decimal strings in farads, strictly positive, minimum one element) and the unit of the result — fully compensating for the bare schema.

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

Purpose5/5

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

States a specific verb+resource (combined capacitance of multiple capacitors) and immediately gives the exact formula for both topologies, so the agent knows precisely what quantity is returned. The closing caution that resistors and inductors use the inverse series/parallel convention indirectly distinguishes this tool from engineering.resistor_series, engineering.resistor_parallel, and engineering.inductor_combine.

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 topology semantics make the two usage modes explicit, and the misuse warning effectively steers the agent away from applying these formulas to resistor/inductor problems. It stops short of naming the alternative sibling tools directly (e.g. 'for resistors use engineering.resistor_series'), so it is clear context rather than a full routing rule.

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

engineering.convective_heat_transferA
Read-onlyIdempotent

뉴턴 냉각 법칙에 따른 대류 열전달 Q = h·A·(T_s − T_∞) (W)를 계산한다. heat_transfer_coefficient W/(m²·K), area m², 온도는 K 또는 °C(차이만 사용). 표면이 유체보다 뜨거우면 양수, 차가우면 음수이다. h 는 입력값이며 유동 조건에서 구해 주지 않는다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
areaYes
temperature_fluidYes
temperature_surfaceYes
heat_transfer_coefficientYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
heat_rate_wYes

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations (readOnly, idempotent, closed-world), the description discloses the sign convention (positive when surface is hotter than fluid, negative when colder) and the precision behavior (no rounding, 50 significant digits). This is meaningful behavioral context the annotations do not carry.

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?

Front-loads the formula and unit, then packs units, sign convention, the h-is-input constraint, and precision into a few short sentences with no waste.

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

Completeness5/5

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

With an output schema present, the description need not explain the return value; it still covers units, sign, precision, and the key modeling caveat about h, leaving nothing an agent needs to call it correctly.

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

Parameters4/5

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

Schema description coverage is 0% (all four params are bare strings), so the description must compensate, and it does: it supplies units for heat_transfer_coefficient (W/(m²·K)), area (m²), and both temperatures (K or °C, only the difference used). What it does not do is explicitly map T_s/T_∞ to the temperature_surface/temperature_fluid keys, but the names make that inference safe.

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

Purpose5/5

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

States the exact physical law (Newton's cooling), the formula Q = h·A·(T_s − T_∞), and the output unit (W), so the agent knows precisely what is computed. It also distinguishes itself from the related heat-transfer siblings (fourier_heat_conduction, thermal_resistance, lmtd) by naming the convection law rather than conduction/resistance.

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 clause 'h is an input value and is not derived from flow conditions' is a genuine usage constraint that tells the agent not to expect the tool to compute h from Reynolds/flow data. However, no sibling tool is named as an alternative and no explicit when-not-to-use conditions are given.

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

engineering.darcy_weisbachA
Read-onlyIdempotent

다르시-바이스바흐 식으로 관 마찰 손실 수두 h_f = f·(L/D)·v²/(2g) (m)와 압력강하 ρ·g·h_f (Pa)를 계산한다. friction_factor 무차원, length 와 diameter m, velocity m/s, density 기본 1000 kg/m³, gravity 기본 9.80665. 마찰계수를 모르면 moody_friction_factor 로 먼저 구하며 밸브나 곡관의 국부 손실은 포함하지 않는다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
lengthYes
densityNo1000
gravityNo9.80665
diameterYes
velocityYes
friction_factorYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
head_loss_mYes
pressure_drop_paYes

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered; the description adds genuine extra context: no rounding, 50 significant digits of precision, and the exclusion of minor/local losses. It does not describe output shape or any numeric-range limits, which keeps it just short of a 5.

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?

Three dense sentences, front-loaded with the formula and result units, followed by parameter semantics, then the sibling hand-off and scope exclusion. No filler or repetition of the parameter list.

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

Completeness5/5

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

For a six-parameter formula tool with an output schema present (so return values need not be explained), the description covers the equation, unit conventions, defaults, precision policy, scope limits and prerequisite sibling. Nothing an agent needs in order to call it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0% (only bare titles), so the description carries the full burden and does it: friction_factor is dimensionless, length and diameter in m, velocity in m/s, density defaults to 1000 kg/m³, gravity to 9.80665. Every one of the six parameters gets meaning or units beyond the schema's titles.

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

Purpose5/5

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

The description gives a specific verb and resource (Darcy-Weisbach friction head loss and pressure drop) plus the exact formulas h_f = f·(L/D)·v²/(2g) and Δp = ρ·g·h_f, so the agent knows precisely what is computed. It also distinguishes itself from the sibling engineering.moody_friction_factor, which supplies the friction factor rather than the loss.

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

Usage Guidelines5/5

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

It explicitly routes the agent: if the friction factor is unknown, call moody_friction_factor first. It also states a negative scope condition — local losses from valves or bends are not included — which is exactly the when-not guidance an agent needs to avoid misusing this tool for fitting losses.

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

engineering.db_convertA
Read-onlyIdempotent

dB, Np, dBm과 선형 값을 서로 변환한다. mode: v_to_db(20·log10(value/reference)), p_to_db(10·log10(value/reference)), db_to_v, db_to_p, np_to_db, db_to_np, w_to_dbm(1 mW 기준), dbm_to_w. value 는 Decimal 문자열, reference(기본 1)는 v_to_db와 p_to_db에서만 쓴다. 로그 입력은 0 초과여야 하며 유효숫자 30자리. 오용 주의: 전압비에 p_to_db를 쓰면 값이 절반이 된다.

NameRequiredDescriptionDefault
modeYes
valueYes
referenceNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Read-only, idempotent, closed-world safety is already carried by annotations, yet the description still adds real behavioral context: log inputs must be greater than zero, values are Decimal strings with 30 significant digits, and reference is only meaningful in v_to_db and p_to_db. The domain/misuse caveat is genuinely beyond anything the annotations or schema convey. It stops short of describing output shape or error behavior, which keeps it at a 4.

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 dense sentences, front-loaded with purpose then the mode catalog then constraints then the pitfall warning. No filler, no repetition of the title or schema, and the misuse note earns its place by preventing a plausible wrong call.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and all three parameters plus the domain constraints and precision limits are covered. Nothing an agent needs in order to invoke this correctly is missing.

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

Parameters5/5

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

Schema coverage is 0% and mode has no enum, so the description carries the full burden — and it does: it lists every valid mode value with its formula, specifies that value is a Decimal string, and states reference defaults to 1 and is used only by v_to_db and p_to_db. This is exactly the meaning the bare schema omits.

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

Purpose5/5

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

States a specific verb and resource: converts between dB, Np, dBm and linear values, then enumerates the exact mode set with the formula each applies. An agent can distinguish this from units.convert or engineering.si_prefix_convert without opening the schema, because the log-ratio domain and the mode list are unique to this 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?

It tells the agent which mode to pick implicitly through the formula list (v_to_db vs p_to_db, np_to_db, w_to_dbm) and adds an explicit misuse warning that using p_to_db on a voltage ratio halves the result. What is missing is any statement of when to reach for this tool versus the general-purpose siblings units.convert or engineering.si_prefix_convert.

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

engineering.elastic_modulus_relateA
Read-onlyIdempotent

등방성 선형 탄성체에서 영률 E, 전단탄성계수 G, 푸아송비 ν, 체적탄성계수 K 중 정확히 2개를 받아 나머지 2개를 계산한다(E = 2G(1+ν) = 3K(1−2ν)). 탄성계수는 같은 응력 단위로 0 초과, 푸아송비는 -1 초과 0.5 미만이며 입력이 2개가 아니면 오류. 이방성 재료에는 쓸 수 없다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
bulkNo
shearNo
youngNo
poissonNo

Output Schema

NameRequiredDescription
bulkYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
shearYes
traceYes계산 근거(tool, formula, inputs, steps, output)
youngYes
poissonYes

TDQS

A4.5/5.0
Behavior4/5

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

With readOnly/idempotent annotations already covering safety, the description still adds real behavioral context: input-count validation causing an error, validity ranges for each quantity, and 50-significant-digit precision with no rounding. It does not describe how the two computed values are returned, but an output schema exists.

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?

The purpose and formula come first, followed by constraints and then edge cases; every sentence carries a rule the caller needs. It is dense but not padded, appropriate for a parameterized physics relation.

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 four-optional-parameter calculation tool with an output schema and read-only annotations, the description covers select-two semantics, validity ranges, error behavior, precision, and material scope. Little an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0% and all four parameters are untyped strings with no descriptions, so the description must compensate — and it does, mapping each symbol (E, G, ν, K) to its parameter and imposing domain constraints (moduli > 0, −1 < ν < 0.5, consistent stress units). It does not explain why values are passed as strings for high-precision input, a small remaining gap.

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

Purpose5/5

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

The description names a specific computation (derive the two missing elastic constants from any two known ones) and gives the governing equations E = 2G(1+ν) = 3K(1−2ν). It is clearly distinguished from siblings like euler_buckling or bending_stress, which concern different mechanics quantities.

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

Usage Guidelines5/5

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

It states the exact precondition (provide precisely two of E, G, ν, K), the failure condition (error otherwise), and an explicit exclusion: it cannot be used for anisotropic materials. An agent knows both when to call it and when not to.

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

engineering.electrical_ohmA
Read-onlyIdempotent

옴의 법칙 V=IR에서 빠진 한 값을 구한다. voltage(V), current(A), resistance(Ω) 중 정확히 2개를 Decimal 문자열로 넣으면 나머지를 계산해 세 값을 모두 돌려준다. current와 resistance는 0 초과, voltage는 입력일 때 0 이상이어야 한다. 오용 주의: 3개 이상이나 1개만 넣으면 오류이고, 교류 임피던스에는 쓸 수 없다(ac_impedance 사용).

NameRequiredDescriptionDefault
currentNo
voltageNo
resistanceNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
currentYes
voltageYes
resistanceYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover read-only, closed-world, and idempotent semantics, so the description focuses on what they don't say: domain constraints (current and resistance must be > 0, voltage >= 0 when supplied), the error condition on wrong input count, and that all three values come back. It doesn't discuss precision/rounding behavior for Decimal results, which leaves a small gap for a numeric tool.

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?

Front-loads the core operation, then constraints, then the misuse warning, in four dense sentences with zero redundancy. Every sentence adds information the caller needs.

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

Completeness5/5

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

For a 3-parameter arithmetic tool with an output schema (so return shape need not be re-explained), the description covers arity rules, units, domain constraints, error behavior, and sibling routing. Nothing needed to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the full burden and does it well: it names all three parameters, gives units (V, A, Ω), requires Decimal strings, and states per-parameter domain constraints. It does not specify expected precision or significant digits of results, a minor remaining gap.

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

Purpose5/5

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

States a specific verb and resource: solve Ohm's law V=IR for the single missing quantity, returning all three values. It names the exact parameters (voltage, current, resistance) and explicitly distinguishes itself from ac_impedance, so an agent can tell it apart from siblings like electrical_power or resistor_series.

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

Usage Guidelines5/5

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

Gives explicit arity rules (exactly 2 of 3 inputs, error on 1 or 3+) and an explicit exclusion with the alternative named: not for AC impedance, use ac_impedance instead. There is no ambiguity about when to call this tool versus its sibling.

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

engineering.electrical_powerA
Read-onlyIdempotent

직류 전력 방정식 P=VI=I²R=V²/R에서 나머지 값을 구한다. power(W), voltage(V), current(A), resistance(Ω) 중 정확히 2개를 Decimal 문자열로 넣으면 네 값을 모두 돌려준다. (P,R) 조합은 제곱근을 쓰며 양의 근만 반환한다. 오용 주의: 교류의 유효전력은 역률을 곱해야 하므로 three_phase_power 등을 쓴다.

NameRequiredDescriptionDefault
powerNo
currentNo
voltageNo
resistanceNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
powerYes
traceYes계산 근거(tool, formula, inputs, steps, output)
currentYes
voltageYes
resistanceYes

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnly/idempotent, and the description adds value beyond them: it notes (P,R) requires a square root and returns only the positive root, and that all four values are returned. This is meaningful behavioral context not in 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?

Front-loaded formula and input rule, followed by the square-root nuance and the AC misuse warning. Three dense sentences with no filler.

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

Completeness5/5

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

For a 4-param tool with an output schema and 0% schema coverage, the description supplies the input constraint, units, format, root behavior, and sibling routing. Nothing an agent needs to invoke it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate; it names all four parameters (power W, voltage V, current A, resistance Ω), specifies the exact-2 input rule, and mandates Decimal strings. This fully documents parameter meaning and format.

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

Purpose5/5

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

States a specific verb and resource (solves DC power equation P=VI=I²R=V²/R for the remaining values) and clearly distinguishes itself from the AC-oriented sibling three_phase_power. An agent can identify the tool's job without inspecting the schema.

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

Usage Guidelines5/5

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

Explicitly says to supply exactly 2 of the 4 quantities and warns against misuse for AC real power, directing to three_phase_power instead. When-to-use and when-not-to-use are both covered.

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

engineering.euler_bucklingA
Read-onlyIdempotent

오일러 좌굴 임계하중 P_cr = π²EI/(KL)² (N)를 계산한다. end_condition 으로 K 를 자동 설정(fixed_free 2, pinned_pinned 1, fixed_pinned 0.699, fixed_fixed 0.5)하거나 effective_length_factor 를 직접 주되 둘 중 정확히 하나만 지정한다. young Pa, inertia m⁴, length m. 세장한 기둥의 탄성 좌굴 식이라 짧은 기둥에는 항복 하중보다 크게 나올 수 있다. π 는 30자리.

NameRequiredDescriptionDefault
youngYes
lengthYes
inertiaYes
end_conditionNo
effective_length_factorNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
critical_loadYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, closed-world, so the safety profile is covered. The description adds genuine context beyond that: the validity envelope (slender vs short columns, possible result above yield) and 30-digit π precision. It does not say what happens when both K inputs or neither are supplied, nor how the string-typed numeric inputs are parsed.

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?

Five compact Korean sentences, front-loaded with the formula and units, then the K-selection rule, then the validity caveat. No sentence is redundant.

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 an output schema present, return values need no explanation, and the description covers formula, units, the mutually exclusive K inputs, and validity limits. Only the error/validation behavior for zero-or-two K inputs and numeric string formatting remain unstated.

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

Parameters4/5

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

Schema coverage is 0% with bare `string` properties, so the description carries the full load — and it does well, mapping young/inertia/length to Pa/m⁴/m and enumerating all four K constants for end_condition. The gap is that all numeric parameters are typed as strings yet no accepted numeric string format is described.

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

Purpose5/5

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

The description names the exact physical quantity and formula (P_cr = π²EI/(KL)² in N), which unambiguously separates it from engineering.section_moment_inertia, moment_of_inertia, and beam_deflection. Units (Pa, m⁴, m) are stated for every physical input.

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?

It gives a clear selection rule between the two K paths — set end_condition or pass effective_length_factor, exactly one — plus an applicability caveat that the elastic formula over-predicts for short columns. It does not, however, point to siblings for computing I or for inelastic/Johnson buckling of stubby columns.

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

engineering.exponential_reliabilityA
Read-onlyIdempotent

지수분포 고장 모델의 신뢰도 R(t) = exp(−λt), 불신뢰도 1−R, 평균 고장간격 MTBF = 1/λ 를 계산한다. failure_rate λ 는 단위시간당 고장률(0 초과), time 은 같은 시간 단위의 t(0 이상)이며 시간 단위가 다르면 틀린다. 고장률이 일정한 우발 고장 구간 가정이라 마모 고장에는 weibull_reliability 를 쓴다. exp 는 30자리 유효숫자.

NameRequiredDescriptionDefault
timeYes
failure_rateYes

Output Schema

NameRequiredDescription
mtbfYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
reliabilityYes
unreliabilityYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, deterministic-style behavior (readOnlyHint, idempotentHint, openWorldHint=false), and the description adds real domain context: λ must be >0, t ≥0, unit consistency requirement, and 30-significant-digit precision. It does not discuss pagination/format concerns (none apply) nor error behavior for invalid inputs beyond the stated bounds.

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?

Front-loaded with the formulas, then constraints, then the sibling alternative, then a precision note. Every sentence carries information an agent needs; nothing is redundant with the schema or annotations.

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?

An output schema exists, so return-value explanation is unnecessary, and the description still names the outputs (R, 1−R, MTBF). With only two parameters, units and domain assumptions documented, and an explicit alternative named, the definition is essentially complete; only the string-typed numeric inputs go unremarked.

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

Parameters4/5

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

Schema description coverage is 0% — both properties are bare strings titled 'Time' and 'Failure Rate'. The description compensates by defining λ as failures per unit time with >0 constraint and t as time in the same unit. It leaves unexplained why both are typed as strings (presumably arbitrary precision), which is the only remaining ambiguity.

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

Purpose5/5

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

Names the specific model and the exact quantities computed: reliability R(t)=exp(−λt), unreliability 1−R, and MTBF=1/λ. An agent can distinguish it from probability.exponential_cdf/pdf and from engineering.weibull_reliability without opening any schema.

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

Usage Guidelines5/5

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

Explicitly states the validity domain (constant failure rate / random-failure regime) and routes wear-out cases to weibull_reliability. It also gives the precondition that λ and t must share the same time unit, with the consequence of getting it wrong spelled out.

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

engineering.first_order_responseA
Read-onlyIdempotent

1차 시스템 G(s)=K/(τs+1)의 스텝 응답 y(t)=K·u·(1−exp(−t/τ))를 구한다. gain K, time_constant τ(초, 0 초과), input_step u, time t(초, 0 이상)는 Decimal 문자열. 지수항은 유효숫자 30자리. 반환: response, steady_state(K·u), time_constant. 오용 주의: 2차 이상 시스템이나 임펄스 응답에는 쓸 수 없다.

NameRequiredDescriptionDefault
gainYes
timeYes
input_stepYes
time_constantYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
responseYes
steady_stateYes
time_constantYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, closed-world), so the bar is lower, yet the description adds real behavioral detail: the exponential term is computed to 30 significant digits and the domain constraints τ>0 and t≥0 are stated. Return values are also summarized, though that partially overlaps the output schema.

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?

Front-loaded with the formula, then parameters, then return values, then the misuse caveat — every sentence adds information and there is no filler.

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

Completeness5/5

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

For a 4-parameter read-only computation with an output schema, the description supplies everything needed: the governing equation, parameter meanings and constraints, precision behavior, return fields, and the boundary of applicability. Nothing an agent needs to call it correctly is missing.

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

Parameters5/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 and does so completely: it names each of the four parameters (gain K, time_constant τ, input_step u, time t), gives units (seconds) and domain bounds (τ>0, t≥0), and specifies they are Decimal strings. This fully compensates for the empty schema.

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

Purpose5/5

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

States a specific verb and resource (step response of a first-order system) and gives the exact transfer function G(s)=K/(τs+1) and response formula y(t)=K·u·(1−exp(−t/τ)). The misuse note explicitly separates it from second-order systems, so an agent can distinguish it from the sibling engineering.second_order_response without opening either schema.

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 explicit when-not guidance: not for second-order-or-higher systems and not for impulse responses. It does not name the alternative tool (e.g. engineering.second_order_response) by name, but the exclusion is concrete and actionable.

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

engineering.fluid_reynoldsA
Read-onlyIdempotent

레이놀즈 수 Re = ρvL/μ 를 계산하고 층류(Re < 2300), 천이(2300 이상 4000 이하), 난류(4000 초과)로 분류한다. 밀도 kg/m³, 속도 m/s, 특성길이 m, 점성계수 Pa·s 를 숫자 문자열로 받고 모두 0 초과여야 한다. 경계값은 관 유동 기준이라 평판 등 다른 형상에는 맞지 않는다. 반올림 없이 50자리 유효숫자로 계산한다.

NameRequiredDescriptionDefault
lengthYes
densityYes
velocityYes
viscosityYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
regimeYes
reynoldsYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/closed-world, so safety is covered. The description adds real behavioral substance beyond that: inputs must be numeric strings, all must be strictly positive, and the computation runs at 50 significant digits with no rounding.

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?

A single compact paragraph with the formula front-loaded, followed by inputs, constraints, caveat, and precision note. No sentence is redundant and nothing is buried.

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

Completeness5/5

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

With an output schema present, return values need no explanation; the description still covers inputs, unit conventions, validity limits, classification thresholds, and numeric precision. An agent has everything needed to call it correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 0% and the schema has only bare titles, so the description must compensate — and it largely does, assigning units (kg/m³, m/s, m, Pa·s) to each quantity and requiring numeric strings above zero. The mapping from unit to named parameter is implicit via the formula and names rather than spelled out parameter-by-parameter.

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

Purpose5/5

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

The description states the exact formula (Re = ρvL/μ), the computation, and the three-way classification with numeric thresholds. An agent immediately knows this is a Reynolds-number calculator, distinct from siblings like darcy_weisbach or moody_friction_factor.

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?

It explicitly bounds applicability: the 2300/4000 thresholds are for pipe flow and do not hold for flat plates or other geometries, which tells the agent when results are invalid. It does not point to any alternative tool, but no sibling performs this same computation, so the gap is minor.

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

engineering.fourier_heat_conductionA
Read-onlyIdempotent

1차원 정상상태 평판 열전도 Q = k·A·(T_hot − T_cold)/L (W)를 계산한다. thermal_conductivity W/(m·K), area m², thickness m, 온도는 K 또는 °C(차이만 사용). temperature_hot 이 temperature_cold 보다 낮으면 오류이며 역방향은 인자를 바꿔 호출한다. 다층벽은 층별 L/(kA)를 구해 thermal_resistance 로 합성한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
areaYes
thicknessYes
temperature_hotYes
temperature_coldYes
thermal_conductivityYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
heat_rate_wYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/closed-world, and the description adds real behavioral detail beyond them: a validation error when T_hot < T_cold, acceptance of K or °C because only differences matter, and no intermediate rounding with 50 significant digits of precision. That is a meaningful supplement for a pure calculator.

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?

Front-loads the formula and units, then tacks on error handling, multilayer routing, and precision. Dense and nearly waste-free, though the mix of formula, units, and constraints in one block makes it slightly run-on.

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 an output schema present, the description need not explain return values, and it covers formula, units, error behavior, precision, and the composite-wall workflow. Nothing essential to calling it correctly appears missing.

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

Parameters5/5

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

Schema coverage is 0% (bare string titles), so the description must carry the burden and it does: units for thermal_conductivity W/(m·K), area m², thickness m, and the temperature convention (K or °C, difference only) plus the hot/cold ordering constraint. This compensates fully for the empty schema.

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 computation with the exact governing equation Q = k·A·(T_hot − T_cold)/L, distinguishing it from generic heat tools. It does not explicitly say how it differs from close siblings like engineering.convective_heat_transfer or engineering.lmtd, though it does point to engineering.thermal_resistance for the multilayer case.

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 concrete routing advice: multilayer walls should build L/(kA) per layer and combine via the thermal_resistance tool, and reversed temperatures must be fixed by swapping arguments rather than calling this. No exclusion against the convective/LMTD siblings, so it stops short of full when-not guidance.

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

engineering.gear_ratioA
Read-onlyIdempotent

단순 기어쌍의 기어비 i = 피동 잇수 / 구동 잇수 를 계산하고 방향을 함께 반환한다. i > 1 이면 reduction(감속), i < 1 이면 overdrive(증속), 1 이면 direct. 잇수는 0 초과 숫자 문자열이며 구동과 피동 인수를 바꾸면 역수가 나온다. 다단 기어열은 단별로 구해 곱해야 한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
teeth_drivenYes
teeth_driverYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
ratioYes
traceYes계산 근거(tool, formula, inputs, steps, output)
directionYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent safety, and the description adds genuine behavioral context beyond them: the direction classification rule (reduction/overdrive/direct) and the precision policy of no rounding with 50 significant digits. It doesn't state error behavior for non-numeric or zero/negative input, which is the only notable gap.

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?

Front-loaded with the formula and result, then classification, then input constraints, then the multi-stage caveat. Every sentence adds distinct information with no 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 two-parameter calculator with an output schema, the description covers formula, input domain, result classification, precision, and composition for multi-stage trains — enough to call it correctly. Only invalid-input behavior and explicit sibling differentiation are absent.

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

Parameters4/5

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

Schema coverage is 0% (bare titles only), so the description must carry the load and largely does: it defines which parameter is numerator vs denominator via the formula, constrains both to numeric strings greater than zero, and notes that swapping them produces the reciprocal. It doesn't address format edge cases like leading zeros or whitespace.

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

Purpose5/5

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

States a specific verb and resource (gear ratio of a simple gear pair) and gives the exact formula i = driven teeth / driver teeth, plus the direction classification. An agent can distinguish this from engineering.gear_torque_transmission without opening either schema.

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?

Explains the semantics of swapping arguments (reciprocal result) and explicitly tells the agent that multi-stage gear trains must be computed stage by stage and multiplied, which implies repeated invocation. It does not name a sibling alternative (e.g. gear_torque_transmission) for the torque case, so routing is inferred rather than stated.

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

engineering.gear_torque_transmissionA
Read-onlyIdempotent

기어쌍을 통과한 출력 토크 τ_out = τ_in·(피동 잇수/구동 잇수)·η 를 계산하고 기어비도 반환한다. 출력 토크는 input_torque 와 같은 단위(예: N·m)이고 efficiency 는 기본 1, [0, 1] 범위의 소수여야 한다(95 가 아니라 0.95). 속도는 기어비에 반비례해 변하므로 출력 속도는 별도로 구해야 한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
efficiencyNo1
input_torqueYes
teeth_drivenYes
teeth_driverYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
ratioYes
traceYes계산 근거(tool, formula, inputs, steps, output)
output_torqueYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent behavior, but the description adds meaningful behavioral context: the exact formula, unit preservation for output torque, the efficiency default and valid decimal range, and the no-rounding 50-significant-digit precision requirement.

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?

The description is front-loaded with the formula and then adds only high-value constraints: unit preservation, efficiency format, speed caveat, and precision. Every sentence contributes directly to correct invocation.

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

Completeness5/5

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

For a simple engineering calculation with an output schema, the description supplies everything an agent needs: formula, parameter roles, efficiency constraints, unit behavior, speed-related caveat, and precision expectations. No critical invocation detail is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It maps the parameters through the formula (driven vs driver teeth), specifies that output torque uses the same unit as input_torque, and clarifies that efficiency defaults to 1 and must be a decimal in [0, 1] such as 0.95 rather than 95.

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 calculation verb and resource: output torque through a gear pair, including the exact formula and the fact that gear ratio is also returned. It is clear what the tool does, though it does not explicitly distinguish itself from sibling tools such as engineering.gear_ratio.

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?

The description implies usage by giving the torque-transmission formula and noting that output speed must be calculated separately. However, it does not state when to use this tool versus alternatives like engineering.gear_ratio or engineering.torque_rotational_power.

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

engineering.hardness_convertA
Read-onlyIdempotent

강재의 경도를 HV, HB, HRC 사이에서 근사식(HV ≈ 0.95·HB, HRC ≈ 88.887 − 0.058·HV)으로 환산한다. value 는 0 초과이고 HRC 입력은 88.887 미만이어야 한다. 선형 근사라 적용 범위는 HV 240~800 정도이며 그 밖이나 비철금속은 오차가 크므로 정밀 환산에는 ASTM E140 표를 쓴다. 반올림 없는 Decimal 문자열.

NameRequiredDescriptionDefault
valueYes
to_scaleYes
from_scaleYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
scaleYes
traceYes계산 근거(tool, formula, inputs, steps, output)
valueYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the description adds the real value: the approximation is linear, input constraints (value > 0, HRC < 88.887) exist, and the result is an unrounded Decimal string. It does not say what happens on invalid input (error vs clamp), which is the only meaningful gap.

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 dense sentences, front-loaded with purpose then constraints then caveats then output format — each sentence carries distinct information. Slightly dense but no filler.

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

Completeness5/5

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

For a 3-parameter read-only conversion with an output schema, the description covers all the agent needs: allowed scales, input validity, precision limits, and result formatting. Nothing material is missing.

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

Parameters4/5

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

Schema coverage is 0% and none of the three parameters have enums, but the description compensates: it constrains from_scale/to_scale to HV/HB/HRC and specifies the value domain (positive, HRC < 88.887, decimal string). It never states the literal string form expected for scale names, leaving ambiguity an agent could stumble on.

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

Purpose5/5

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

States a specific verb (환산한다/converts), a specific resource (steel hardness), and the exact scales involved (HV, HB, HRC), even giving the approximation formulas. An agent can immediately tell this apart from generic converters such as units.convert or engineering.si_prefix_convert.

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 explicit applicability bounds (valid around HV 240–800) and an explicit alternative for cases outside that range or for non-ferrous metals (ASTM E140 tables). It does not name a sibling tool as an alternative, which keeps it from a 5.

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

engineering.hazen_williams_flowA
Read-onlyIdempotent

하젠-윌리엄스 식(SI)으로 관 유량 Q = 0.278·C·D^2.63·S^0.54 (m³/s)를 계산한다. S = head_loss/length 는 동수경사, coefficient 는 관 조도계수 C(무차원), diameter 와 head_loss, length 는 m. 물 관로용 경험식이라 다른 유체에는 쓰지 않는다. 손실수두가 0 이면 유량 0, 지수 계산은 30자리 유효숫자.

NameRequiredDescriptionDefault
lengthYes
diameterYes
head_lossYes
coefficientYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
flow_rate_m3sYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish this as a read-only, idempotent, closed-world calculation. The description adds useful behavioral detail beyond that: the empirical water-only restriction, the zero-head-loss edge case, and 30-significant-digit exponent handling. It does not discuss invalid inputs such as negative length or diameter.

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?

The description is front-loaded with the formula and then explains variables, applicability, and edge cases in a compact sequence. Every sentence contributes necessary context, with no repetition of the tool name or annotations.

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?

Given a four-parameter calculator with no schema descriptions and an existing output schema, the description covers the formula, units, variable meanings, fluid restriction, and one edge case. It is sufficient to invoke correctly, though it omits practical validity ranges and error conditions.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so by defining all four parameters: coefficient as dimensionless pipe roughness C, diameter/head_loss/length in metres, and S as head_loss divided by length. It does not provide typical C ranges or validation constraints.

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

Purpose5/5

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

The description names the specific formula (Hazen-Williams, SI), the computed quantity (pipe flow Q), and the exact formula and units. This clearly distinguishes it from generic flow or Darcy-Weisbach tools without requiring the schema.

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?

It explicitly states the applicability domain — water pipelines — and the exclusion: do not use for other fluids. However, it does not name an alternative such as Darcy-Weisbach for non-water fluids or explain when one formula should be preferred over the other.

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

engineering.inductor_combineA
Read-onlyIdempotent

인덕터 여러 개의 합성 인덕턴스를 구한다. topology='series'면 L=ΣLᵢ, 'parallel'이면 1/L=Σ(1/Lᵢ). inductors 는 0 초과 인덕턴스(H)의 Decimal 문자열 목록이며 최소 1개, total 은 입력과 같은 단위. 상호 인덕턴스는 고려하지 않는다. 오용 주의: 커패시터는 직렬 병렬 공식이 반대다.

NameRequiredDescriptionDefault
topologyYes
inductorsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
totalYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and closed-world behavior, so the description does not need to repeat safety traits. It adds useful behavioral assumptions: mutual inductance is ignored, input values must be positive Decimal strings, at least one inductor is required, and the result is in the same unit as the input.

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 short sentences, front-loaded with the purpose and formulas, followed by input constraints and a high-value misuse warning. Every sentence earns its place.

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

Completeness5/5

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

With an output schema present, the description does not need to explain return values. It covers the formulas, parameter formats, unit preservation, mutual-inductance assumption, and the most likely misuse case, leaving nothing essential unspecified.

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

Parameters5/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 defines topology values ('series' / 'parallel') with formulas and specifies that inductors are positive Decimal strings in henries with at least one entry, fully compensating for the bare schema.

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

Purpose5/5

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

States a specific verb and resource ('인덕터 여러 개의 합성 인덕턴스를 구한다') and gives the exact formulas for both topologies. The capacitor warning also distinguishes it from the sibling engineering.capacitor_combine.

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?

Clearly implies when to use it by giving the series/parallel formulas and explicitly warns that capacitors use the opposite formulas, steering the agent toward capacitor_combine. It does not explicitly name alternatives or state exclusions beyond that warning.

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

engineering.lc_resonant_frequencyA
Read-onlyIdempotent

LC 공진 주파수 f0=1/(2π√(LC))를 구한다. inductance(H)와 capacitance(F)는 0 초과 Decimal 문자열이고 결과는 Hz(각주파수 rad/s가 아님). 이상적인 L, C만 가정하며 저항 손실에 의한 주파수 이동은 반영하지 않는다.

NameRequiredDescriptionDefault
inductanceYes
capacitanceYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
frequencyYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered; the description adds real domain behavior - output is in Hz rather than angular frequency rad/s, and resistive-loss frequency shift is explicitly not modeled. That caveat is exactly the kind of condition an agent cannot infer from structured fields.

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?

Three short sentences: what it computes with the formula first, then input/output units, then modeling assumptions. Every sentence carries non-redundant information and nothing is buried.

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 an output schema present, return formatting need not be explained; combined with unit and assumption disclosure, the definition is sufficient to call the tool correctly. Minor omissions are edge-case behavior for invalid or non-positive input beyond the stated constraint.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does: it specifies units (henry for inductance, farad for capacitance), the accepted type (positive Decimal string), and the zero-exclusive bound. It stops short of stating precision or numeric range limits, which is the only remaining gap.

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

Purpose5/5

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

States a specific verb and resource and gives the exact formula f0=1/(2π√(LC)), so the agent knows precisely which quantity is computed. It is clearly distinguishable from siblings like rc_filter_cutoff or rlc_time_constant because those produce different outputs.

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?

The description names the ideal-L/C assumption, which implicitly scopes when the result is valid, but it never states when to choose this tool over alternatives (e.g. rc_filter_cutoff, second_order_response) or what to do when lossy components exist. Usage is implied by the formula rather than routed explicitly.

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

engineering.lmtdA
Read-onlyIdempotent

열교환기 대수평균온도차 LMTD = (ΔT₁ − ΔT₂)/ln(ΔT₁/ΔT₂)를 계산한다. 양 끝단의 온도차 두 값(K 또는 °C 차, 모두 0 초과)을 받고 같으면 극한값 ΔT₁ 을 반환한다. 병류와 향류에 맞게 각 끝단의 온도차를 직접 정해 넣어야 하며 다관식 열교환기의 보정계수 F 는 포함하지 않는다. ln 은 30자리 유효숫자.

NameRequiredDescriptionDefault
delta_t_hot_inletYes
delta_t_cold_outletYes

Output Schema

NameRequiredDescription
lmtdYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world, and the description adds genuinely new traits: the equal-ΔT limit case returns ΔT₁ instead of dividing by zero, and ln is evaluated at 30 significant digits. Missing only a note on how invalid inputs (≤0) are rejected.

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?

Formula is front-loaded, then constraints, then scope exclusions and precision — no filler sentences. Every clause (equal-value limit, F exclusion, 30-digit ln) carries distinct information.

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?

Output schema exists so return format need not be explained, and edge cases plus scope limits are covered. The one remaining gap is that the parameters are typed as strings without saying whether numeric expressions are accepted.

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

Parameters4/5

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

Schema coverage is 0% and the two string params carry only bare titles, so the description must compensate — it does, defining them as the temperature differences at the two ends in K or °C differences, both strictly positive. It does not fully resolve how the names 'hot_inlet'/'cold_outlet' map to the two ends in counterflow.

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

Purpose5/5

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

Names the exact physical quantity (LMTD for heat exchangers) and states the formula, so the agent knows precisely what is computed. Clearly distinct from neighbors like engineering.convective_heat_transfer or engineering.thermal_resistance.

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?

Tells the caller they must themselves choose the two end temperature differences according to parallel vs. counter flow, which is real usage guidance. It also explicitly excludes the shell-and-tube correction factor F, so the caller knows when this tool is insufficient — but no sibling alternative is named for the F-corrected case.

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

engineering.max_power_transferA
Read-onlyIdempotent

최대 전력 전달 정리로 최적 부하와 최대 전력을 구한다. R_L=R_th일 때 P_max=V_th²/(4R_th). v_th(V)와 r_th(Ω, 0 초과)는 Decimal 문자열. 반환: optimal_load(Ω), max_power(W). 오용 주의: 이때 효율은 50%이므로 전력 효율이 중요한 전원 설계의 부하 선정 기준은 아니다.

NameRequiredDescriptionDefault
r_thYes
v_thYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
max_powerYes
optimal_loadYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnly, idempotent, and closed-world, so the safety profile is covered. The description adds valuable operational context beyond that: the Decimal-string input format, the r_th > 0 constraint, the return fields with units, and the efficiency caveat that guards against misapplication.

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?

It is four dense sentences, front-loaded with the core operation and formula, then input format, return fields, and the misuse caveat. Every sentence adds information, though the formula may be redundant for an agent that only needs the invocation contract.

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

Completeness5/5

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

Despite a rich context (output schema, annotations, 0% schema coverage), the description covers what the tool computes, both input formats and constraints, return field semantics, and a misuse caution. An agent has everything needed to invoke it correctly.

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

Parameters4/5

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

The schema has 0% description coverage, so the description must compensate. It does document both parameters: v_th in volts and r_th in ohms as Decimal strings, with the r_th > 0 domain constraint clearly stated, leaving little ambiguity about input format or valid range.

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

Purpose5/5

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

It states a specific verb (구한다/compute) and resource (optimal load and maximum power) and pins the scope with the exact theorem and formula P_max=V_th²/(4R_th). This formula distinguishes it from nearby siblings such as engineering.electrical_power and engineering.thevenin_equivalent without needing to name them.

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 description gives a clear when-not-to-use warning: the 50% efficiency means this is not a load-selection criterion for power-supply design where efficiency matters. It lacks explicit positive when-to-use phrasing and doesn't name an alternative tool, but the scope is well understood from the named theorem.

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

engineering.mech_strainA
Read-onlyIdempotent

선형 변형률 ε = ΔL / L (무차원)을 계산한다. delta_length 와 original_length 는 같은 길이 단위여야 하며(mm 와 m 을 섞으면 틀림) original_length 는 0 초과, delta_length 는 음수(수축)도 가능하다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
delta_lengthYes
original_lengthYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
strainYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the bar is lower; the description still adds behavior the annotations can't convey: no rounding, 50 significant digits, and acceptance of negative (compressive) inputs. It does not state the error case for original_length = 0 or the return shape.

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?

Three tight sentences, formula and purpose first, then the unit/range constraints, then the precision rule — no 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?

With an output schema present the description needn't explain return values, and it covers the edge cases that matter for a strain calculation. The 50-digit precision statement is a good signal; missing only an explicit note on invalid zero-length input.

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

Parameters4/5

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

Schema coverage is 0% with only bare names, so the description must compensate; it explains that both arguments are lengths requiring a common unit and gives the valid range/sign of each. It leaves out that both are passed as decimal strings, which the schema type hints at but never documents.

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

Purpose5/5

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

States a specific verb and resource plus the exact formula (ε = ΔL / L, dimensionless), which pins the tool's scope and separates it from engineering.thermal_expansion_strain and engineering.mech_stress without needing the schema.

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?

Gives real preconditions for correct use — both lengths in the same unit, original_length > 0, delta_length may be negative for contraction — but never names an alternative tool or says when to pick this over a sibling.

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

engineering.mech_stressA
Read-onlyIdempotent

수직응력 σ = F / A 를 계산한다. force 는 힘(N), area 는 단면적(m², 0 초과)이며 결과는 Pa(N/m²). 단위 변환은 하지 않고 입력 단위 그대로 나누므로 N 과 mm² 를 넣으면 MPa 가 나온다. force 부호는 유지되며 인장과 압축의 부호 약속은 호출자가 정한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
areaYes
forceYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
stressYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world, and the description adds real behavioral context beyond them: no unit conversion is performed, the sign of force is preserved with the tension/compression convention left to the caller, and the result is unrounded to ~50 significant digits. It omits what happens on area ≤ 0 (error form) and any return shape detail, but with an output schema present that is acceptable.

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 short sentences, front-loaded with the formula, then units, sign convention, and precision — each sentence adds a distinct fact an agent needs, with no filler or repetition.

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 two-parameter deterministic calculator with an output schema and safety annotations already supplied, the description covers formula, unit semantics, sign handling, and precision — everything needed to call it correctly. Only edge-case/error behavior for non-positive area is left implicit.

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

Parameters4/5

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

Schema coverage is 0% and both params are bare strings, so the description carries the full burden — and it does: force in N with its sign convention, area in m² with a strict >0 constraint, plus the resulting unit in Pa. It does not explain why the params are strings or what numeric formats are accepted, which keeps it from a 5.

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+resource (compute normal stress, σ = F/A) and names the resource precisely as 수직응력, which distinguishes it from the shear/bending-stress and strain siblings. It does not explicitly contrast itself with the closest alternatives, so it falls just short of a 5.

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?

Usage is implied by the formula and by the note that units pass through unchanged (N with mm² gives MPa), which implicitly tells the caller when the tool fits. There is no explicit when-to-use/when-not guidance and no naming of alternatives such as engineering.shear_stress, engineering.bending_stress, or units.convert.

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

engineering.moment_of_inertiaA
Read-onlyIdempotent

표준 형상의 질량 관성모멘트 I (kg·m²)를 계산한다. solid_disk(½mr²), thin_ring(mr²), solid_sphere(2/5 mr²)는 radius 가, thin_rod_center(mL²/12)와 thin_rod_end(mL²/3)는 length 가 필요하다. mass 와 치수는 0 초과이며 mass 는 kg, 치수는 m. 막대는 중심 또는 끝점을 지나는 축 기준이라 다른 축은 평행축 정리를 따로 적용해야 한다. 반올림 없음.

NameRequiredDescriptionDefault
massYes
shapeYes
lengthNo
radiusNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
moment_of_inertiaYes

TDQS

A4.6/5.0
Behavior4/5

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

The annotations already declare readOnly=true, idempotent=true, and openWorld=false, so the safety profile is covered. Beyond that, the description adds domain-specific behavior that the annotations do not: units (kg, m), a strictly-positive input constraint, and 'no rounding' on the result. It does not say what validation failures or null radius/length for irrelevant shapes do.

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 dense sentences with no filler: purpose and output unit first, then the shape-to-parameter mapping with formulas, then unit/constraint rules, then the axis caveat. Every sentence carries information the agent needs, and none repeat the schema or the annotations.

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

Completeness5/5

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

Output schema exists, so return-value explanation is unnecessary, and the description covers purpose, shape domain, units, constraints, and the axis limitation. Nothing an agent needs in order to call this correctly in one shot is missing.

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

Parameters5/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 burden of documenting all 4 parameters, and it does: shape with the five accepted values plus their formulas, radius and length with their shape-conditional requirement, and mass/dimension units and the >0 constraint. Without this text, the agent would have no way to know the string 'shape' domain at all.

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

Purpose5/5

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

A specific verb plus resource (mass moment of inertia, kg·m²) with the exact formula and the set of supported shapes. This fully resolves the ambiguity against the sibling tool engineering.section_moment_inertia (area moment), because the tool is explicitly defined as a mass moment and the allowable values are enumerated.

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 description states which shapes need radius and which need length, which is the operative when-to-use rule for this tool. It also states the axis convention for rods and points the agent to the parallel axis theorem when another axis is used. It never names a sibling tool or an alternative, so it stops short of a 5.

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

engineering.moody_friction_factorA
Read-onlyIdempotent

콜브룩 방정식 1/√f = -2·log10(ε/(3.7D) + 2.51/(Re·√f)) 를 스위미-제인 초기값에서 시작해 최대 100회, 허용오차 1e-10 으로 반복 풀어 다르시 마찰계수 f 를 구한다. Re 2300 미만은 f = 64/Re 로 즉시 반환(iterations 0). reynolds 무차원, roughness 와 diameter 는 같은 길이 단위, 수렴 실패 시 오류. 난류 결과는 30자리 유효숫자.

NameRequiredDescriptionDefault
diameterYes
reynoldsYes
roughnessYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
regimeYes
iterationsYes
friction_factorYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/closed-world safety, and the description adds substantial behavior beyond them: Swamee-Jain seeding, 100-iteration cap, 1e-10 tolerance, immediate laminar return with iterations 0, an explicit error mode on non-convergence, and 30-significant-digit output precision. No contradictions with 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?

A single dense paragraph, front-loaded with the equation and solution method, then edge cases and precision. Appropriate length for a numerical solver; the embedded equation is informative rather than filler, though the prose is somewhat packed.

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?

An output schema exists so return format needn't be explained, and annotations cover safety; the description covers method, regime handling, units, error behavior and precision. The one substantive gap is the string-typed numeric inputs, whose expected format (arbitrary-precision decimal strings) is left implicit.

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

Parameters4/5

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

Schema coverage is 0% (three bare string-typed parameters), so the description must compensate and largely does: reynolds declared dimensionless, roughness and diameter required to share a length unit. It stops short of stating that the parameters are numeric strings / decimal format, which matters given the string typing.

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

Purpose5/5

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

States a specific verb+resource: iteratively solving the Colebrook equation to obtain the Darcy friction factor f, with the governing equation written out. This is distinguishable from siblings like engineering.darcy_weisbach (which consumes f) or engineering.fluid_reynolds (which produces Re) without opening any schema.

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?

Provides domain-level guidance: Re < 2300 short-circuits to f = 64/Re, turbulent regime uses iteration, and convergence failure raises an error. However, it never routes the agent among alternatives (e.g. darcy_weisbach, hazen_williams_flow) or states when this tool is the wrong choice, leaving usage implied by the input triad.

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

engineering.norton_equivalentA
Read-onlyIdempotent

테브난 등가(V_th, R_th)를 노턴 등가로 변환한다. I_N=V_th/R_th, R_N=R_th. v_th(V)와 r_th(Ω, 0 초과)는 Decimal 문자열. 반환: i_n(A), r_n(Ω). 오용 주의: 개방 전압과 단락 전류에서 바로 구하려면 먼저 thevenin_equivalent 를 쓴다.

NameRequiredDescriptionDefault
r_thYes
v_thYes

Output Schema

NameRequiredDescription
i_nYes
r_nYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds domain constraints (r_th > 0, Decimal-string inputs) and states the returned fields i_n and r_n, though it does not detail precision, rounding, or invalid-input behavior.

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 short sentences are front-loaded with the transformation and formulas. Units, constraints, return fields, and the sibling warning each add actionable information rather than repeating structured fields.

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

Completeness5/5

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

For a two-parameter pure calculation with annotations and an output schema, the definition covers inputs, formula, outputs, and an alternative route. Nothing required to invoke it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It documents v_th in volts and r_th in ohms with a >0 constraint and Decimal-string format for both parameters, fully compensating for the empty schema descriptions.

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

Purpose5/5

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

The first sentence names the specific transformation and resources: converting a Thevenin equivalent (V_th, R_th) into a Norton equivalent. The formulas I_N=V_th/R_th and R_N=R_th make the operation unambiguous, and the closing note distinguishes it from engineering.thevenin_equivalent.

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

Usage Guidelines5/5

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

It states the conversion use case and gives an explicit when-not: if starting from open-circuit voltage and short-circuit current, use thevenin_equivalent first. The alternative sibling is named with the condition that selects it, leaving little to inference.

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

engineering.opamp_gainA
Read-onlyIdempotent

이상적 연산증폭기의 폐루프 전압 이득을 구한다. configuration='inverting'이면 -Rf/Rin, 'non_inverting'이면 1+Rf/Rin. feedback_resistance와 input_resistance는 0 초과 Decimal 문자열(Ω)이고 gain 은 배율이다(dB 아님, db_convert로 변환). 오용 주의: 유한 개방 이득, 대역폭, 포화 전압은 반영하지 않는다.

NameRequiredDescriptionDefault
configurationNoinverting
input_resistanceYes
feedback_resistanceYes

Output Schema

NameRequiredDescription
gainYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.8/5.0
Behavior5/5

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

Beyond readOnly/idempotent annotations, the description discloses the idealized model's limits (no finite open-loop gain, bandwidth, or saturation voltage), the unit of the resistances (Ω, positive Decimal strings), and that the returned gain is a linear ratio rather than dB. These are exactly the assumptions an agent could otherwise get wrong.

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?

Three sentences, front-loaded with the purpose and formulas, then units, then the misuse caveat. Nothing is repeated from the schema and every clause adds information the agent needs.

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

Completeness5/5

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

With an output schema present, the description need not describe return values, and it covers everything else: formulas per configuration, parameter types and units, gain vs dB, and the non-ideal effects excluded. Nothing required to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0% and configuration has no enum, so the description carries the full burden — and it does: it enumerates the two valid configuration values with their formulas and defines both resistance parameters as positive Decimal strings in ohms. No parameter meaning is left ambiguous.

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

Purpose5/5

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

States a specific verb and resource (closed-loop voltage gain of an ideal op-amp) and gives the exact formula per configuration, so an agent knows precisely what is computed. The 'ideal' qualifier and the explicit dB disclaimer separate it from engineering.db_convert and from any real-device gain 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 description tells the agent to pick configuration='inverting' vs 'non_inverting' and to route unit conversion through db_convert, and it warns that finite open-loop gain, bandwidth and saturation are out of scope. It stops short of naming a specific sibling tool to use when those non-ideal effects matter, so there is room above a 4.

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

engineering.parallel_reliabilityA
Read-onlyIdempotent

병렬(중복) 시스템 신뢰도 R_sys = 1 − Π(1 − R_i)를 계산한다. component_reliabilities 는 구성요소 신뢰도의 숫자 문자열 목록(1개 이상, 각 0 이상 1 이하)이며 소수로 넣는다(0.99). 하나라도 작동하면 시스템이 작동하는 구조이며 구성요소가 독립이라고 가정한다. 구성요소 k개 이상이 필요한 k-of-n 구조에는 쓸 수 없다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
component_reliabilitiesYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
reliabilityYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world, so the bar is lower; the description adds meaningful behavioral context beyond them: the independence assumption, the no-rounding/50-significant-digit precision guarantee, and the string-typed decimal input convention.

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?

Front-loads the formula, then constraints, then exclusions, then precision — a logical order with little waste. Four dense sentences is appropriate, though the input-format note could be tightened slightly.

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

Completeness5/5

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

For a single-parameter calculation tool with an output schema (so return values need no explanation) and full annotations, nothing an agent needs to call it correctly is missing: input format, domain constraints, structural assumptions, exclusions, and numeric precision are all covered.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the parameter meaning — and it does: a list of numeric strings, at least one element, each in [0, 1], written as decimals such as 0.99. This resolves the non-obvious string-typed array quirk that the schema leaves unexplained.

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

Purpose5/5

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

States a specific verb and resource plus the exact formula (R_sys = 1 − Π(1 − R_i)), which uniquely identifies this as the parallel/redundant reliability tool among siblings like engineering.series_reliability and engineering.exponential_reliability. An agent can distinguish it without opening the schema.

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?

Explicitly defines the applicability condition (system works if any one component works, components independent) and an exclusion (k-of-n structures are not supported). It does not name the sibling tool to use instead for series or k-of-n cases, so the alternative routing is left implicit.

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

engineering.pid_discrete_outputA
Read-onlyIdempotent

속도형(velocity form) 이산 PID의 새 출력 u_k=u_{k-1}+Δu를 구한다. Δu=Kp·Δe+Ki·e·Ts+Kd·(Δe−Δe_prev)/Ts. kp, ki, kd, sample_time Ts(0 초과), error_curr, error_prev, error_prev2, output_prev 는 Decimal 문자열. 반환: output, delta_u, p_term, i_term, d_term. 적분항은 현재 오차 e에 Ts를 곱하는 방식이며 출력 포화와 anti-windup은 없다.

NameRequiredDescriptionDefault
kdYes
kiYes
kpYes
error_currYes
error_prevYes
error_prev2Yes
output_prevYes
sample_timeYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
d_termYes
i_termYes
outputYes
p_termYes
delta_uYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent), so the bar is lower; the description adds real behavioral context by disclosing that the integral term uses current error e·Ts and that output saturation and anti-windup are intentionally absent. That limitation is exactly what an agent needs to avoid misapplying the result.

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?

Front-loads the goal and formula, then packs param types, return fields, and caveats into tight sentences. Dense but no filler; every clause carries information.

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?

An output schema exists, yet the description still names the returned fields, and it fully specifies 8 undocumented params plus the no-saturation limitation. Complete enough to call correctly; only the when-to-use dimension remains thin.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry param meaning, and it does: all inputs are Decimal strings, Ts must be > 0, and the e/e_prev/e_prev2/output_prev roles are clear from the formula context. Slightly short on distinguishing error_prev vs error_prev2 for Kd's second difference.

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

Purpose5/5

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

States a specific verb (compute) and resource (new output u_k of a velocity-form discrete PID) and gives the defining formula, so the operation is unambiguous. No sibling competes for this function.

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?

Implies usage through the formula and the explicit 'no anti-windup/saturation' caveat, but never states when to pick this over, say, a positional PID or other engineering tools. Guidance is inferred rather than declared.

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

engineering.power_factor_correctionA
Read-onlyIdempotent

지상(유도성) 부하의 역률을 목표 역률로 올리는 병렬 커패시턴스를 구한다. Q_c=P·(tanφ₁−tanφ₂), C=Q_c/(2π·f·V²). real_power(W), voltage(V), frequency(Hz)는 0 초과, current_pf와 target_pf는 (0,1] 범위이며 target_pf가 더 커야 한다. 반환: capacitance(F), reactive_power_canceled(VAR). 오용 주의: 3상은 상별 전력과 커패시터 양단 전압으로 환산해 넣는다.

NameRequiredDescriptionDefault
voltageYes
frequencyYes
target_pfYes
current_pfYes
real_powerYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
capacitanceYes
reactive_power_canceledYes

TDQS

A4.5/5.0
Behavior4/5

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

With annotations covering safe-read semantics (readOnlyHint, idempotentHint, openWorldHint), the description adds real value: it discloses input constraints that must hold (real_power/voltage/frequency > 0, pf in (0,1], target_pf > current_pf) and the returned quantities. It doesn't state what happens on violating inputs, so not a 5.

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?

Front-loaded purpose, then the governing formulas, then validation constraints, return values, and a 3-phase caution—each sentence adds distinct information with no repetition or filler.

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

Completeness5/5

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

For a five-parameter calculation tool with an output schema present, the description supplies everything an agent needs: purpose, formulas, unit-bearing constraints, expected outputs, and a real-world misuse caveat. Nothing essential is missing.

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

Parameters4/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 burden, and it mostly does: it gives units (W, V, Hz) and valid ranges for all five parameters plus the relational constraint target_pf > current_pf. It does not clarify the schema's unexpected string typing for numeric inputs, which is a small remaining gap.

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

Purpose5/5

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

States a specific verb+resource (compute parallel capacitance to raise the power factor of an inductive load to a target) and backs it with the governing equations Q_c=P·(tanφ₁−tanφ₂) and C=Q_c/(2π·f·V²). This lets an agent distinguish it from engineering.three_phase_power and other electrical siblings without opening the schema.

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?

Provides clear context on what the tool computes and an explicit misuse caution for three-phase systems (convert using per-phase power and capacitor terminal voltage). It doesn't name an alternative sibling or a hard when-not-to-use rule, so it falls short of 5, but the operational guidance is solid.

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

engineering.pump_hydraulic_powerA
Read-onlyIdempotent

펌프 수력 동력 P = ρ·g·Q·H (W)를 계산하고, efficiency(0 초과 1 이하)를 주면 축동력 P/η 도 반환한다. density kg/m³, flow_rate m³/s, head m, gravity 기본 9.80665. 효율은 백분율(80)이 아니라 소수(0.8)로 넣어야 한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
headYes
densityYes
gravityNo9.80665
flow_rateYes
efficiencyNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
shaft_power_wNo
hydraulic_power_wYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so safety is covered; the description adds real behavioral value by disclosing that the result is returned without rounding at 50 significant digits and that the efficiency branch changes the output set. It does not mention the implicit string-typed numeric inputs, but the extra disclosure is substantive.

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?

Three short sentences, formula front-loaded, followed by parameter semantics and the efficiency trap. No filler; each sentence adds information an agent could not infer elsewhere.

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 an output schema present, return values needn't be explained, and the unit/domain constraints are fully covered. The one omission is that all parameters are typed as strings in the schema while the description never says to pass numeric values as strings, a minor but real gap for correct invocation.

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

Parameters5/5

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

Schema description coverage is 0% (only bare titles), so the description must compensate — and it does: it gives units for density (kg/m³), flow_rate (m³/s), head (m), the gravity default 9.80665, and, crucially, states efficiency must be a decimal fraction (0.8) not a percent (80). Every parameter carries meaning absent from the schema.

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

Purpose5/5

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

States the exact quantity computed with its formula (P = ρ·g·Q·H in W), and adds the optional second output (shaft power P/η). The formula and units make it unmistakably distinct from neighbors like engineering.torque_rotational_power or engineering.electrical_power without needing to name them.

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?

Tells the agent that supplying efficiency switches on the shaft-power output, which is implied usage context. However there is no explicit when-to-use vs. sibling guidance, no note on when to omit efficiency (e.g. pump efficiency unknown), and no alternatives given.

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

engineering.rc_filter_cutoffA
Read-onlyIdempotent

1차 RC 필터의 -3 dB 차단 주파수 fc=1/(2πRC)를 Hz로 구한다. resistance(Ω)와 capacitance(F)는 0 초과 Decimal 문자열. filter_type 은 'low_pass' 또는 'high_pass'이며 수식은 같고 입력 그대로 반환될 뿐이다. 오용 주의: 2차 이상 필터나 부하가 걸린 필터에는 맞지 않는다.

NameRequiredDescriptionDefault
resistanceYes
capacitanceYes
filter_typeNolow_pass

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
cutoff_hzYes
filter_typeYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already cover safety: readOnlyHint, idempotentHint, and openWorldHint=false. The description adds context that the annotations do not provide: filter_type does not change the result and is returned unchanged, and the tool applies only to the ideal first-order case. It still does not say what happens on invalid input or how the output is rounded.

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?

Three compact sentences that are ordered by usefulness: the operation and its formula first, then the parameter constraints, then the caution about misuse. There is no 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?

An output schema exists, so the description does not need to explain the return values. Combined with annotations and the formula, the description covers domain constraints, parameter meaning, and misuse limits. Only the edge-case behavior (invalid or zero input) is left out.

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

Parameters4/5

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

With 0% schema coverage, the description is responsible for documenting all parameters, and it does: resistance in ohms and capacitance in farads, both as positive Decimal strings. It also supplies the enum values for filter_type ('low_pass'/'high_pass') even though the schema has no enum and does not indicate the default; it also says filter_type does not affect the result.

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

Purpose5/5

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

The description states a specific operation (the -3 dB cutoff frequency) and the resource (a first-order RC filter), and gives the closed-form expression fc=1/(2πRC) in Hz. Because it explicitly limits the scope to first-order filters, it is clearly distinguishable from sibling tools such as lc_resonant_frequency and first_order_response.

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 description gives an explicit when-not-to-use rule ('not suitable for 2nd-order or higher filters, or loaded filters') and imposes a validity condition (values must be greater than 0). It does not, however, point to a specific alternative tool, such as a second-order or Bode tool, that should be used instead.

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

engineering.resistor_color_codeA
Read-onlyIdempotent

저항기 4밴드 또는 5밴드 컬러코드를 해독해 저항값(Ω)과 허용오차(%)를 구한다. 4밴드는 [자릿수1, 자릿수2, 승수, 허용오차], 5밴드는 [자릿수1, 자릿수2, 자릿수3, 승수, 허용오차] 순서의 영문 색상명(black, brown, red, orange, yellow, green, blue, violet, gray, white, gold, silver)이며 대소문자와 앞뒤 공백은 무시한다. 오용 주의: 6밴드(온도계수)는 지원하지 않으며 읽는 방향이 반대면 값이 틀린다.

NameRequiredDescriptionDefault
bandsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
tolerance_pctYes
resistance_ohmYes

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already establish read-only, idempotent, and closed-world behavior, so the bar is lower. The description still adds useful behavior: case and whitespace normalization, the unsupported 6-band case, and the direction-sensitivity caveat.

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?

The structure is three tight sentences, with purpose first, then the input contract, then the misuse warnings. No sentence repeats what the schema or annotations already state.

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?

An output schema exists, so the return values need not be restated, and the input contract is complete. The only gap is the undocumented behavior for an invalid color name or an incorrect band count (whether it errors or is rejected).

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

Parameters5/5

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

The schema coverage is 0%: 'bands' is an untyped array with no item description. The description fully compensates by listing every valid color name and specifying the positional meaning of each band for both 4-band and 5-band layouts.

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

Purpose5/5

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

The description names a specific verb and resource (decoding a 4-band/5-band resistor color code) and states exactly what it returns (resistance in Ω and tolerance in %). It is clearly distinct from the sibling tools such as resistor_series and resistor_parallel, which combine resistances rather than decode the colors.

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?

It gives the explicit 'when not to use' case (6-band with temperature coefficient is unsupported) and warns that a reversed reading direction yields a wrong value. What is missing is a comparison with the sibling tools, so there is no guidance on when to prefer this tool over engineering.resistor_series.

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

engineering.resistor_parallelA
Read-onlyIdempotent

병렬 연결 저항의 합성 저항 1/R_total=Σ(1/Rᵢ)를 구한다. resistors 는 0 초과 저항값(Ω)의 Decimal 문자열 목록이며 최소 1개. 계산은 유효숫자 50자리 Decimal 이다. 오용 주의: 직렬 연결에는 resistor_series 를 쓴다.

NameRequiredDescriptionDefault
resistorsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
totalYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered; the description adds genuine behavioral context: 50-significant-digit Decimal arithmetic and the >0 / minimum-1-element constraints. It does not say what happens on a zero or malformed value (e.g., division-by-zero error), which is the one remaining gap.

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?

Three tight sentences: method/formula first, then input contract and precision, then the misuse warning. No filler and the routing hint is at the end where it is easy to catch.

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

Completeness5/5

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

For a single-parameter computational tool with an output schema already covering return values, the description supplies the formula, unit, numeric type, precision, and input validity rules. Nothing an agent needs to invoke it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates: it specifies the parameter as a list of Decimal strings representing resistance in ohms, each strictly greater than 0, with at least one element. That is everything needed to construct a valid call.

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

Purpose5/5

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

States a specific verb (compute) and resource (parallel-connected combined resistance) and even gives the governing formula 1/R_total=Σ(1/Rᵢ). It explicitly names the sibling resistor_series as the wrong tool for the adjacent case, so an agent can disambiguate without opening any schema.

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

Usage Guidelines5/5

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

Contains an explicit misuse warning ('오용 주의: 직렬 연결에는 resistor_series 를 쓴다') that names the alternative and the condition selecting it. Input preconditions (>0 Ω, at least 1 element) are also stated, leaving nothing to inference.

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

engineering.resistor_seriesA
Read-onlyIdempotent

직렬 연결 저항의 합성 저항 R_total=ΣRᵢ를 구한다. resistors 는 0 초과 저항값(Ω)의 Decimal 문자열 목록이며 최소 1개. 계산은 유효숫자 50자리 Decimal 이다. 오용 주의: 병렬 연결에는 resistor_parallel 을 쓴다.

NameRequiredDescriptionDefault
resistorsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
totalYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so safety is covered. The description adds useful context beyond that: the computation is done in 50-significant-digit Decimal arithmetic, which tells the agent to expect high-precision output. It doesn't mention rounding of the returned value or unit normalization, so a small gap remains.

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?

Three short sentences, front-loaded with the formula, then the input constraint, then the misuse warning. Every sentence carries distinct information and nothing is repeated from the schema or annotations.

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

Completeness5/5

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

The tool has an output schema, so return-value explanation isn't needed, and the description covers purpose, input constraints, precision, and the sibling distinction. An agent has everything required to call this correctly on the first try.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it does: 'resistors' holds Decimal strings of resistance values in ohms, each must be greater than 0, and at least one item is required. What's missing is whether mixed units or zero-length strings are rejected, but the core semantics are supplied.

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

Purpose5/5

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

States a specific verb and resource ('직렬 연결 저항의 합성 저항') and gives the exact formula R_total=ΣRᵢ, so the computation is unambiguous. It explicitly contrasts with the sibling engineering.resistor_parallel, so an agent can pick it over its nearest neighbor without opening the schema.

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

Usage Guidelines5/5

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

The last sentence is an explicit misuse warning that names the alternative tool ('병렬 연결에는 resistor_parallel 을 쓴다'), giving the agent a clear when-not condition. This is exactly the routing guidance that distinguishes the two resistor-combination tools.

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

engineering.rlc_time_constantA
Read-onlyIdempotent

RC, RL, 직렬 RLC 회로의 시정수 또는 감쇠 특성을 구한다. mode='rc'면 τ=RC, 'rl'이면 τ=L/R, 'rlc'면 α=R/(2L), ω₀=1/√(LC), ζ=α/ω₀와 regime(underdamped, critically_damped, overdamped)을 반환한다. 필요한 R(Ω), L(H), C(F)는 모드별로 0 초과 Decimal 문자열이며 빠뜨리면 오류. 오용 주의: ζ는 직렬 RLC 기준이라 병렬 RLC에는 맞지 않는다.

NameRequiredDescriptionDefault
modeYes
inductanceNo
resistanceNo
capacitanceNo

Output Schema

NameRequiredDescription
tauNo
zetaNo
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
alphaNo
traceYes계산 근거(tool, formula, inputs, steps, output)
omega0No
regimeNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world, and the description adds real behavioral context: required-input failure mode ('빠뜨리면 오류') and a domain caveat about series vs parallel RLC validity. Doesn't state numeric edge behavior (e.g., zero/negative handling beyond '0 초과'), but the added context is substantive.

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?

Front-loads the purpose and formulas, then constraints, then the caveat in three tight sentences with no filler. Every sentence carries actionable information.

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?

An output schema exists and the description still names the returned quantities, and it covers input constraints and failure behavior. Minor gap: it doesn't say what happens when a parameter irrelevant to the chosen mode is supplied (ignored vs error).

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry everything — and it does: it defines the mode values ('rc','rl','rlc'), assigns units and meaning to R/L/C (Ω, H, F), specifies the type constraint (positive Decimal strings) and that they are conditionally required by mode. Clear compensation for the schema gap.

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?

Names concrete verbs and resources (time constant / damping for RC, RL, series RLC) and specifies the exact formulas returned per mode. Very specific, but it never names the adjacent siblings (rc_filter_cutoff, lc_resonant_frequency, second_order_response) that an agent might confuse it with.

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 mode-based selection rules and states which inputs each mode requires, plus that omissions raise an error. Also includes an explicit misuse warning (ζ assumes series RLC, not parallel). Lacks explicit routing to alternatives, so not a 5.

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

engineering.safety_factorA
Read-onlyIdempotent

안전율 SF = 허용응력 / |작용응력| 을 계산하고 SF 1 이상이면 'safe', 미만이면 'unsafe' 를 반환한다. 두 응력은 같은 단위(Pa 또는 MPa)이며 allowable_stress 는 0 초과, applied_stress 는 0 이 아니어야 하고 부호는 무시된다. 요구 안전율(예: 1.5)과 비교하지 않으므로 safe 만으로 설계 적합을 판단하면 안 된다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
applied_stressYes
allowable_stressYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
verdictYes
safety_factorYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so the description is not responsible for the safety profile. It adds substantive behavioral context beyond annotations: unit consistency, allowable_stress > 0, applied_stress != 0, sign ignored, no rounding, and 50 significant digits.

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?

Three tightly packed sentences with no filler. The formula and return classification are front-loaded, followed by validation constraints and then the interpretation caveat.

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

Completeness5/5

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

An output schema exists, so return values do not need full explanation, but the description still names the 'safe'/'unsafe' output and adds precision and constraint details. For a two-parameter, read-only calculator, nothing essential is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It fully compensates by specifying that both stresses share the same unit (Pa or MPa), that allowable_stress must be positive, that applied_stress must be nonzero, and that the sign of applied_stress is ignored.

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

Purpose5/5

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

States the exact formula (SF = allowable stress / |applied stress|) and the classification rule (safe if SF >= 1, else unsafe). This is a specific verb+resource with enough detail to distinguish it from stress-calculation siblings like engineering.mech_stress.

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?

Provides clear usage context and an explicit interpretation caveat: it does not compare against a required safety factor, so 'safe' alone should not be used to judge design adequacy. It does not name alternative tools or say when another sibling is preferable, which keeps it from a 5.

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

engineering.second_order_responseA
Read-onlyIdempotent

2차 시스템 G(s)=ωn²/(s²+2ζωn·s+ωn²)의 감쇠 고유진동수 ωd, 최대 오버슈트, 정착시간을 구한다. damping_ratio ζ(0 이상)와 natural_freq ωn(rad/s, 0 초과)은 Decimal 문자열. overshoot 는 비율(0~1, 백분율 아님)이고 ζ≥1 이면 0, ζ=0 이면 1. settling_time=4/(ζωn)은 2% 기준 근사이며 ζ=0 이면 "Infinity". regime: underdamped, critically_damped, overdamped. 초월함수는 유효숫자 30자리.

NameRequiredDescriptionDefault
natural_freqYes
damping_ratioYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
regimeYes
overshootYes
damped_freqYes
settling_timeYes

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing output conventions that would otherwise be guesswork: overshoot is a 0–1 ratio (not percent), equals 0 for ζ≥1 and 1 for ζ=0, and settling_time is the 2% approximation 4/(ζωn) returning the literal string "Infinity" at ζ=0. Precision behavior (30 significant digits for transcendental functions) is also stated.

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?

Dense but front-loaded — the formula and computed quantities come first, then input formats, then output conventions. Every sentence carries information; the only cost is that the terse run-on style makes the param-format clause easy to skim past.

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?

Output schema exists so return values needn't be described, and the description still covers input format, edge cases, and precision — enough to call correctly. What is missing is any note on the boundary cases ζ=1 classification between regimes or on sibling selection, though neither blocks a correct call.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load and largely does: it names ζ with the constraint '0 이상' and ωn with units rad/s and '>0', plus the Decimal-string format for both. Minor gap: it never explicitly re-uses the exact parameter names damping_ratio/natural_freq, relying on symbol mapping.

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

Purpose5/5

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

States the exact transfer function G(s)=ωn²/(s²+2ζωn·s+ωn²) and enumerates the outputs (ωd, peak overshoot, settling time, regime), which pins the tool down precisely and separates it from engineering.first_order_response without needing the schema.

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?

Input validity ranges (ζ≥0, ωn>0 rad/s) imply when the tool is applicable, but there is no explicit 'use this instead of X' guidance and no named alternative. The agent must infer that first_order_response or bode_magnitude_phase are different tools.

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

engineering.section_moment_inertiaA
Read-onlyIdempotent

도심 중립축에 대한 단면 이차모멘트 I 를 계산한다. rectangle(width, height: bh³/12), circle(diameter: πd⁴/64), i_beam(flange_width, flange_thickness, web_height, web_thickness: BH³/12 − (B−t_w)·web_height³/12, H = web_height + 2·flange_thickness). 치수는 모두 0 초과이고 m 로 넣으면 m⁴. rectangle 의 height 는 굽힘 방향 치수이며 중공 단면은 지원하지 않는다. π 는 30자리.

NameRequiredDescriptionDefault
shapeYes
widthNo
heightNo
diameterNo
web_heightNo
flange_widthNo
web_thicknessNo
flange_thicknessNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
inertiaYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered; the description adds genuine context beyond that — all dimensions must be > 0, inputs in meters yield m⁴, rectangle height is the bending-direction dimension, hollow sections are unsupported, and π is carried to 30 digits. Only the error behavior for invalid shape strings or missing per-shape parameters is left unstated.

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?

Dense but front-loaded: the operation is stated first, then formulas, then constraints. Every clause carries information, though the inline formula block makes it harder to scan than a bulleted per-shape breakdown would be.

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

Completeness5/5

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

An output schema exists, so return values need no explanation; the description supplies what the schema lacks — shape-to-parameter mapping, units, sign/positivity constraints, orientation of height, and the hollow-section exclusion. Nothing an agent needs in order to call this correctly is missing beyond the literal shape enum strings.

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

Parameters4/5

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

Schema coverage is 0% and 'shape' has no enum, so the description carries the full burden — and it does: it maps width/height to rectangle, diameter to circle, and flange_width/flange_thickness/web_height/web_thickness to i_beam, plus clarifies height's orientation and the >0/unit constraints. It stops short of listing the literal accepted shape values or saying unused parameters should be omitted/null, which keeps it from a 5.

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 ('도심 중립축에 대한 단면 이차모멘트 I 를 계산한다') and enumerates the three supported shapes with their formulas, so the agent knows exactly what is computed. It does not, however, explicitly distinguish itself from the sibling engineering.moment_of_inertia, leaving the agent to infer the area-vs-mass distinction from the terminology.

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?

Usage is implied rather than stated: the description names which parameters belong to each shape, which guides selection, and excludes hollow sections. There is no explicit 'use this when…' guidance or a named alternative for cases like mass moment of inertia or non-centroidal axes.

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

engineering.series_reliabilityA
Read-onlyIdempotent

직렬 시스템 신뢰도 R_sys = ΠR_i 를 계산한다. component_reliabilities 는 구성요소 신뢰도의 숫자 문자열 목록(1개 이상, 각 0 이상 1 이하)이며 백분율(99)이 아니라 소수(0.99)로 넣는다. 구성요소가 서로 독립이라고 가정하므로 고장이 연관된 경우에는 맞지 않다. 입력은 유한한 값이어야 하며 호출자의 Decimal 설정과 독립적인 50자리 유효숫자 HALF_EVEN으로 계산한다.

NameRequiredDescriptionDefault
component_reliabilitiesYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
reliabilityYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world safety, but the description adds genuinely non-obvious behavior: inputs must be finite, the result is computed at 50 significant digits with HALF_EVEN and is independent of the caller's Decimal context. It does not describe error behavior for out-of-range values, keeping it at 4.

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 sentences, front-loaded with the formula, then input format, then the independence caveat, then numeric precision. Every sentence adds information an agent would otherwise have to guess, with no repetition of the name or title.

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

Completeness5/5

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

An output schema exists, so return values need not be explained; what remains — the input contract, the modeling assumption, and the numeric determinism — is all stated. Nothing needed to call this correctly is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry the parameter — and it does: the argument is a list of numeric strings, at least one entry, each in [0, 1], expressed as a decimal rather than a percentage. That fully compensates for the bare schema.

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 gives a specific verb and resource plus the exact formula (R_sys = ΠR_i), which in practice separates it from engineering.parallel_reliability and the exponential/Weibull variants. It stops short of naming an alternative tool explicitly, so 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?

It states a clear applicability boundary — valid only when component failures are independent, not when failures are correlated — and gives input-format guidance (decimal 0.99, not percent 99). No sibling tool is named as the alternative for the correlated-failure case, so the routing guidance is incomplete but the context is clear.

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

engineering.shear_stressA
Read-onlyIdempotent

횡전단응력 τ 를 모드별로 계산한다. average 는 V/A, rectangular_max 는 1.5V/A(직사각형 단면 중립축의 최대값, area 필요), general 은 V·Q/(I·b)(first_moment_q, inertia, width 필요). shear_force 는 N, area 는 m²(0 초과)이고 결과는 Pa. 원형이나 I형 단면에 rectangular_max 를 쓰면 틀리며 필수 인자가 빠지면 오류. 반올림 없음.

NameRequiredDescriptionDefault
areaNo
modeYes
widthNo
inertiaNo
shear_forceYes
first_moment_qNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
shear_stressYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnly/idempotent/closed-world; the description adds real behavioral context beyond them: unit conventions (N, m², Pa output), a domain-validity warning about applying rectangular_max to non-rectangular sections, and the fact that missing required arguments raise an error.

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?

Purpose is front-loaded in the first clause, then per-mode formulas, then units, then caveats. No filler sentences; every clause carries information an agent needs to call the tool correctly.

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

Completeness5/5

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

The output schema covers return shape, and the description still pins down output units (Pa) and the no-rounding behavior. For a 6-parameter computational tool with zero schema descriptions, this is complete.

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

Parameters5/5

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

Schema coverage is 0% (titles only), yet the description documents every parameter: shear_force in N, area in m² with a >0 constraint, and the roles of first_moment_q, inertia, and width in the V·Q/(I·b) formula, plus the mode values. It fully compensates for the empty schema.

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

Purpose5/5

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

States the specific verb and physical quantity (횡전단응력 τ 계산) and enumerates the three calculation modes with their formulas, which distinguishes it clearly from siblings like engineering.bending_stress and engineering.mech_stress.

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 explicit mode-selection criteria (rectangular_max requires area and applies to rectangular sections; general requires first_moment_q, inertia, width) and an exclusion: using rectangular_max on circular or I-sections is wrong. It stops short of routing to any sibling tool, but the internal when-to-use guidance is strong.

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

engineering.si_prefix_convertA
Read-onlyIdempotent

수치를 SI 접두사 사이에서 환산한다. 결과 = value × 10^(from 지수 − to 지수)를 Decimal 로 정확히 계산한다. 접두사는 이름으로 넣고(yocto 부터 yotta 까지, 대소문자 무시, 빈 문자열이나 base 는 접두사 없음) 기호(k, M, µ)는 받지 않는다. 이진 접두사(KiB 등)와 단위 자체는 다루지 않으며 데이터 크기는 units_data_size_convert 를 쓴다.

NameRequiredDescriptionDefault
valueYes
to_prefixYes
from_prefixYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
valueYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent), and the description adds genuinely useful behavior: exact Decimal arithmetic with no floating-point drift, case-insensitive prefix matching, and rejection of symbols/binary prefixes. These are invocation-relevant traits not present in the structured fields.

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 sentences, each carrying distinct information: purpose, formula, valid inputs, exclusions plus sibling pointer. Front-loaded and free of repetition.

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

Completeness5/5

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

An output schema exists so return values need not be documented, and the description fully covers input domain, arithmetic semantics, and the boundary with sibling tools. Nothing needed for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load and largely does: it defines the accepted prefix namespace, case-insensitivity, and the empty-string/'base' convention for from_prefix and to_prefix. It does not clarify that 'value' is a string-typed parameter or its accepted format, leaving a small gap.

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

Purpose5/5

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

States a specific verb and resource ('수치를 SI 접두사 사이에서 환산한다') and immediately gives the exact formula, so the operation is unambiguous. It also explicitly excludes binary prefixes and points to units_data_size_convert, distinguishing it from the nearest sibling.

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?

Clearly says what inputs are accepted (prefix names from yocto to yotta, case-insensitive, empty/'base' = no prefix) and what is not (symbols like k, M, µ; binary prefixes; units themselves). It names units_data_size_convert for data size. Lacks a direct comparison to units.convert, so not a full 5.

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

engineering.sn_fatigue_lifeA
Read-onlyIdempotent

바스퀸 식 S_a = S_f'·(2N_f)^b 를 N_f = 0.5·(S_a/S_f')^(1/b) 로 풀어 파손까지의 사이클 수를 구한다(반전 횟수 2N_f 가 아니라 사이클 N_f). stress_amplitude 와 fatigue_strength_coeff 는 같은 응력 단위로 0 초과, basquin_exponent 는 음수(통상 -0.05 ~ -0.12). 평균응력 보정과 피로한도는 반영하지 않는다. 거듭제곱은 30자리 유효숫자.

NameRequiredDescriptionDefault
basquin_exponentYes
stress_amplitudeYes
fatigue_strength_coeffYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
cyclesYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this a pure, idempotent, closed-world read. The description adds genuinely non-obvious behavior: the 30-significant-digit power evaluation and the deliberate omission of mean-stress correction and fatigue limit, which materially affect result interpretation. It stops short of describing the return payload or how the exponent sign interacts with error cases.

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?

The formula and the cycles-vs-reversals distinction are front-loaded, then constraints, then scope limits in a tight sequence with no filler. It is dense but every clause carries information; readability suffers slightly from packing four distinct concerns into one paragraph.

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

Completeness5/5

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

An output schema exists, so return values need no explanation here. For a three-input closed-form calculation, the description covers the governing equation, unit and sign preconditions, the reversals-versus-cycles distinction, numerical precision, and the physical effects deliberately excluded — everything an agent needs to call it correctly and to know when not to.

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

Parameters4/5

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

With 0% schema description coverage the description must carry the load, and it does: all three parameters get unit requirements (stress_amplitude and fatigue_strength_coeff in the same stress unit, both > 0) and a sign plus typical range for basquin_exponent. The one unaddressed oddity is that all three are typed as strings while the math implies decimal values, which the description never explains.

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

Purpose5/5

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

Names the exact physical model (Basquin S-N), gives both the forward and inverted form, and states the computed quantity is cycles to failure rather than reversals. The clarification that N_f is cycles, not 2N_f, removes the single most common ambiguity in this calculation and separates it from siblings like bearing_life_l10 or weibull_reliability that also return 'life'.

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?

Applicability is stated through constraints (positive, unit-matched stress values; negative exponent typically -0.05 to -0.12) and through explicit exclusions: mean-stress correction and the fatigue limit are not modeled, which tells the agent when this tool is the wrong choice. It does not name an alternative tool for those cases, so it falls short of a 5.

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

engineering.stefan_boltzmannA
Read-onlyIdempotent

회색체 표면과 주위 사이의 순복사 열전달 Q = ε·σ·A·(T_s⁴ − T_surr⁴) (W)를 계산한다. σ = 5.670374419e-8 W/(m²·K⁴), emissivity 는 [0, 1], area m². 온도는 절대온도 K(0 초과)이므로 섭씨를 그대로 넣으면 틀린다. 작은 표면이 큰 주위에 둘러싸인 경우의 식이며 표면이 더 차가우면 음수. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
areaYes
emissivityYes
temperature_surfaceYes
temperature_surroundYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
heat_rate_wYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, so safety is covered. The description adds real value by warning that temperatures must be absolute Kelvin (feeding Celsius yields wrong results), that the result can be negative, and that output is returned at 50 significant digits without rounding. A 3 is fair because these notes are input/precision caveats rather than deep behavioral disclosure, and the pure-function nature is already implied by 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?

Front-loaded formula, then constants, then unit conventions, then the applicability caveat. Five short sentences, each carrying distinct information — no restatement of the tool name and no filler.

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

Completeness5/5

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

An output schema exists, so return-shape explanation is unnecessary; the description instead supplies the two things the schema lacks — absolute-temperature requirement and the 50-digit precision note — plus the physical regime in which the formula is valid. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does: emissivity constrained to [0, 1], area in m², both temperatures in K and strictly > 0. It does not mention that all four inputs arrive as strings, which is the one non-obvious schema fact left undocumented.

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

Purpose5/5

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

Names the exact physical quantity (net radiative heat transfer between a gray-body surface and its surroundings), gives the closed-form equation Q = ε·σ·A·(T_s⁴ − T_surr⁴) with units in W, and pins the Stefan–Boltzmann constant. No sibling tool computes this, and the agent can identify the resource without opening the schema.

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?

States the applicability condition explicitly — 'small surface enclosed by large surroundings' — and the sign convention when the surface is colder. It does not contrast with the nearby engineering.convective_heat_transfer or engineering.thermal_resistance tools, so the agent gets context but no exclusion routing.

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

engineering.thermal_expansion_strainA
Read-onlyIdempotent

선팽창 변형률 ε = α·ΔT 를 계산하고 length(0 초과)를 주면 길이 변화 ΔL = ε·L₀ 도 반환한다. alpha 는 선팽창계수(1/K), delta_t 는 K 또는 °C 의 온도 변화량이며 음수면 수축이다. 온도 자체(예: 20°C)가 아니라 변화량을 넣어야 한다. ΔL 은 length 와 같은 단위. 1차원 자유 팽창만 다루며 구속 열응력은 계산하지 않는다. 반올림 없음.

NameRequiredDescriptionDefault
alphaYes
lengthNo
delta_tYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
strainYes
delta_lengthNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only and idempotent behavior, and the description adds substantive context beyond that: sign convention for contraction, unit consistency for ΔL, optional return behavior, no rounding, and the 1D free-expansion limitation.

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?

The formula and optional length-change behavior are front-loaded, and each subsequent sentence adds a distinct constraint (units, sign, input pitfall, scope, rounding). There is no filler.

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

Completeness5/5

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

An output schema exists, so return structure does not need explanation, and the description still covers all invocation-critical details: input semantics, optional output, units, rounding, and scope limits. Nothing important for correct use is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate fully, and it does: alpha is identified as the linear expansion coefficient in 1/K, delta_t as temperature change in K or °C with negative meaning contraction, and length as a positive optional input whose unit matches ΔL.

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 quantity and formula (ε = α·ΔT) plus the optional length-change output, so the tool's purpose is unambiguous. It also scopes the tool to 1D free thermal expansion and excludes constrained thermal stress, though it does not explicitly contrast with engineering.mech_strain.

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?

It gives a key usage rule — delta_t must be a temperature change, not an absolute temperature — and explains when the optional length output applies (length > 0). It also clearly excludes constrained thermal stress, but does not name a specific alternative tool for that case.

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

engineering.thermal_resistanceA
Read-onlyIdempotent

열저항 K/W 를 합성한다. topology 'series' 는 R_total = ΣRᵢ, 'parallel' 은 1/R_total = Σ(1/Rᵢ). resistances 는 열저항의 숫자 문자열 목록(1개 이상, 모두 0 초과, 같은 단위)이다. 0 저항(완전 전도)은 입력할 수 없고 직렬과 병렬이 섞인 회로는 단계별로 나눠 호출해야 한다. 반올림 없이 50자리 유효숫자.

NameRequiredDescriptionDefault
topologyYes
resistancesYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
totalYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and closed-world, so the safety profile needs no restating. The description usefully adds validation constraints (all values > 0, same unit, no zero resistance) and the no-rounding / 50-significant-digit precision guarantee, which is meaningful behavioral context for a compute tool.

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?

Five short sentences, each carrying distinct information: purpose, formulas per topology, input format, edge-case exclusions, and precision. Front-loaded with the purpose and formulas, zero filler.

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

Completeness5/5

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

An output schema exists, so return values need no explanation. For a two-parameter numeric tool, the description covers purpose, both formula branches, input validation, forbidden inputs, decomposition strategy and precision — nothing an agent needs to call it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0% and neither parameter has an enum, yet the description fully specifies the legal values of topology ('series' / 'parallel') with their formulas, and documents resistances as a list of numeric strings with cardinality, sign, unit-consistency and zero-exclusion constraints. This compensates completely for the bare schema.

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

Purpose5/5

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

States a specific verb and resource ('열저항 K/W 를 합성한다') and immediately supplies the exact formulas for both topologies, so the agent knows precisely what computation happens. It also implicitly distinguishes itself from the sibling resistor_series/resistor_parallel style tools by handling both topologies through one parameter.

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?

Explicitly states that mixed series/parallel circuits must be decomposed and called in stages, and that zero resistance cannot be supplied — real when-to-use/when-not-to guidance. It stops short of naming an alternative sibling tool by name, so it is not a full 5.

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

engineering.thevenin_equivalentA
Read-onlyIdempotent

개방 전압과 단락 전류로 테브난 등가 회로를 구한다. V_th=V_oc, R_th=V_oc/I_sc. open_circuit_voltage(V)와 short_circuit_current(A, 0 초과)는 Decimal 문자열. 반환: v_th, r_th. 오용 주의: 독립 전원이 없는 회로는 V_oc가 0이라 R_th가 0으로 계산되므로 저항 합성으로 R_th를 구해야 한다.

NameRequiredDescriptionDefault
open_circuit_voltageYes
short_circuit_currentYes

Output Schema

NameRequiredDescription
r_thYes
v_thYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so safety is covered. The description adds meaningful domain behavior beyond that: inputs must be Decimal strings, short_circuit_current must be greater than zero, and the degenerate no-independent-source case silently yields R_th=0.

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 dense sentences: purpose and formula first, then input format, then output, then the misuse caution. No padding; every sentence provides actionable information.

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

Completeness5/5

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

For a two-parameter calculator with an output schema, this covers inputs, units, constraints, formula, return names, and the key edge case. Nothing needed to invoke it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry parameter meaning, and it does: open_circuit_voltage is in volts, short_circuit_current is in amps and must be >0, and both are Decimal strings. It also defines how the parameters combine mathematically.

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

Purpose5/5

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

States a specific verb and resource ('테브난 등가 회로를 구한다' / compute Thevenin equivalent) and immediately gives the defining formulas V_th=V_oc and R_th=V_oc/I_sc. This clearly separates it from sibling tools such as engineering.norton_equivalent or resistor combination tools.

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?

Provides a clear when-not condition: circuits without independent sources have V_oc=0, so R_th must instead be found by resistor combination. It does not explicitly name a sibling alternative, but the applicability boundary is concrete enough for correct tool selection.

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

engineering.three_phase_powerA
Read-onlyIdempotent

균형 3상 회로의 피상, 유효, 무효 전력을 선간 값으로 구한다. S=√3·V_LL·I_L, P=S·cosφ, Q=√(S²−P²). line_voltage(V)와 line_current(A)는 0 초과, power_factor는 -1 이상 1 이하 Decimal 문자열. connection('wye'/'delta')은 검증만 하고 수식은 같다. Q는 항상 0 이상이라 진상 지상을 구분하지 못한다.

NameRequiredDescriptionDefault
connectionNowye
line_currentYes
line_voltageYes
power_factorYes

Output Schema

NameRequiredDescription
realYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
apparentYes
reactiveYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantial behavioral context: input validity (>0, PF in [-1,1]), that connection is only validated with an identical formula, and the key limitation that Q is always ≥0 so leading/lagging cannot be distinguished.

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?

Front-loaded with purpose then formulas, then constraints, then the caveat, every sentence carrying information with no filler.

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

Completeness5/5

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

An output schema exists so return values need no explanation, and the description covers inputs, formula, validation behavior, and the leading/lagging limitation — everything needed to invoke and interpret correctly.

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

Parameters5/5

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

With 0% schema description coverage the description fully compensates, documenting units and constraints for line_voltage (V, >0), line_current (A, >0), power_factor (Decimal string, [-1,1]), and connection (wye/delta, validation only).

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

Purpose5/5

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

States a specific verb and resource (compute apparent/active/reactive power of a balanced three-phase circuit) and gives the exact formulas, so an agent can distinguish it from engineering.electrical_power and engineering.power_factor_correction without opening the schema.

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 'balanced three-phase / line-to-line values' scoping makes clear when this applies versus single-phase power tools, but it never explicitly names an alternative or states when NOT to use it. Context is clear but no explicit routing.

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

engineering.torque_rotational_powerA
Read-onlyIdempotent

회전 일률 P = τ·ω (W)를 계산한다. torque 는 N·m, angular_velocity 는 rad/s 이다. rpm 을 그대로 넣으면 틀리므로 ω = 2π·rpm/60 으로 먼저 환산해야 한다. 두 값의 부호는 그대로 곱해진다. 유한한 Decimal 문자열만 허용하며 호출자의 Decimal 설정과 독립적으로 50자리 유효숫자 HALF_EVEN으로 계산한다. 계산 범위 초과는 입력 오류다.

NameRequiredDescriptionDefault
torqueYes
angular_velocityYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
powerYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent, yet the description still adds real value: input must be finite Decimal strings, computation uses 50 significant digits HALF_EVEN independent of the caller's Decimal context, and out-of-range computation is treated as an input error. These are non-obvious behavioral traits an agent cannot infer otherwise.

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?

Five short sentences, formula and units front-loaded, then the rpm pitfall, then precision/range behavior. No filler; every sentence conveys a constraint the caller needs.

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

Completeness5/5

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

Output schema exists, so return values need not be described. With two parameters fully explained (units, format), precision behavior stated, and range errors defined, an agent has everything needed to call this correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does: torque is N·m, angular_velocity is rad/s, both must be finite Decimal strings, and the rpm pitfall is flagged. It stops short of giving format examples, but the unit and type semantics are fully supplied.

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

Purpose5/5

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

States a specific verb and resource ('회전 일률 P = τ·ω 계산') plus the output unit (W), and the formula itself distinguishes it from neighboring power tools such as engineering.electrical_power or engineering.pump_hydraulic_power. No ambiguity about what the tool computes.

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 concrete call-time guidance: rpm must be converted with ω = 2π·rpm/60 first, since passing rpm directly is wrong, and sign propagation is explained. It does not route the agent to or away from sibling tools, but for a single-formula calculator the invocation guidance is the relevant part.

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

engineering.weibull_reliabilityA
Read-onlyIdempotent

2모수 와이블 분포의 신뢰도 R(t) = exp(−(t/η)^β)와 불신뢰도를 계산한다. shape β 와 scale η 는 0 초과, time 은 η 와 같은 단위의 0 이상 값이다(0 이면 R = 1). β < 1 은 초기 고장, β = 1 은 우발 고장, β > 1 은 마모 고장에 해당한다. 위치모수 γ 는 지원하지 않는다. 거듭제곱과 exp 는 30자리 유효숫자.

NameRequiredDescriptionDefault
timeYes
scaleYes
shapeYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
reliabilityYes
unreliabilityYes

TDQS

A3.9/5.0
Behavior4/5

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

With readOnly/idempotent/openWorld annotations already covering the safety profile, the description adds useful behavior: parameter domain constraints (β,η>0, time≥0, time=0→R=1), the explicit exclusion of a location parameter γ, and 30-significant-digit precision. This is solid value beyond the annotations, short only of edge-case response details.

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 dense sentences with zero filler; the formula and domain constraints are front-loaded, followed by the β-interpretation, the γ exclusion, and precision note. Every sentence adds distinct value.

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 3-parameter pure-math tool with an output schema (so return values need no explanation), the description covers purpose, domain constraints, precision, and the location-parameter limitation. The only minor gap is routing guidance to the exponential sibling for the β=1 case.

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

Parameters4/5

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

Schema coverage is 0% (params are bare strings with title only), so the description must carry semantics—and it does: it defines shape β, scale η, and time in η's units, including the domain constraints for each. It does not explain the string typing (arbitrary precision), leaving a minor gap.

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 (계산한다/calculates) and resource (2-parameter Weibull reliability R(t) and unreliability), including the exact formula. An agent can identify the operation clearly, though it doesn't explicitly name the closest sibling (engineering.exponential_reliability) to differentiate.

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?

The β interpretation guidance (β<1 infant mortality, β=1 random, β>1 wear-out) implies the appropriate diagnostic context, but there is no explicit statement of when to prefer this over exponential_reliability or other reliability siblings, and no when-not-to-use guidance.

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

finance.black_scholesA
Read-onlyIdempotent

Black-Scholes 유럽형 옵션의 가격과 델타, 감마, 베가, 세타, 로를 계산한다. option_type 은 call 또는 put, rate, sigma, dividend_yield 는 연율 소수, time_to_expiry 는 연 단위, 모두 Decimal 문자열이며 결과는 유효숫자 12자리. 베가는 변동성 1.0 당 변화량, 세타는 연 단위이고 미국형 옵션이나 조기행사에는 맞지 않는다.

NameRequiredDescriptionDefault
rateYes
spotYes
sigmaYes
strikeYes
option_typeYes
dividend_yieldNo0
time_to_expiryYes

Output Schema

NameRequiredDescription
rhoYes
vegaYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
deltaYes
gammaYes
priceYes
thetaYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/closed-world, so the description earns credit for adding what they can't: units for every input (연율 소수, 연 단위), the 12-significant-digit output precision, and the vega/theta conventions ('베가는 변동성 1.0 당 변화량, 세타는 연 단위'). It doesn't touch error handling or sign conventions, which keeps it from a 5.

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 sentences, front-loaded with the purpose and outputs, then input conventions, then scope limits. Dense but every clause carries information; no 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?

An output schema exists, so return values needn't be spelled out; the description instead supplies the conventions an agent needs to call it correctly (units, string type, precision, European-only scope). Only the omission of spot/strike meaning and dividend_yield's default keeps it from complete.

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

Parameters4/5

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

Schema coverage is 0% and there are 7 params, so the description carries the burden—and it does: option_type is 'call 또는 put', rate/sigma/dividend_yield are annualized decimals, time_to_expiry is in years, and all inputs are Decimal strings. Spot and strike are left unstated and dividend_yield's default of 0 isn't mentioned, but the critical unit/format semantics are covered.

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 opens with a specific verb and resource ('Black-Scholes 유럽형 옵션의 가격과 델타, 감마, 베가, 세타, 로를 계산한다'), naming exactly which Greeks are returned. This distinguishes it from the payoff-only sibling finance.option_payoff, though no sibling is named explicitly inside the description itself.

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?

It gives an explicit exclusion: American options and early exercise are out of scope ('미국형 옵션이나 조기행사에는 맞지 않는다'), which tells the agent when not to use it. It doesn't name a preferred alternative for those cases, so it stops just short of full routing guidance.

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

finance.bond_durationA
Read-onlyIdempotent

채권의 맥컬리 듀레이션과 수정 듀레이션을 연 단위로 계산한다. face 는 양수, coupon_rate 와 ytm 은 연율 소수 Decimal 문자열, years 는 만기 연수 정수, freq 는 연 이자지급 횟수(기본 2). 가격은 ytm 으로 현금흐름을 할인해 구하며 반올림하지 않는다. 시장 가격만 알면 먼저 bond_ytm 으로 ytm 을 구한다.

NameRequiredDescriptionDefault
ytmYes
faceYes
freqNo
yearsYes
coupon_rateYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
macaulayYes
modifiedYes

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds useful behavioral detail beyond annotations: price is derived by discounting cash flows at ytm and results are not rounded, and duration is expressed in annual units.

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?

The description is front-loaded with the core purpose, then parameter conventions, then the key prerequisite workflow. Every sentence adds actionable information and there is no redundant filler.

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

Completeness5/5

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

For a 5-parameter tool with 0% schema description coverage, the description supplies all necessary parameter semantics and relevant computational behavior. An output schema exists, so the description does not need to explain return values.

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

Parameters5/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 and does so well. It explains face must be positive, coupon_rate and ytm are annual decimal Decimal strings, years is maturity in integer years, and freq is coupon payments per year with a default of 2.

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

Purpose5/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: calculating a bond's Macaulay duration and modified duration, with results in annual units. It clearly distinguishes itself from finance.bond_ytm by explaining that bond_ytm should be used first when only market price is known.

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

Usage Guidelines5/5

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

It explicitly names the alternative workflow: if only the market price is known, use bond_ytm first to obtain ytm, then use this tool. This gives the agent a clear condition for selecting among sibling finance tools.

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

finance.bond_ytmA
Read-onlyIdempotent

채권 만기수익률(YTM)을 뉴턴법으로 구한다. price 와 face 는 양수 Decimal 문자열, coupon_rate 는 연 표면이율 소수 (예 0.05), years 는 만기 연수 정수, freq 는 연 이자지급 횟수(기본 2). ytm 은 기간 수익률 x freq 인 연율이다. 수렴하지 못하면 converged=false 로 마지막 추정값이 나오므로 확인해야 하며 이자 지급일 사이의 경과이자는 지원하지 않는다.

NameRequiredDescriptionDefault
tolNo1e-10
faceYes
freqNo
priceYes
yearsYes
max_iterNo
coupon_rateYes

Output Schema

NameRequiredDescription
ytmYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
convergedYes
iterationsYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/closed-world, so the description is free to add real behavioral context, and it does: the solver is Newton's method, failure to converge still returns a value flagged converged=false, and mid-period accrued interest is out of scope. These are exactly the failure-mode and scope facts an agent needs before trusting the output.

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?

Purpose is front-loaded and every sentence carries information: parameters, the ytm annualization convention, then the convergence caveat and the scope limit. The parameter explanations are packed into one long run-on clause, which slightly hurts scanability, but there is no 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?

An output schema exists, so return values need not be explained, yet the description usefully flags the converged field as something to check. For a seven-parameter numerical solver the coverage is nearly complete; only tol and max_iter tuning behavior is left entirely to the schema.

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

Parameters4/5

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

Schema description coverage is 0% — every parameter is a bare title — so the description must carry the load, and it documents five of seven: price/face as positive Decimal strings, coupon_rate as a decimal annual rate with an example (0.05), years as integer, freq as payments per year with default 2. The solver controls tol and max_iter remain undocumented in both schema and description, which is the only gap.

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 opening states a specific verb and resource — computes a bond's yield to maturity — and even names the numerical method (Newton's method). It is unambiguous what the tool produces. It does not explicitly contrast itself with the nearest sibling, finance.bond_duration, so it stops short of a 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?

The description gives a clear operational condition: check converged=false because a non-converging run still returns the last estimate. It also names an explicit exclusion — accrued interest between coupon dates is not supported — which tells the agent when not to use it. It stops short of naming alternatives for the unsupported case.

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

finance.cagrA
Read-onlyIdempotent

복합연평균성장률(CAGR)을 계산한다. CAGR = (ending_value / beginning_value)^(1 / periods) - 1. beginning_value 는 0보다 크고 ending_value 는 0 이상인 Decimal 문자열, periods 는 1 이상 정수다. 결과는 배수(0.1 = 10%)이며 decimals(기본 6)자리로 rounding(기본 HALF_EVEN) 처리한다.

NameRequiredDescriptionDefault
periodsYes
decimalsNo
roundingNoHALF_EVEN
ending_valueYes
beginning_valueYes

Output Schema

NameRequiredDescription
cagrYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds real value on top: it discloses that the output is a multiple (0.1 = 10%), the default precision and rounding mode, and the input domain limits. It does not say how it behaves on violated preconditions (negative growth, zero beginning value), which is the remaining behavioral gap.

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 dense sentences, front-loaded with the formula, then constraints, then output scale and defaults. Every sentence carries information an agent needs; nothing is redundant with the schema.

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 five-parameter numeric calculator with an output schema, the definition covers formula, input domains, output units and defaults — enough to call it correctly. Missing only the enum of valid `rounding` modes and error behavior, which keeps it from being fully complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the full burden, and it does for all five parameters: beginning_value (>0 Decimal string), ending_value (>=0 Decimal string), periods (>=1 integer), decimals (default 6), rounding (default HALF_EVEN). The one gap is that the accepted `rounding` values are never enumerated, so an agent knows the default but not the legal alternatives.

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

Purpose5/5

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

States a specific verb (계산한다) plus the exact resource (CAGR) and even gives the formula, which makes it unmistakable against siblings like finance.roi or finance.irr. An agent can identify exactly what this computes without opening the schema.

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?

Usage is only implied by the formula — there is no explicit 'use this instead of roi/irr when...' routing, nor guidance on when CAGR is inappropriate. The input domain constraints (beginning_value > 0, periods >= 1) hint at valid contexts but are not framed as usage advice.

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

finance.forward_priceA
Read-onlyIdempotent

무차익 선도가격을 계산한다. F = S x exp((r - y) x T), 연속복리 기준이며 income_yield(배당률이나 쿠폰수익률, 기본 0)를 차감한다. spot 은 양수, time_to_expiry 는 0 초과 연 단위, 모두 Decimal 문자열이고 결과는 소수 8자리. 이산복리 이율은 연속복리로 환산해서 넣어야 한다.

NameRequiredDescriptionDefault
spotYes
income_yieldNo0
risk_free_rateYes
time_to_expiryYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
forward_priceYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish that this is a safe, idempotent, closed-world read. The description adds useful behavioral detail beyond annotations: the exact pricing convention (continuous compounding), treatment of income_yield, input validity constraints, and output precision.

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?

The purpose and formula are front-loaded, followed by compact input constraints and a key compounding caveat. Every sentence adds information without repetition.

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 formula-based financial calculator with an output schema and safety annotations, the description is nearly complete: it covers the pricing formula, input conventions, and output precision. It could be stronger by explicitly distinguishing forward pricing from futures pricing, but nothing essential is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It explains that spot must be positive, time_to_expiry must be greater than zero in years, all inputs are Decimal strings, income_yield defaults to 0 and represents dividend or coupon yield, and the risk-free rate must be in continuous-compounding terms.

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 gives the exact formula, so the purpose is unambiguous. It does not explicitly differentiate itself from the nearby sibling finance.futures_price, which keeps it from a 5.

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?

The formula and the note about converting discrete compounding rates imply when this tool is appropriate, but there is no explicit when-to-use guidance or comparison against alternatives like finance.futures_price or finance.black_scholes.

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

finance.futures_priceA
Read-onlyIdempotent

연속복리 보유비용 모형의 선물 이론가격을 계산한다. F = S x exp((r - q) x T). spot 은 양수, risk_free_rate 와 dividend_yield(q, 기본 0)는 연속복리 연율, time_to_expiry 는 0 초과 연 단위, 모두 Decimal 문자열. 결과는 소수 8자리. 이산복리 이율을 그대로 넣으면 값이 어긋난다.

NameRequiredDescriptionDefault
spotYes
dividend_yieldNo0
risk_free_rateYes
time_to_expiryYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
carry_rateYes
futures_priceYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, closed-world behavior, and the description adds real value beyond that: output is rounded to 8 decimals and feeding discrete-compounding rates silently yields wrong results, which is a genuine pitfall an agent could not infer. It stops short of stating validation/error behavior for out-of-range inputs (non-positive spot, T=0).

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?

Front-loads the model name and formula, then parameter constraints, then the discrete-vs-continuous warning. Roughly four sentences with no filler; each one adds information the schema does not.

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 pure deterministic calculation with a read-only annotation set, an output schema, and full parameter semantics supplied in prose, the definition is nearly self-sufficient. The one missing piece is disambiguation from finance.forward_price, which matters because the formulas coincide.

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

Parameters5/5

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

Schema coverage is 0% — the schema carries only bare titles — so the description must carry the full burden, and it does: spot must be positive, risk_free_rate and dividend_yield are continuously compounded annual rates, dividend_yield defaults to 0, time_to_expiry is in years and must be > 0, and all are Decimal strings. Every one of the four parameters gets units, constraints and type.

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?

Names a specific verb+resource (theoretical futures price) and gives the exact cost-of-carry formula, so the computation is unambiguous. However it never contrasts itself with the sibling finance.forward_price, which uses an almost identical continuous-compounding carry formula, so an agent cannot tell from the description alone which of the two to pick.

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?

Usage is only implied: the description establishes that inputs must be continuously compounded annual rates and that discrete rates will produce wrong values, which implicitly scopes when to use it. There is no explicit 'use this instead of X' or exclusion statement, and the close sibling finance.forward_price is never mentioned.

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

finance.fvA
Read-onlyIdempotent

현재 금액의 미래가치를 계산한다. FV = PV x (1+r)^n, 기간마다 복리. present_value 와 rate(기간당 이율, 0 이상, 예 0.05)는 Decimal 문자열, periods 는 1 이상 정수. decimals(기본 2)자리로 rounding(기본 HALF_EVEN) 처리한다. 금액과 이율은 유한해야 하며 decimals는 0 이상 정수다. 호출자 설정과 독립적인 50자리 정밀도로 계산하고 계산 범위 초과는 입력 오류다. 연이율과 월 단위 기간 수처럼 단위가 다른 값을 섞어 넣지 않는다.

NameRequiredDescriptionDefault
rateYes
periodsYes
decimalsNo
roundingNoHALF_EVEN
present_valueYes

Output Schema

NameRequiredDescription
fvYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses 50-digit internal precision independent of caller settings, that out-of-range computation is treated as an input error, default rounding behavior (HALF_EVEN to decimals), and that amount/rate must be finite. Those are real behavioral traits an agent could not infer from annotations or schema.

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?

Formula and core purpose are front-loaded, then parameter formats, then precision/rounding, then the unit-mismatch warning — a sensible order with no filler sentences. Density is high and a couple of constraint clauses could be tightened, but nothing is wasted.

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

Completeness5/5

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

Given a 5-parameter tool with an output schema and annotations already present, the description fills the remaining gaps: input formats, numeric constraints, rounding/precision semantics, and error conditions. An agent has everything needed to invoke it correctly; return values are covered by the output schema.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it documents all five parameters: Decimal-string types for present_value and rate, rate >= 0 with example 0.05, periods as integer >= 1, decimals default 2 and non-negative, rounding default HALF_EVEN. The one gap is that accepted rounding mode values are never enumerated, so an agent must guess valid strings beyond the default.

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

Purpose5/5

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

States a specific verb+resource (compute future value) and gives the exact formula FV = PV x (1+r)^n with per-period compounding. The direction of the calculation (PV -> FV) distinguishes it from the sibling finance.pv without needing to open either schema.

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?

Usage is implied by the stated formula rather than spelled out; there is no explicit 'use this when' or reference to alternatives such as finance.pv or finance.cagr. The one caution — do not mix unit bases such as an annual rate with a monthly period count — is genuine usage guidance, but it is the only one.

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

finance.irrA
Read-onlyIdempotent

내부수익률(IRR), 즉 NPV 를 0 으로 만드는 기간 수익률을 구한다. cashflows 는 2개 이상이며 index 0 이 t=0, 양수와 음수가 모두 있어야 한다. 뉴턴법이 실패하면 -0.99 이상 10 이하 구간 이분법을 쓰고 max_iter 는 10000 이하. 해를 못 찾으면 irr=null, converged=false 를 돌려준다. 월별 현금흐름의 결과는 연율이 아니라 월 수익률이다.

NameRequiredDescriptionDefault
tolNo1e-10
guessNo0.1
max_iterNo
cashflowsYes

Output Schema

NameRequiredDescription
irrYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
convergedYes
iterationsYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare readOnly/idempotent/closed-world, but the description goes far beyond: it names the primary solver (Newton), the bisection bracket (-0.99 to 10) used on failure, the max_iter ceiling of 10000, the failure contract (irr=null, converged=false), and the critical unit caveat that monthly cash flows yield a monthly rather than annualized rate. These are exactly the behavioral traits an agent cannot infer from structured fields.

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?

Front-loaded with the definition, then constraints, then failure behavior, then the units caveat — a sensible order with no filler. The Newton/bisection sentence is somewhat implementation-detail heavy, but it justifies the max_iter limit and the convergence flag, so it largely earns its place.

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 4-parameter numerical solver with a defined output schema, the description covers the input domain constraints, solver robustness, failure signaling, and rate-frequency ambiguity. The only remaining gap is that 'tol' and 'guess' are never explained, which matters for an iterative root-finder where a bad guess can trigger the bisection fallback.

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 must carry parameter meaning; it does so for 'cashflows' (ordering, sign constraints, minimum length) and 'max_iter' (upper bound), which are the parameters most likely to cause errors. It says nothing about 'tol' or 'guess', leaving two of four parameters undocumented anywhere.

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

Purpose5/5

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

States a precise verb+resource: computes IRR, defined explicitly as the periodic rate where NPV = 0, which also draws a clear conceptual line to the sibling finance.npv. The agent knows exactly what mathematical result is produced without opening the schema.

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?

Usage conditions for the inputs are stated (cashflows ≥ 2, index 0 = t=0, must contain both positive and negative values), which effectively tells the agent this tool fails on all-positive or all-negative streams. However, there is no explicit routing versus alternatives such as finance.npv, finance.cagr, or finance.bond_ytm, so sibling selection is left to inference.

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

finance.loan_scheduleA
Read-onlyIdempotent

대출 상환 스케줄을 계산한다. method 는 EQUAL_PAYMENT(원리금균등, 기본) 또는 EQUAL_PRINCIPAL(원금균등). annual_rate 는 연이율 소수(예 0.03)이며 월이율 = 연이율 / 12, months 는 1 이상 1200 이하 정수. decimals(기본 0)자리로 rounding(기본 HALF_EVEN) 처리하고 마지막 회차가 잔액을 정리한다. 원금균등은 monthly_payment 가 null 이다. 거치기간과 중도상환은 지원하지 않는다.

NameRequiredDescriptionDefault
methodNoEQUAL_PAYMENT
monthsYes
decimalsNo
roundingNoHALF_EVEN
principalYes
annual_rateYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
scheduleYes
monthly_paymentYes

TDQS

A4.1/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 real behavioral detail beyond them: the final installment absorbs the residual balance, EQUAL_PRINCIPAL returns null monthly_payment, and rounding/decimals defaults. These are exactly the quirks an agent needs and are not derivable from the schema.

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?

A single dense paragraph with the core purpose front-loaded, then method, rate convention, bounds, rounding, and output quirk in descending order of importance. Nearly every clause carries information; only the trailing 'unsupported' sentence could be trimmed further.

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

Completeness5/5

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

With an output schema present, the description needn't document return values, and it still flags the one non-obvious output behavior (null monthly_payment under EQUAL_PRINCIPAL). Combined with rate convention, bounds, rounding defaults, and unsupported features, an agent has everything needed to invoke it correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it largely does: it defines method's two enum values with their meanings, specifies annual_rate is a decimal fraction (0.03) with monthly = annual/12, bounds months to 1–1200, and gives defaults for decimals and rounding. The only gap is 'principal', whose string/decimal format is never explained.

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?

Opens with a specific verb+resource ('대출 상환 스케줄을 계산한다' — compute a loan amortization schedule), which is unambiguous and distinct from anything else in the finance.* family. It stops short of explicitly contrasting with siblings (pv/fv/irr), but no sibling competes for the same job, so an agent can route here without ambiguity.

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?

Provides clear applicability boundaries by stating '거치기간과 중도상환은 지원하지 않는다' (no grace period, no early repayment) and by naming the two supported repayment methods with their Korean labels. It does not give an explicit when-to-use/when-not vs an alternative, but there is no meaningful alternative in the toolset.

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

finance.npvA
Read-onlyIdempotent

순현재가치를 계산한다. NPV = sum(CF_t / (1+r)^t). cashflows 의 index 0 은 t=0 시점이라 할인하지 않으며 초기 투자는 음수로 넣는다. rate 는 기간당 할인율(0 이상 Decimal 문자열), decimals(기본 2)자리로 rounding(기본 HALF_EVEN) 처리한다. 첫 현금흐름을 1기 말로 보려면 앞에 0 을 추가한다.

NameRequiredDescriptionDefault
rateYes
decimalsNo
roundingNoHALF_EVEN
cashflowsYes

Output Schema

NameRequiredDescription
npvYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.2/5.0
Behavior4/5

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

With readOnly/idempotent/openWorld annotations already covering the safety profile, the description adds real behavioral detail: rounding is applied to decimals (default 2) places using HALF_EVEN. It still doesn't spell out return shape or handling of non-conforming input, but the added rounding semantics are valuable.

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?

Front-loads the purpose and formula, then layers conventions. Sentences are dense but each carries meaning; nothing is wasted, though the formula could be seen as redundant for expert callers.

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?

An output schema exists so return values needn't be described, and the description covers inputs and timing conventions thoroughly. Complete enough for correct invocation of a read-only calculator.

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

Parameters5/5

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

Despite 0% schema coverage, the description documents all four parameters: rate is a per-period discount rate as a Decimal string ≥ 0, cashflows index 0 is undiscounted with negative for investment, decimals default 2, rounding default HALF_EVEN. This fully compensates for the bare schema.

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+resource ('순현재가치를 계산한다') and supplies the exact formula NPV = sum(CF_t / (1+r)^t), so the operation is unambiguous. It does not explicitly contrast with finance.pv or finance.irr, so it falls short of full sibling differentiation.

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 concrete usage conventions: index 0 is t=0 and not discounted, initial investment goes in as negative, and prepend a 0 to treat the first cashflow as end-of-period-1. These resolve the main ambiguity about timing but do not say when to choose npv over pv/irr.

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

finance.option_payoffA
Read-onlyIdempotent

옵션의 만기 payoff 를 계산한다. option_type 은 vanilla, digital(현금 지급), asian(산술평균), barrier(up_in, up_out, down_in, down_out). spot_path 는 기초자산 가격 문자열 목록이며 vanilla 와 digital 은 마지막 값만 쓴다. barrier 유형은 barrier 와 barrier_type 이 필수이고 결과는 소수 8자리. 만기 가치일 뿐 프리미엄이 아니다.

NameRequiredDescriptionDefault
strikeYes
barrierNo
is_callNo
spot_pathYes
option_typeYes
barrier_typeNo
digital_cashNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
payoffYes
is_callYes
activatedNo
option_typeYes
terminal_spotYes

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description adds real behavioral detail: output is rounded to 8 decimal places, the result is maturity intrinsic value and not premium, and barrier inputs are mandatory for barrier types. It does not discuss edge cases (e.g. path shorter than expected) or averaging behavior particulars, so it falls short of a 5.

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?

A single dense paragraph that front-loads the core purpose and then layers the option-type rules and caveats. Every clause carries information; nothing is repeated from the schema or title.

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?

Output schema exists, so return formatting need not be explained, and the description covers type dispatch and barrier prerequisites well. The notable gap is that put/call direction (is_call) is never mentioned, which an agent would need to invoke the tool correctly.

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?

With 0% schema description coverage the description must carry parameter meaning, and it does explain option_type values, spot_path semantics (list of price strings; last value only for vanilla/digital), and the barrier/barrier_type dependency. However, two parameters are left unexplained: is_call (put/call direction, defaulting to true) and strike (a string), and digital_cash is only implied by '현금 지급'.

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

Purpose5/5

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

States a specific verb and resource ('옵션의 만기 payoff 를 계산한다') and enumerates the supported option types (vanilla, digital, asian, barrier with its four sub-types), so an agent knows exactly what is computed. The closing clause ('만기 가치일 뿐 프리미엄이 아니다') separates it from pricing siblings like finance.black_scholes.

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 description gives clear context for each option_type, including which types use only the last path value and which require barrier/barrier_type. It never names an alternative tool (e.g. black_scholes) or an explicit when-not condition, so a 4 rather than a 5.

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

finance.payback_periodA
Read-onlyIdempotent

단순 투자회수기간을 계산한다. cashflows 의 index 0 은 음수인 초기 투자이고 이후 값은 기간별 현금흐름이다. 누적 현금흐름이 처음 0 이상이 되는 기간 안에서 선형 보간하며, 회수되지 않으면 payback_period=null 과 recovered=false 를 반환한다. 화폐의 시간가치는 반영하지 않으며 decimals(기본 6)자리로 rounding(기본 HALF_EVEN) 처리한다.

NameRequiredDescriptionDefault
decimalsNo
roundingNoHALF_EVEN
cashflowsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
recoveredYes
payback_periodYes

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses the interpolation rule, the unrecovered-case return (payback_period=null, recovered=false), the absence of discounting, and default rounding behavior. These are exactly the behaviors an agent cannot infer from structured fields.

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 dense sentences, front-loaded with purpose, then input contract, then algorithm edge case, then caveat/rounding. No sentence is redundant and no filler appears.

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 an output schema present, return shape needn't be explained, yet the description still documents the null/recovered failure mode. The only small gap is that accepted rounding mode values and any constraint on cashflow length are not described.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does: cashflows index 0 is defined as the negative initial outlay with subsequent entries as per-period flows, and decimals/rounding defaults and their effect are stated. This is precisely the semantic gap the bare array schema leaves.

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

Purpose5/5

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

States a specific verb+resource ('단순 투자회수기간을 계산한다') that is clearly distinct from sibling finance tools such as npv, irr, roi, and the depreciation family. An agent can identify the computation without opening the schema.

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 qualifier '단순' plus the explicit note that 화폐의 시간가치 is not reflected effectively excludes discounted-payback use cases, telling the agent when this tool is the wrong choice. However, no sibling alternative (e.g. npv/irr) is named for the discounted case, so it stops short of full when/when-not routing.

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

finance.pvA
Read-onlyIdempotent

미래 현금흐름의 현재가치를 계산한다. PV = FV / (1+r)^n. future_value 와 rate(기간당 이율, 0 이상, 예 0.05)는 Decimal 문자열, periods 는 1 이상 정수. decimals(기본 2)자리로 rounding(기본 HALF_EVEN) 처리한다. 금액과 이율은 유한해야 하며 decimals는 0 이상 정수다. 호출자 설정과 독립적인 50자리 정밀도로 계산하고 계산 범위 초과는 입력 오류다. 연이율과 월 단위 기간 수처럼 단위가 다른 값을 섞어 넣지 않는다.

NameRequiredDescriptionDefault
rateYes
periodsYes
decimalsNo
roundingNoHALF_EVEN
future_valueYes

Output Schema

NameRequiredDescription
pvYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnly/idempotent/closed-world), it discloses that the calculation uses a fixed 50-digit precision independent of caller settings, that out-of-range results are treated as input errors, and that inputs must be finite. That is exactly the kind of behavioral context annotations cannot express.

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?

Front-loaded with the purpose and formula, then constraints, then precision/error behavior — a sensible order with little waste. A couple of clauses slightly restate earlier constraints (finiteness, decimals ≥ 0), costing a point.

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

Completeness5/5

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

For a deterministic numeric tool with an output schema (so return values need not be described), everything an agent needs — formula, unit conventions, type formats, bounds, rounding, precision, error semantics — is present.

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

Parameters5/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, and it does: future_value and rate are Decimal strings, rate bounds and example given, periods constrained to integer ≥ 1, decimals defaults to 2 and must be a non-negative integer, rounding defaults to HALF_EVEN. All five parameters get meaning beyond their bare titles.

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

Purpose5/5

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

States a specific verb and resource ('미래 현금흐름의 현재가치를 계산한다') and pins it down with the exact formula PV = FV / (1+r)^n, which unambiguously separates it from the inverse sibling finance.fv even though that sibling is not named.

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 real usage constraints (rate is a per-period rate ≥ 0 such as 0.05, periods an integer ≥ 1, and an explicit warning not to mix an annual rate with monthly periods), which tells the agent how to call it correctly. It does not, however, route the agent to alternatives such as finance.fv or finance.npv for the inverse or multi-cashflow case.

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

finance.roiA
Read-onlyIdempotent

투자수익률(ROI)을 계산한다. ROI = net_profit / investment_cost. net_profit 은 손실이면 음수인 Decimal 문자열이고 investment_cost 는 0보다 커야 한다. 결과는 배수(0.25 = 25%)이며 decimals(기본 4)자리로 rounding(기본 HALF_EVEN) 처리한다. 기간을 반영한 연환산 수익률은 아니다.

NameRequiredDescriptionDefault
decimalsNo
roundingNoHALF_EVEN
net_profitYes
investment_costYes

Output Schema

NameRequiredDescription
roiYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/closed-world, and the description adds genuine domain behavior: investment_cost must be strictly positive, net_profit may be a negative Decimal for losses, and the output is a multiplier rather than a percent. It does not say what error occurs when investment_cost is 0, which is the main remaining behavioral gap.

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, front-loaded with the formula and then constraints and output convention; no filler. It does restate the schema defaults (decimals=4, HALF_EVEN) verbatim, which is slightly redundant, though it frames them as behavior rather than raw defaults.

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?

An output schema exists, so return structure needn't be explained, yet the description usefully clarifies that the returned value is a multiplier (0.25 = 25%). With a 0%-covered schema and a few edge cases (zero cost, invalid rounding token) left unaddressed, it is nearly but not fully complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameters, and it largely does: net_profit as a signed Decimal string, investment_cost with a >0 domain constraint, and the meaning of decimals and rounding. The rounding parameter's accepted string values are still not enumerated anywhere.

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

Purpose5/5

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

States a specific verb+resource (calculate ROI) and gives the exact formula ROI = net_profit / investment_cost, so the computation is unambiguous. It also carves out scope by stating it is not a period-annualized return, which implicitly separates it from the finance.cagr sibling that handles annualized growth.

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 closing sentence clarifies when this is the wrong tool ('기간을 반영한 연환산 수익률은 아니다'), giving a real exclusion criterion. It stops short of naming the alternative (finance.cagr) explicitly, so the routing hint requires one inference.

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

finance.sharpe_ratioA
Read-onlyIdempotent

샤프지수 = (평균수익률 - 무위험수익률) / 표본표준편차(n-1)를 계산한다. returns 는 기간 수익률 문자열 목록(2개 이상), risk_free_rate 는 같은 기간 단위(기본 0), periods_per_year 가 0 보다 크면 sqrt(periods_per_year)를 곱해 연환산한다. 표준편차가 0 이면 오류, 결과는 소수 8자리. 연 무위험수익률을 일간 수익률에서 그대로 빼지 않는다.

NameRequiredDescriptionDefault
returnsYes
risk_free_rateNo0
periods_per_yearNo

Output Schema

NameRequiredDescription
nYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
stdevYes
traceYes계산 근거(tool, formula, inputs, steps, output)
sharpeYes
annualizedYes
mean_excessYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, idempotent, closed-world calculation, so the description adds useful extra context: it returns an error when standard deviation is zero, rounds results to eight decimal places, and warns against subtracting an annual risk-free rate directly from daily returns. It does not describe pagination or response shape, but for a pure calculator the behavioral disclosure is strong.

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?

The formula is front-loaded, and every sentence contributes either a parameter rule, an edge case, or an important unit warning. There is no 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?

Given the 0% schema description coverage and the presence of an output schema, the description is nearly complete: it covers the formula, all three parameters, unit consistency, annualization, zero-standard-deviation failure, and output precision. The main missing piece is explicit comparison with sibling ratio tools.

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

Parameters4/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 and does so well: it explains that returns is a list of period return strings requiring at least two values, that risk_free_rate is in the same period unit and defaults to 0, and that periods_per_year triggers sqrt(periods_per_year) annualization. It still leaves some ambiguity about whether return strings are decimals or percentages, so it is not perfect.

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: it computes the Sharpe ratio and even supplies the exact formula. It is clearly distinct in meaning from generic calculators, but it does not explicitly differentiate itself from sibling tools such as finance.sortino_ratio.

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?

The description gives practical usage constraints: returns must contain at least two period return strings, risk_free_rate must be in the same period unit, and annualization occurs when periods_per_year > 0. However, it never says when to choose this tool over alternatives like finance.sortino_ratio or the VaR tools, and it provides no explicit when-not guidance.

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

finance.sortino_ratioA
Read-onlyIdempotent

소르티노 비율 = (평균수익률 - 무위험수익률) / 하방편차를 계산한다. 하방편차 = sqrt(mean(min(r - rf, 0)^2)), 평균은 전체 표본 수로 나눈다. returns 는 기간 수익률 문자열 목록(2개 이상), risk_free_rate 는 같은 기간 단위(기본 0), periods_per_year 가 0 보다 크면 연환산. 하방편차가 0 이면 오류, 결과는 소수 8자리.

NameRequiredDescriptionDefault
returnsYes
risk_free_rateNo0
periods_per_yearNo

Output Schema

NameRequiredDescription
nYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
sortinoYes
annualizedYes
mean_excessYes
downside_devYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the bar is low, and the description still adds real behavior: an error is raised when downside deviation is 0, periods_per_year > 0 triggers annualization, and the result is rounded to 8 decimals. It does not state whether the error is a tool error or a returned sentinel, but the failure mode is disclosed.

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 short sentences, front-loaded with the formula, then the downside-deviation definition, then input constraints and edge cases. Nothing is redundant with the title or schema.

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 an output schema present, return values need not be described, yet the description still notes 8-decimal rounding and the zero-downside-deviation error. Constraints, units and annualization are all addressed; only the numeric string format and the minimum-sample semantics remain unstated.

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

Parameters4/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 load, and it covers all three parameters: returns as a list of period return strings (minimum 2), risk_free_rate in the same period unit with default 0, and periods_per_year enabling annualization when positive. It does not specify whether strings are decimals or percentages, which is the remaining ambiguity.

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 quantity (Sortino ratio) and gives the full formula, including how downside deviation is defined, which is precisely what separates it from finance.sharpe_ratio. It never names the sibling explicitly, so differentiation relies on the agent reading the formula rather than a direct contrast.

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?

There is no explicit statement of when to use this versus finance.sharpe_ratio or finance.var_historical, and no exclusions. Usage is only implied by the formula and the '2 or more returns' precondition.

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

finance.var_historicalA
Read-onlyIdempotent

과거 수익률의 경험적 분위수로 VaR 와 CVaR(기대부족액)을 계산한다. returns 는 기간 수익률 문자열 목록(2개 이상), confidence 는 0 초과 1 미만(기본 0.95)이며 분위수는 선형보간한다. 손실을 양수로 나타낸 소수 8자리 값이고 분포 가정은 없다. 표본이 적으면 꼬리 추정이 불안정하다.

NameRequiredDescriptionDefault
returnsYes
confidenceNo0.95

Output Schema

NameRequiredDescription
nYes
varYes
cvarYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
confidenceYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations cover the read-only/idempotent safety profile, and the description adds substantive behavior beyond them: linear-interpolation quantiles, the sign convention that losses are reported as positive decimals to 8 places, and an explicit warning that small samples make tail estimates unstable. These details materially change how an agent interprets the result.

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 compact sentences, front-loaded with what is computed, then parameters, then output convention, then the caveat. No filler, and the order matches how an agent would need the information.

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

Completeness5/5

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

With an output schema present, the description need not explain return values, but it still discloses the sign and precision convention that the schema alone would not convey. Combined with the parameter minimums, default, interpolation method, and stability caveat, nothing essential for a correct call is missing.

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

Parameters4/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, and it does document both parameters: returns as a list of period-return strings requiring at least 2 elements, and confidence as strictly between 0 and 1 with default 0.95. It stops short of specifying the string numeric format (e.g. '0.01' vs '1%'), which is the one real ambiguity left for a string-typed return series.

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 computation (VaR and CVaR/expected shortfall) on a specific resource (historical returns via empirical quantiles), and the phrase '분포 가정은 없다' implicitly separates it from finance.var_parametric. However, it never names the parametric sibling or any other finance tool, so the differentiation must be inferred rather than read.

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?

The methodological framing (empirical quantiles, no distributional assumption) plus the caveat about small samples implies when this tool suits a use case, but there is no explicit 'use this when / not when / use X instead' routing. An agent must infer the choice against finance.var_parametric on its own.

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

finance.var_parametricA
Read-onlyIdempotent

정규분포를 가정한 모수적 VaR 와 CVaR 를 계산한다. 표본 평균과 표본표준편차(n-1)로 VaR = -(mu + z x sigma). returns 는 기간 수익률 문자열 목록(2개 이상), confidence 는 0 초과 1 미만(기본 0.95). 손실을 양수로 나타낸 소수 8자리 값. 꼬리가 두꺼운 분포에서는 손실을 작게 추정하므로 var_historical 과 비교한다.

NameRequiredDescriptionDefault
returnsYes
confidenceNo0.95

Output Schema

NameRequiredDescription
nYes
zYes
muYes
varYes
cvarYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
sigmaYes
traceYes계산 근거(tool, formula, inputs, steps, output)
confidenceYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/closed-world safety, and the description adds substantive behavior: the exact formula, the sign convention (loss reported as a positive number), the 8-decimal precision, and the known bias of underestimating losses on fat tails. That is real predictive context for interpreting the result, not a restatement of 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 compact sentences that front-load the method before parameters and caveat; every sentence contributes (definition, formula, param rules, limitation). Slightly dense with the formula wedged into the parameter sentence, but no 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 two-parameter read-only calculator with an output schema, the definition covers method, inputs, output sign/precision and the key caveat. The only missing piece an agent might need is the return-convention (simple vs log) that determines whether the z-score math is valid.

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

Parameters4/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 and mostly does: returns is a list of period-return strings requiring at least two entries, and confidence is a value in (0,1) defaulting to 0.95. The gap is that it never says whether returns are arithmetic or log returns, and does not mention that confidence is typed as a string in the schema.

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

Purpose5/5

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

The description names a specific verb and resource (parametric VaR/CVaR under a normal-distribution assumption) and states the exact estimator (sample mean and sample stdev with n-1). It explicitly distinguishes itself from the sibling var_historical, so an agent can pick the right one without opening either schema.

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?

It states the precondition (normality assumption), the input constraint (returns must have 2+ items, confidence strictly between 0 and 1, default 0.95) and names the alternative to cross-check against when tails are fat. It stops short of an explicit 'do not use this when...' rule, which keeps it at 4.

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

geometry.area_circleA
Read-onlyIdempotent

원의 넓이 π * r² 를 계산한다. radius 는 0 이상 Decimal 문자열이며 단위는 자유(결과는 그 단위의 제곱). π 는 mpmath 50자리로 계산하고 유효숫자 30자리 문자열로 반환한다. 지름을 radius 로 넣으면 4배 큰 값이 나오므로 반지름을 넣는다.

NameRequiredDescriptionDefault
radiusYes

Output Schema

NameRequiredDescription
areaYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already guarantee readOnly, idempotent, closed-world behavior, so the safety profile is covered. The description adds real behavioral context beyond them: input must be a non-negative Decimal string, units are free-form and the output is in squared units, π is computed at 50-digit mpmath precision and returned as a 30-significant-digit string. It does not say what happens on a negative or malformed radius, which keeps it below 5.

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 short sentences, each earning its place: formula and purpose first, then input semantics, then numeric precision and return format, then the diameter pitfall. Front-loaded and free of filler.

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

Completeness5/5

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

For a one-parameter geometry tool with an output schema already covering return shape, this description covers purpose, input format, precision, and the principal error mode. An agent could call it correctly without any additional information.

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

Parameters5/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 and does: it specifies the type (Decimal string), the constraint (>= 0), the unit semantics (free choice, result squared), and the most likely misuse (passing a diameter). That is a complete semantic specification for the single parameter.

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

Purpose5/5

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

Names a specific verb (계산한다) and resource (원의 넓이) and states the exact formula π * r², so it is instantly distinguishable from siblings such as geometry.area_rectangle, geometry.area_polygon, and geometry.volume_cylinder. Nothing about the intent requires opening the schema.

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?

The description clarifies the key input decision (pass the radius, not the diameter) and warns that a diameter yields a 4x-too-large result, which is genuinely useful usage guidance. It does not, however, position the tool against alternatives such as geometry.volume_sphere or geometry.area_polygon, so scope routing is only implied by the tool's own math.

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

geometry.area_polygonA
Read-onlyIdempotent

다각형 넓이를 신발끈 공식(Shoelace)으로 계산한다. vertices 는 [[x, y], ...] 형태 Decimal 문자열 좌표이고 꼭짓점 3개 이상을 변을 따라 순서대로 준다. 마지막 점은 첫 점과 자동으로 이어지며 결과는 항상 0 이상이다. 변이 서로 교차하거나 점 순서가 뒤섞이면 실제 면적과 다르다.

NameRequiredDescriptionDefault
verticesYes

Output Schema

NameRequiredDescription
areaYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent safety, and the description adds meaningful behavior: the last point auto-connects to the first, the result is always non-negative, and self-intersecting input yields inaccurate area. These are genuine traits beyond 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.

Conciseness4/5

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

Front-loads purpose, then parameter format, then edge-case caveats in an economical sequence. Every sentence is functional, though it could be marginally tighter.

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?

An output schema exists so return-format explanation is unnecessary, and the single parameter plus input constraints are well covered. The description is essentially complete for an agent to invoke it correctly.

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

Parameters5/5

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

With 0% schema description coverage, the description carries full burden and does so: it documents the [[x, y], ...] nesting, that values are Decimal strings, the 3-vertex minimum, edge ordering, and the auto-closing of the ring. This fully compensates for the bare schema.

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

Purpose5/5

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

States a specific verb (계산한다), resource (다각형 넓이), and named algorithm (신발끈 공식/Shoelace), which immediately distinguishes it from siblings like area_triangle, area_rectangle, and area_circle. An agent can tell exactly what it computes.

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?

Specifies that vertices must be given in edge-order with 3+ points, and warns that crossing edges or scrambled order produce wrong results. Clear context for correct use, though it does not explicitly route to a shape-specific sibling when the polygon is a simple triangle or rectangle.

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

geometry.area_rectangleA
Read-onlyIdempotent

직사각형 넓이 width * height 를 Decimal 로 계산한다. 두 값은 유한한 0 이상 Decimal 문자열이며 단위는 같아야 한다. 입력 자릿수에 맞춰 정확히 곱하며 호출자의 Decimal 정밀도에 영향을 받지 않는다. 대각선 길이나 둘레를 넣으면 의미 없는 값이 나온다. 정사각형은 두 값에 같은 변 길이를 넣는다.

NameRequiredDescriptionDefault
widthYes
heightYes

Output Schema

NameRequiredDescription
areaYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and closed-world, so safety is covered; the description adds genuinely new behavior: exact multiplication to the input's digit count, independent of the caller's Decimal precision. It does not say what happens on invalid or non-finite input (error vs. coercion), which is the remaining behavioral gap.

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?

Front-loads the formula and return type in the first sentence, then constraint, then precision semantics, then the misuse warning, then the square shortcut. No filler sentences; each one carries a distinct, actionable fact.

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?

An output schema exists, so return shape need not be explained, and the description covers inputs, semantics, and misuse cases adequately for a simple 2-parameter pure function. Only the invalid-input/error behavior is left unstated.

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

Parameters5/5

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

Schema coverage is 0% — the properties only carry titles — so the description must carry the burden, and it does: both parameters are strings, must parse as finite non-negative Decimals, must share a unit, and are multiplied exactly. That is far more than the schema provides and fully compensates for the coverage gap.

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

Purpose5/5

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

States a specific verb and resource (compute rectangle area as width * height) and pins the numeric type to Decimal. Siblings like geometry.area_circle, area_triangle, and area_polygon are implicitly distinguished by the rectangle-specific formula and the square special case.

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

Usage Guidelines5/5

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

Gives explicit input conditions (finite, non-negative Decimal strings, matching units) and an explicit when-not-to-use warning that diagonal or perimeter values produce meaningless results. The square case is resolved with a concrete instruction to pass the same edge length twice.

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

geometry.area_triangleA
Read-onlyIdempotent

삼각형 넓이 (base * height) / 2 를 Decimal 로 계산한다. base 는 밑변, height 는 그 밑변에 수직인 높이이며 둘 다 유한한 0 이상 Decimal 문자열, 단위는 같아야 한다. 입력 자릿수에 맞춰 정확히 계산하며 호출자의 Decimal 정밀도에 영향을 받지 않는다. 비스듬한 변의 길이를 height 로 넣으면 틀리므로 수직 높이를 넣는다.

NameRequiredDescriptionDefault
baseYes
heightYes

Output Schema

NameRequiredDescription
areaYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so safety is covered; the description adds real behavioral context — exact computation at input precision and independence from the caller's Decimal context precision — which an agent could not infer from the schema.

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 dense sentences with the formula front-loaded, followed by semantics, precision behavior, and the pitfall warning; no filler or repetition of the schema.

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

Completeness5/5

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

For a two-parameter pure calculation with an output schema present, the description covers inputs, constraints, precision semantics, and common error — nothing an agent needs to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0% (only bare titles), so the description carries the full burden and does: it defines base and height geometrically, imposes constraints (finite, non-negative, same units, Decimal string), and prevents the most likely input error with the slant-side warning.

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

Purpose5/5

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

States a specific verb+resource (compute triangle area) and gives the exact formula (base*height)/2 in Decimal, immediately distinguishing it from geometry.area_rectangle/area_circle/area_polygon siblings.

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?

Clarifies what base and height must be (same units, finite non-negative Decimal, perpendicular height) and explicitly warns that using a slant side as height yields a wrong result. It lacks explicit when-to-use vs. an alternative formula (e.g., Heron), but the misuse exclusion is a strong usage signal.

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

geometry.haversineA
Read-onlyIdempotent

하버사인 공식으로 두 지점의 지구 표면 대원 거리(km)를 계산한다. 위도(-9090)와 경도(-180180)는 도 단위 Decimal 문자열이고 지구 반지름 기본값은 6371km 다. mpmath 50자리 계산 후 유효숫자 30자리로 반환한다. 구면 근사이므로 실제 도로 거리나 타원체 거리와 다르며 라디안을 넣으면 안 된다.

NameRequiredDescriptionDefault
lat1Yes
lat2Yes
lon1Yes
lon2Yes
earth_radius_kmNo6371

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
distance_kmYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely new behavior: 50-digit mpmath internal computation with 30-significant-digit output, and the spherical-approximation accuracy caveat. Missing only error behavior for out-of-range coordinates.

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 compact sentences: purpose first, then input format and defaults, then precision, then accuracy caveat. Nothing is redundant and the most decision-critical information is front-loaded.

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?

An output schema exists, so return-value documentation is not required, yet the description still usefully states the returned precision. Combined with the input-format and accuracy notes, an agent has everything needed to invoke it correctly; only error/edge-case handling is unstated.

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

Parameters4/5

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

Schema coverage is 0% and all five parameters are bare strings, so the description carries the full burden — and it does: latitude range (-90 to 90), longitude range (-180 to 180), decimal-degree string format, and the earth radius default of 6371 km. It does not clarify lat1/lat2 or lon1/lon2 pairing, but the naming is self-evident.

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

Purpose5/5

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

States a specific verb and resource (compute great-circle distance between two points via the haversine formula) plus the output unit (km). This is unambiguous against the other geometry siblings, which are all area/volume/matrix/vector operations with no competing distance tool.

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?

Provides domain exclusions: it is a spherical approximation, so it is not suitable when road distance or ellipsoidal distance is required, and radians must not be supplied. It does not, however, name any alternative tool or state preconditions for choosing this over other computations.

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

geometry.matrix_determinantA
Read-onlyIdempotent

정방행렬 M 의 행렬식을 계산한다. M 은 n×n Decimal 문자열 2차원 리스트(n 은 200 이하). n 이 3 이하면 Decimal 로 정확히 전개하고 n 이 4 이상이면 numpy float64 로 계산해 약 15자리 정밀도만 보장한다. 정방행렬이 아니면 오류이며 n≥4 결과는 근사값임에 유의한다.

NameRequiredDescriptionDefault
MYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the bar is lower, yet the description still adds real behavioral context: exact Decimal expansion for n ≤ 3 versus numpy float64 at ~15 digits for n ≥ 4, a hard size cap of 200, and an explicit error case for non-square matrices. It does not describe the response shape, but an output schema exists to cover that.

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 compact sentences with the representation constraint front-loaded, followed by precision behavior and the error condition. Slight redundancy in the double caveat about n ≥ 4 approximateness, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter numeric tool with an output schema and read-only annotations, the description covers input format, size limits, numerical precision tradeoffs, and the failure mode. Nothing an agent needs to call it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% — the single parameter M is only typed as an array of arrays of strings. The description compensates by specifying the format (n×n 2D list of Decimal strings) and the size bound, which is exactly the missing semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: computes the determinant of a square matrix M. It is plainly distinguishable from siblings like matrix_inverse and matrix_solve, which do different linear-algebra operations.

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 concrete usage conditions: input must be an n×n Decimal-string list with n ≤ 200, non-square input is an error, and n ≥ 4 returns an approximation. It does not name alternatives (e.g., matrix_solve for systems), but the applicability conditions are unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.matrix_inverseA
Read-onlyIdempotent

정방행렬의 역행렬을 numpy.linalg.inv(float64)로 계산한다. M 은 n×n Decimal 문자열 2차원 리스트(n 은 200 이하). 결과 원소는 float64 repr 문자열이라 '1e-05' 같은 지수 표기가 나올 수 있고 정밀도는 약 15자리다. 특이행렬이면 오류. 연립방정식 해가 목적이면 역행렬을 곱하지 말고 matrix_solve 를 쓴다.

NameRequiredDescriptionDefault
MYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnly/idempotent annotations: reports float64 precision (~15 digits), warns that output strings may use exponential notation like '1e-05', states that singular matrices raise an error, and sets an input size limit (n ≤ 200). These are exactly the operational facts an agent cannot get from structured fields.

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 short sentences, zero filler: purpose first, then input contract, then output caveats, then the routing alternative. Every sentence adds information an agent needs at call time.

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?

Covers input shape, size cap, precision, output encoding and failure mode, which is everything needed to call it correctly. An output schema exists, so the return-value discussion is a bonus rather than a requirement, and nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the lone parameter 'M' is a bare string array in the schema, so the description carries the full burden — and does: n×n 2D list of Decimal strings, n ≤ 200, with the return type (float64 repr strings) also characterized.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('정방행렬의 역행렬을 계산한다') plus the exact implementation (numpy.linalg.inv, float64). It then contrasts itself with the sibling matrix_solve, so an agent can separate the two without opening either schema.

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?

Explicitly routes the agent away from this tool when the real goal is solving a linear system: '연립방정식 해가 목적이면 ... matrix_solve 를 쓴다'. That is a concrete when-not condition with a named alternative, though it gives no guidance against the other matrix siblings (determinant, multiply).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.matrix_multiplyA
Read-onlyIdempotent

행렬 곱 A @ B 를 Decimal 로 계산한다. A 는 m×k, B 는 k×n 의 Decimal 문자열 2차원 리스트이며 A 의 열 수와 B 의 행 수가 같아야 한다. 행과 열은 각각 200 이하. float 를 거치지 않아 반올림 오차가 없다. 행렬 곱은 교환법칙이 성립하지 않으므로 A @ B 와 B @ A 는 다르다.

NameRequiredDescriptionDefault
AYes
BYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/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), so the description earns credit for the constraints they don't cover: Decimal-only arithmetic with no float intermediate, hard 200×200 dimension limits, and the requirement that A's column count match B's row count. It omits what happens on a shape mismatch (error vs. silent failure), which is the one behavioral gap left.

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, front-loaded with the operation, then shapes, then limits, then precision and ordering. Each sentence contributes; the non-commutativity sentence is the only one bordering on obvious, though it does serve as an operand-order warning.

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?

Output schema exists, so return values need no prose, and the description fully specifies input types, shapes, size caps, and precision behavior. The only missing piece an agent would want is the failure mode for mismatched or oversized inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — the schema only lists 'A' and 'B' as string arrays — so the description carries the full burden and does: it specifies the m×k and k×n shapes, that entries are decimal strings, and the compatibility rule between them. It stops short of explaining why entries are strings or what an invalid entry produces.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (matrix product A @ B) computed in Decimal, and immediately contrasts it with adjacent operations by naming operand order and shape semantics. Reading only the description, an agent knows this is a matrix product, not a determinant, inverse, or linear solve, so the sibling tools metaphorically just sit in a different category.

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?

The description fixes operand ordering ('A @ B 와 B @ A 는 다르다') and the shape compatibility rule, so the call context is implied. But it never says when to prefer this tool over matrix_solve, matrix_inverse, or scalar core.mul, and gives no exclusions or prerequisites. Usage is therefore inferred rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.matrix_solveA
Read-onlyIdempotent

연립일차방정식 Ax = b 의 해 x 를 numpy.linalg.solve(float64)로 구한다. A 는 n×n Decimal 문자열 2차원 리스트, b 는 길이 n 리스트. 해는 float64 repr 문자열이며 정밀도는 약 15자리다. 특이행렬이거나 b 의 길이가 n 과 다르면 오류. 비정방(과결정, 부족결정) 시스템은 지원하지 않는다.

NameRequiredDescriptionDefault
AYes
bYes

Output Schema

NameRequiredDescription
xYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, closed-world profile, and the description adds real behavioral detail beyond them: the float64 conversion of Decimal string inputs, ~15-digit precision, and the exact failure modes (singular matrix, length mismatch). It does not say how errors are surfaced (exception vs. error payload), which is the remaining gap.

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 tight sentences, front-loaded with the operation and its numeric backend, then input types, then output precision, then error/limitation cases. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return type is also covered by an output schema, yet the description still states the result is a float64 repr string with ~15-digit precision. Combined with the documented inputs and error conditions, an agent has everything needed to call it and interpret failures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (bare 'A'/'b' titles), but the description compensates well: A is an n×n two-dimensional list of Decimal strings, b is a length-n list, and both are required. It leaves the exact accepted string format for decimals implicit, so a small gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('연립일차방정식 Ax = b 의 해 x 를 ... 구한다') and pins the implementation to numpy.linalg.solve(float64). It also excludes non-square systems, which cleanly separates it from siblings like geometry.matrix_inverse and geometry.matrix_determinant that operate on the same matrices.

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 clear preconditions (A must be n×n, b must have length n, matrix must be non-singular) and explicit non-support for overdetermined/underdetermined systems. It does not name an alternative tool to use instead when those conditions fail, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.vector_crossA
Read-onlyIdempotent

3차원 벡터의 외적 a × b 를 Decimal 로 계산한다. a, b 는 정확히 3개 원소의 Decimal 문자열 리스트이고 결과도 3개 원소 리스트다. 외적은 순서를 바꾸면 부호가 반대가 되므로 a × b 와 b × a 를 혼동하지 않는다. 2차원 벡터는 z 성분 0 을 직접 채워 넣는다.

NameRequiredDescriptionDefault
aYes
bYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent, so the safety profile is covered. The description adds meaningful context beyond them: computation is exact via Decimal rather than floating point, the result is a 3-element list, and operation order affects the sign. It does not discuss error behavior for malformed input, which keeps it below 5.

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 short sentences, front-loaded with the core operation, then constraints. Each sentence contributes something (type, arity, ordering, 2D handling) with no 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 two-parameter pure math tool with an output schema and read-only annotations, the description covers types, arity, ordering semantics, and the 2D edge case. Only input-validation failure behavior is left unspecified, a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (parameters are bare 'A' and 'B' arrays of strings), so the description carries the full burden. It does so well, specifying that each input must be exactly 3 elements of Decimal-typed strings, which prevents the common float/string-length mistakes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('3차원 벡터의 외적 a × b') plus the numeric mode (Decimal arithmetic). This clearly separates it from siblings such as geometry.vector_dot, geometry.vector_norm, and geometry.matrix_multiply.

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 real usage guidance: warns not to confuse a × b with b × a because the sign flips, and instructs padding z=0 for 2D inputs. It stops short of naming alternative tools (e.g., vector_dot for the scalar product), so it is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.vector_dotA
Read-onlyIdempotent

두 벡터의 내적 Σ a_i * b_i 를 Decimal 로 계산한다. a, b 는 같은 길이의 비어 있지 않은 Decimal 문자열 리스트이며 반올림 없는 정확한 합이다. 길이가 다르면 오류. 3차원 벡터의 직교 방향이 필요하면 vector_cross 를 쓴다.

NameRequiredDescriptionDefault
aYes
bYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, closed-world behavior, and the description adds the substantive traits: the result is an exact sum with no rounding, inputs must be non-empty and equal length, and mismatched lengths raise an error. That failure-mode disclosure is real added value beyond 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 short sentences: operation, input contract, error condition, sibling routing — front-loaded and free of padding. Nothing repeats what annotations already say.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, and the description covers arithmetic semantics, input constraints, and the failure case. For a two-parameter pure-computation tool this is sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden, and it does: both a and b are non-empty lists of Decimal strings that must be the same length. It does not specify accepted string syntax (exponent notation, separators), which is the only remaining ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('두 벡터의 내적') and even gives the formula Σ a_i * b_i plus the Decimal arithmetic contract. It explicitly distinguishes itself from the sibling geometry.vector_cross, so an agent can route without opening either schema.

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?

Names the alternative (vector_cross) and the condition that selects it (필요한 것이 3D 직교 방향일 때). Lacks guidance relative to other siblings like vector_norm or matrix_multiply, but the primary confusion case is covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.vector_normA
Read-onlyIdempotent

벡터의 L-p 노름 (Σ |v_i|^p)^(1/p) 을 계산한다. v 는 비어 있지 않은 Decimal 문자열 리스트, p 는 1 이상의 정수(기본 2, 유클리드 길이). mpmath 50자리 계산 후 유효숫자 30자리로 반환한다. 최댓값 노름(p=∞)과 정수가 아닌 p 는 지원하지 않는다.

NameRequiredDescriptionDefault
pNo
vYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, closed-world), so the description correctly concentrates on what annotations cannot convey: internal precision (mpmath at 50 digits) and output rounding (30 significant digits), plus the accepted input domain. This is genuinely useful pre-call knowledge about numerical fidelity that would otherwise be invisible.

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?

Three tight sentences, front-loaded with the operation and formula, then input contract, then numerical behavior, then exclusions. Every clause adds information an agent needs; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, a 0% schema-coverage gap, and an output schema that already documents the return shape, the description covers everything the agent needs: input types, the meaning and default of p, precision behavior, and unsupported cases. Nothing material is left to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 entire burden, and it does: it specifies that v is a non-empty array of Decimal strings (not floats), and that p is an integer ≥ 1 with default 2 meaning Euclidean length. It even clarifies the limits on p, which the schema's bare `integer` type does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('벡터의 L-p 노름') and even spells out the formula (Σ|v_i|^p)^(1/p), which instantly separates it from siblings like geometry.vector_dot and geometry.vector_cross. No other sibling computes a norm, so the boundary is unambiguous.

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 description gives explicit applicability constraints: v must be a non-empty list of Decimal strings, p is an integer ≥ 1, default is 2. It also states exclusions (p = ∞ max norm and non-integer p are unsupported), which prevents misuse. It stops short of naming a fallback tool for those unsupported cases, so it is clear context without full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.volume_cuboidA
Read-onlyIdempotent

직육면체 부피 length * width * height 를 Decimal 로 계산한다. 세 값은 유한한 0 이상 Decimal 문자열이며 같은 길이 단위여야 한다. 입력 자릿수에 맞춰 정확히 곱하며 호출자의 Decimal 정밀도에 영향을 받지 않는다. 정확히 표현할 수 없는 결과는 입력 오류로 거부한다. cm 와 m 처럼 단위를 섞어 넣으면 틀린 값이 나온다.

NameRequiredDescriptionDefault
widthYes
heightYes
lengthYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
volumeYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closedWorld safety, and the description still adds real behavior beyond them: exact multiplication independent of caller Decimal precision, rejection of non-exactly-representable results as input errors, and the concrete failure mode of mixing cm and m. These are non-obvious traits an agent cannot get from the schema or 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?

Five short sentences, front-loaded with the operation and formula, then constraints, then precision behavior, then the error case. No sentence is redundant and the unit warning is placed last where it is most salient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers everything else the caller needs: input type/format, unit consistency, precision determinism, and error behavior. Nothing required for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden, and it does: it specifies that length/width/height are finite, non-negative Decimal strings sharing one length unit. It could still clarify edge cases like zero (valid) or scientific notation, but the essential semantics are supplied.

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 opens with a specific verb and resource ('직육면체 부피 ...를 계산한다') and even states the formula length*width*height, which disambiguates from volume_cylinder/volume_sphere siblings. It does not explicitly name the alternative shapes, so it falls just short of the top band.

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 input constraints (finite, non-negative Decimal strings, same unit) and a unit-mixing warning, but never states when to prefer this tool over geometry.volume_cylinder, volume_sphere, or area_rectangle. The routing decision is left to the agent's inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.volume_cylinderA
Read-onlyIdempotent

원기둥 부피 π * r² * h 를 계산한다. radius(밑면 반지름)와 height 는 0 이상 Decimal 문자열이며 같은 길이 단위여야 한다. π 는 mpmath 50자리로 계산하고 유효숫자 30자리 문자열로 반환한다. 지름을 radius 로 넣으면 4배 큰 값이 나온다.

NameRequiredDescriptionDefault
heightYes
radiusYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
volumeYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/closed-world, and the description adds real behavioral detail beyond them: π is computed at 50-digit mpmath precision and the result is returned as a 30-significant-digit string. It also discloses the input encoding constraint (Decimal strings, non-negative).

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 tight sentences, front-loaded with the formula, then units, then numeric precision, then the misuse warning. Every sentence conveys information the caller needs; 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?

For a two-parameter pure function with annotations and an output schema, this covers the semantics, units, input encoding, and output precision an agent needs. Only edge-case behavior (e.g., negative input rejection) is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: radius is identified as the base radius, both values must be non-negative Decimal strings sharing a unit, plus the diameter-vs-radius pitfall. Only upper bounds/precision limits on inputs are unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the exact computation (π * r² * h) and the resource (cylinder volume), so an agent can distinguish it instantly from siblings like geometry.volume_sphere and geometry.volume_cuboid. The formula doubles as a precise specification of what is computed.

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 clear preconditions for correct use: both inputs must be non-negative Decimal strings in the same length unit, and it explicitly warns that passing a diameter as radius yields a 4x-too-large result. It does not explicitly contrast with sibling volume tools, but the domain makes the choice self-evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry.volume_sphereA
Read-onlyIdempotent

구의 부피 (4/3) * π * r³ 를 계산한다. radius 는 0 이상 Decimal 문자열이며 결과 단위는 길이 단위의 세제곱이다. π 는 mpmath 50자리로 계산하고 유효숫자 30자리 문자열로 반환한다. 지름이 아니라 반지름을 넣는다.

NameRequiredDescriptionDefault
radiusYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
volumeYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/openWorld annotations, the description discloses numeric behavior that matters: π is computed with mpmath at 50 digits and the result is returned as a 30-significant-digit string, and the output unit is the cube of the input length unit. It does not describe error handling for negative or non-numeric input, which keeps it just short of full coverage.

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 short sentences, front-loaded with the formula, then unit semantics, then precision policy, then the radius-vs-diameter warning. No filler and no repetition of structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter, annotations covering safety, and an output schema handling return structure, the description supplies everything else an agent needs — input type and constraint, unit semantics, and precision policy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 entire burden and does: it specifies the parameter is a Decimal-format string, must be at least 0, and is a radius rather than a diameter. This adds real meaning the bare schema property 'radius: string' does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource plus the exact formula, '(4/3) * π * r³', so the operation is unambiguous. It also distinguishes itself from a diameter-based alternative by stating the radius must be supplied, not the diameter.

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?

It gives a clear constraint for correct invocation (radius, not diameter; radius must be ≥ 0; Decimal string) which is exactly the failure mode for this kind of tool. It does not reference sibling volume tools, but no ambiguity is likely given the explicit formula and input constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.diff_centralA
Read-onlyIdempotent

중심 차분 f'(x) ≈ (f(x+h) - f(x-h)) / (2h) 로 x 에서의 1차 도함수를 수치 근사한다. expression 은 core.calc 문법의 수식, variable(기본 x)이 자유 변수, h 는 양수 Decimal 문자열(기본 0.001). float64 계산이며 결과는 유효숫자 12자리다. h 를 지나치게 작게 잡으면 상쇄 오차가 커지고, 도함수 식 자체가 필요하면 symbolic.diff 를 쓴다.

NameRequiredDescriptionDefault
hNo0.001
xYes
variableNox
expressionYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world behavior, so the safety profile is covered. The description adds genuine value with float64 arithmetic, 12-significant-digit output, and the step-size/cancellation tradeoff, but says nothing about failure behavior (e.g. domain errors in f) or how the result is returned.

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?

Dense and front-loaded: method and formula first, then parameter semantics, then numerical caveat and alternative. No filler sentences, though the parameter enumeration is packed into a single long line.

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?

An output schema exists, so return-value explanation is unnecessary, and precision plus error behavior are covered. The main gap is that the sibling five-point rule and the accuracy/performance comparison to it are never mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 and does: expression uses core.calc syntax, variable is the free variable (default x), x is the evaluation point, and h is a positive Decimal string with default 0.001. Every one of the four parameters is given meaning the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific method and resource (central-difference numerical approximation of the first derivative at x) and even gives the formula. An agent can distinguish it from symbolic.diff and from the other numerical differentiator siblings without opening the schema.

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?

Explicitly routes to symbolic.diff when an exact derivative expression is needed, and warns that an overly small h increases cancellation error. It does not mention math.diff_five_point as the higher-accuracy alternative, so the sibling routing is only partly covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.diff_five_pointA
Read-onlyIdempotent

5점 공식 f'(x) ≈ (-f(x+2h) + 8 f(x+h) - 8 f(x-h) + f(x-2h)) / (12 h) 로 x 에서의 1차 도함수를 수치 근사한다. 중심 차분보다 정확도가 높다(O(h⁴)). expression 은 core.calc 문법, h 는 양수(기본 0.001), float64 계산이며 유효숫자 12자리다. x±2h 구간에서 정의되지 않는 함수에는 쓸 수 없다.

NameRequiredDescriptionDefault
hNo0.001
xYes
variableNox
expressionYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/closed-world safety. The description adds behavior beyond that: float64 arithmetic, 12 significant digits of output, default h=0.001, and the domain restriction on x±2h — all real operational context an agent would not otherwise know.

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?

Front-loads the formula and accuracy claim, then the parameter and domain constraints in tight sentences. The formula is long but earns its place by pinning down the exact method; nothing is redundant.

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?

An output schema exists, so return-value explanation is unnecessary; the description instead supplies precision/type and domain limits. The only real gap is the undocumented 'variable' parameter, which matters for expressions using a symbol other than x.

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 must carry parameter meaning. It documents expression (core.calc syntax), h (positive, default 0.001), and x implicitly via the formula, but the 'variable' parameter (default 'x') is never mentioned, leaving one of four parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the exact operation (numerical approximation of the first derivative at x) and even gives the specific 5-point stencil formula, so there is no ambiguity about what is computed. It explicitly contrasts itself with the central-difference method, which distinguishes it from the sibling math.diff_central.

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 a clear selection rationale ('more accurate than central difference, O(h⁴)') and an explicit exclusion ('cannot be used on functions undefined over x±2h'). It does not name math.diff_central directly as the fallback tool, leaving the routing slightly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.fftA
Read-onlyIdempotent

실수 샘플의 이산 푸리에 변환(DFT)을 numpy.fft 로 계산한다. samples 는 2개 이상 65536개 이하의 Decimal 문자열 리스트. 각 bin 은 k, magnitude, phase_rad 를 담으며 float64 계산에 유효숫자 12자리이고 1/N 정규화는 하지 않는다. k 는 주파수가 아니라 인덱스이므로 Hz 는 k * 샘플링주파수 / N 으로 직접 계산한다.

NameRequiredDescriptionDefault
samplesYes

Output Schema

NameRequiredDescription
nYes
binsYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered; the description goes further and discloses the two conventions most likely to cause a wrong result — no 1/N normalization and 12 significant digits under float64. It does not cover error behavior for out-of-range inputs, but the substantive numeric caveats are present.

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?

Three dense sentences, each earning its place: what it computes, what the input must look like, and how to read the output. The input constraint is front-loaded and nothing is repeated from the schema or annotations.

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?

Covers input format, numeric precision, normalization convention, and output bin fields (k, magnitude, phase_rad) plus the index-vs-frequency caveat. The one gap is that it never states how many bins are returned from an N-point real transform (full N vs one-sided), which matters for interpreting the spectrum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the parameter burden and it largely does: samples is a list of Decimal-formatted strings, real-valued, 2 to 65536 items. Only the exact string format for a Decimal element is left unstated.

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: computes the DFT of real-valued samples via numpy.fft. The forward-transform scope inherently separates it from math.ifft, but the sibling is never named explicitly, so differentiation is implicit rather than stated.

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?

No explicit when-to-use / when-not guidance and no reference to alternatives such as math.ifft. Usage is only implied through the input constraints (2–65536 samples, real-valued only) and the note on converting k to Hz.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.ifftA
Read-onlyIdempotent

fft 결과의 bin 리스트({magnitude, phase_rad})에서 시간 영역 샘플을 복원한다(1/N 정규화 포함). 최대 65536개. real_output 기본 true 는 허수부 절대값이 1e-9 를 넘으면 오류를 내고 문자열 리스트를 반환하며, false 면 {real, imag} 쌍을 반환한다. bin 은 N개 전체를 순서대로 넣어야 하며 일부만 넣으면 다른 신호가 복원된다.

NameRequiredDescriptionDefault
binsYes
real_outputNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
samplesYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses the size ceiling (65536), the 1e-9 imaginary-tolerance error behavior for real_output=true, and that the return shape itself changes (string list vs {real, imag} pairs). These are exactly the runtime traits an agent cannot infer from annotations or schema.

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 dense sentences, each contributing a distinct fact (purpose, size limit, flag behavior, input completeness constraint), with the core purpose front-loaded. No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter transform tool with an output schema, the description covers the input contract, size limit, error mode, and output variants, so nothing needed to call it correctly is missing. Return-value structure being described is a bonus rather than a redundancy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load and it does: bins is defined as the ordered, complete N-length magnitude/phase list, and real_output's default, error threshold, and output-shape consequence are all spelled out. Only the string encoding of bin values is left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource in the inverse direction: reconstruct time-domain samples from an fft bin list of {magnitude, phase_rad} with 1/N normalization. That makes the inverse relationship to math.fft unambiguous without the agent needing to inspect either schema.

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?

It states the operational precondition that bins must contain all N entries in order, and warns that supplying a partial list reconstructs a different signal, which is genuine when-to-use-in-this-way guidance. It also gives a rule for choosing real_output (true for real signals, false when imaginary components are expected), but it never explicitly names math.fft as the forward-direction alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.integrate_gauss_legendreA
Read-onlyIdempotent

가우스-르장드르 구적법(mpmath.quadgl)으로 정적분 ∫_a^b f(x) dx 의 근삿값을 구한다. expression 은 core.calc 문법, a 와 b 는 a < b 인 Decimal 문자열, degree 는 2 이상 100 이하(기본 20). 피적분 함수는 float64 로 평가하고 결과는 유효숫자 12자리다. 매끄러운 함수에 적합하며 불연속이 있는 구간은 나누어 적분한다.

NameRequiredDescriptionDefault
aYes
bYes
degreeNo
variableNox
expressionYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
degreeYes
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Because annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), the description adds genuinely useful numeric context: the integrand is evaluated in float64, the result carries 12 significant digits, the constraint a < b is stated, and the backend is identified (mpmath.quadgl).

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 dense sentences, front-loaded with the method and formula, then constraints, then precision, then applicability. Every sentence carries information that the agent cannot get from structured fields.

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 an output schema present, return-value explanation is unnecessary, and the description covers method, precision, domain, and most parameters. The only shortfall is the undocumented `variable` parameter, which matters for a symbolic-integration tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the burden, and it does so for 4 of 5 parameters: expression syntax (core.calc), a/b as Decimal strings with a < b, and degree's range (2–100, default 20). The `variable` parameter (default 'x') is never mentioned, which is the one remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: computing an approximate definite integral via Gauss-Legendre quadrature (mpmath.quadgl). It also states the exact mathematical form (∫_a^b f(x) dx), which clearly distinguishes it from the sibling math.integrate_simpson.

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?

It gives a clear use condition ('적합하며 매끄러운 함수') and the fallback behavior for non-smooth inputs ('불연속이 있는 구간은 나누어 적분한다'). It does not explicitly name the alternative sibling tool (e.g., integrate_simpson), so there is room for improvement, but the when/when-not guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.integrate_simpsonA
Read-onlyIdempotent

합성 심프슨 1/3 법으로 정적분 ∫_a^b f(x) dx 의 근삿값을 구한다. expression 은 core.calc 문법, a 와 b 는 a < b 인 Decimal 문자열, 부구간 수 n 은 2 이상 20000 이하의 짝수(기본 100). float64 계산이며 유효숫자 12자리다. 하한이 상한보다 크면 오류이므로 부호를 직접 뒤집어야 하고, 특이점이 있는 구간은 정확하지 않다.

NameRequiredDescriptionDefault
aYes
bYes
nNo
variableNox
expressionYes

Output Schema

NameRequiredDescription
nYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint=false, and idempotentHint=true. The description adds valuable behavioral context beyond those: float64 computation, 12 significant digits, an error when a > b (requiring manual sign flip), and inaccuracy near singularities.

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?

The description is a compact paragraph that front-loads the operation, then gives parameter constraints, then caveats. Every sentence adds information, though a slightly more structured layout would improve scanability.

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 annotations covering safety/idempotency and an output schema present, the description is largely complete: it covers method, syntax, bounds, sample count, precision, and singularity limitations. The missing explanation of the variable parameter and absence of explicit sibling-selection guidance are the main gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains expression syntax (core.calc), that a and b must be Decimal strings with a < b, and that n is an even integer from 2 to 20000 with default 100. It omits the variable parameter entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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 (정적분 ∫_a^b f(x) dx), and names the exact numerical method (합성 심프슨 1/3 법). This method name implicitly distinguishes it from sibling math.integrate_gauss_legendre and other integration tools.

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?

Usage is implied by the purpose (approximate definite integrals), and it warns that intervals with singularities are inaccurate. However, it never explicitly states when to choose this over gauss_legendre or symbolic methods, nor does it name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.interpolate_cubic_splineA
Read-onlyIdempotent

3차 스플라인 보간(scipy CubicSpline)으로 x_query 에서의 값을 구한다. xs 는 엄격히 증가하는 4개 이상의 Decimal 문자열 리스트, ys 는 같은 길이. bc_type 은 natural(기본), clamped, not-a-knot 중 하나. x_query 가 표본 구간 밖이면 외삽하지 않고 오류를 낸다. 유효숫자 12자리.

NameRequiredDescriptionDefault
xsYes
ysYes
bc_typeNonatural
x_queryYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond the annotations: no extrapolation, out-of-range x_query raises an error, and results carry 12 significant digits. Annotations already cover readOnly/idempotent safety, so this extra constraint and precision disclosure is a genuine value-add even without return-format details (output schema exists).

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?

Five dense sentences, each carrying distinct payload (algorithm, xs constraint, ys, bc_type options, no-extrapolation rule, precision), with the operation front-loaded. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only numeric tool with an output schema covering return values, everything an agent needs to call it correctly is present: input shape and ordering constraint, valid bc_type values with default, and the failure mode on out-of-range queries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the parameter burden and largely does: xs is a strictly increasing list of at least 4 Decimal strings, ys is the matching-length list, bc_type is one of natural/clamped/not-a-knot with a stated default, and x_query is the evaluation point. It stops short of stating that x_query must itself be a Decimal string, a small remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (cubic spline interpolation) and pins the algorithm (scipy CubicSpline), which distinguishes it from the sibling math.interpolate_linear. An agent can identify the operation without opening the schema.

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?

The description implies when the tool applies (cubic interpolation over tabulated points) but never explicitly contrasts with math.interpolate_linear or states consulting conditions such as needing smooth derivatives. Usage is inferable from context rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.interpolate_linearA
Read-onlyIdempotent

표본점 (xs, ys) 를 직선으로 이어 x_query 에서의 값을 구하는 1차원 선형 보간이다. xs 는 엄격히 증가하는 2개 이상의 Decimal 문자열 리스트, ys 는 같은 길이. x_query 가 [min(xs), max(xs)] 밖이면 외삽하지 않고 오류를 낸다. float64 계산, 유효숫자 12자리.

NameRequiredDescriptionDefault
xsYes
ysYes
x_queryYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and closed-world, so the description is not burdened with safety disclosure. It adds non-annotated behavior: out-of-range x_query raises an error rather than extrapolating, computation uses float64, and results are rounded to 12 significant digits. Return format is appropriately left to the output schema.

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?

Three sentences, front-loaded with the operation, then validation constraints, then numeric behavior. No filler; every sentence earns its place.

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?

The description covers invocation constraints, error behavior, and numeric precision, and an output schema exists for return values. Only sibling-selection context is thin, but for correct invocation the definition is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter semantics. It specifies xs as 2+ strictly increasing Decimal strings, ys as same-length Decimal strings, and x_query as the evaluation point with an in-range constraint. This substantially compensates for the empty schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation: 1D linear interpolation over sample points (xs, ys) evaluated at x_query. The word '선형' clearly distinguishes it from the sibling math.interpolate_cubic_spline, and the range/error rule further clarifies its scope.

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 valid-input prerequisites (2+ strictly increasing xs, matching ys length, x_query inside [min(xs), max(xs)]) and explicitly rules out extrapolation. However, it never names an alternative such as math.interpolate_cubic_spline or explains when linear interpolation is preferred over cubic spline, so tool selection is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.polynomial_hornerA
Read-onlyIdempotent

호너 방법으로 다항식 P(x) 를 Decimal 로 평가한다. coefficients 는 높은 차수부터 내림차순(예 [1, 0, -4] 는 x² - 4), x 는 Decimal 문자열이다. float 를 거치지 않으며 degree 도 함께 반환한다. 계수를 오름차순으로 넣으면 다른 다항식이 평가된다.

NameRequiredDescriptionDefault
xYes
coefficientsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
degreeYes
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly, idempotent, and closed-world behavior, so the bar is lower. The description still adds real behavioral value: it uses Decimal arithmetic and never goes through float, so results are exact rather than floating-point approximations; and it returns the degree as well as the value. It does not state limits on coefficient count or error behavior for malformed Decimal strings.

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?

The description is four short sentences, and it leads with what the tool computes before moving to parameter conventions. Every sentence carries information, including the ascending-order warning. It is slightly repetitive about ordering across two sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter numeric evaluator with an output schema, this is complete enough. It covers arithmetic mode (Decimal, no float), input ordering conventions, the x format, and which return values to expect (value plus degree); all remaining details are documented by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the full burden, and it mostly does: it defines the coefficient ordering as descending, gives a worked example ([1, 0, -4] is x²-4), and says x is a Decimal string. It does not explicitly state that each coefficient item is also a Decimal string, leaving that detail to be inferred from the schema's item type.

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: evaluate polynomial P(x) using Horner's method in Decimal precision. An agent can immediately tell what the tool computes. It does not differentiate itself from sibling math.polynomial_roots, which is the nearest alternative, so it falls short of a 5.

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?

Usage is only implied: it is an evaluator for a polynomial at a point, as opposed to the root-finder. The description adds a practical warning that passing coefficients in ascending order evaluates a different polynomial, which is helpful usage guidance. However, it never says when to choose this tool over math.polynomial_roots or symbolic-based alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math.polynomial_rootsA
Read-onlyIdempotent

다항식의 모든 근(복소근 포함)을 numpy.roots 로 구한다. coefficients 는 높은 차수부터 내림차순 Decimal 문자열 리스트(예 [1, 0, -4] 는 x² - 4)이며 1차 이상 256차 이하, 최고차 계수는 0 이 아니어야 한다. 각 근은 {real, imag} 12자리 문자열이고 정렬되어 있지 않다. 오름차순으로 넣으면 다른 다항식이 되며 중근이 많으면 정밀도가 떨어진다.

NameRequiredDescriptionDefault
coefficientsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
rootsYes
traceYes계산 근거(tool, formula, inputs, steps, output)
degreeYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/closed-world, and the description adds valuable behavioral context: precision degradation with many repeated roots and the fact that roots are unsorted {real, imag} 12-digit strings. This goes meaningfully beyond 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?

Dense but front-loaded: purpose first, then parameter format, then pitfalls. Every sentence conveys actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description still clarifies the return shape and ordering, plus precision caveats and input constraints. For a single-parameter read-only tool, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage on the single parameter, the description fully compensates: it explains the descending order convention, the worked example ([1,0,-4] = x²-4), the type (Decimal strings), degree bounds, and the nonzero-leading-coefficient rule. Nothing about the parameter is left unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: computes all roots including complex using numpy.roots. Clearly distinguishes itself from siblings like math.polynomial_horner (evaluation) and symbolic.solve without needing schema inspection.

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?

Provides concrete constraints (descending order, degree 1-256, nonzero leading coefficient) that guide correct invocation, plus a warning about ascending order and repeated roots. It doesn't explicitly name an alternative tool or when-not-to-use, which keeps it at 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.bmiA
Read-onlyIdempotent

체질량지수(BMI)를 계산하고 WHO 기준으로 분류한다. BMI = weight_kg / height_m^2, 입력은 미터와 킬로그램의 Decimal 문자열, 결과는 소수 2자리 HALF_EVEN 반올림. 분류는 underweight(<18.5), normal(<25), overweight(<30), obese_1(<35), obese_2(<40), obese_3(40 이상)이며 반올림한 값으로 판정한다. 신장을 cm 단위로 넣으면 결과가 100배 이상 어긋난다.

NameRequiredDescriptionDefault
height_mYes
weight_kgYes

Output Schema

NameRequiredDescription
bmiYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
categoryYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, it discloses the exact formula, the rounding mode and precision (HALF_EVEN, 2 decimals), that classification is judged on the rounded value, and a concrete units pitfall (cm input causes 100x error). This is rich, decision-relevant behavioral detail.

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 tightly packed sentences: purpose, formula/input contract, rounding and thresholds, then the units warning front-loaded as the last critical caveat. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still specifies rounding and every classification boundary so the result is interpretable. Input format, units, and failure mode are all covered — nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it does: it names both parameters via the formula, declares them Decimal strings, fixes units to meters and kilograms, and warns about the cm mistake. An agent has everything needed to pass correct values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('체질량지수(BMI)를 계산하고') plus the classification scheme applied (WHO). The scope is unambiguous and no sibling tool computes BMI, so differentiation is implicit but perfectly clear.

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?

The use case is obvious from the tool's name and the description confirms it computes BMI with WHO categories, but it never states when to prefer this over related medical siblings (e.g., medical.bsa) or any preconditions. Adequate implied usage, no explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.bsaA
Read-onlyIdempotent

체표면적(BSA)을 m² 단위로 계산한다. 입력은 신장 cm, 체중 kg의 Decimal 문자열, 결과는 소수 4자리 HALF_EVEN 반올림. method=dubois(기본)는 0.007184 * h^0.725 * w^0.425, method=mosteller는 sqrt(h*w/3600). 항암제 용량 산정 등에 쓰며, 신장을 m 단위로 넣으면 결과가 크게 어긋난다. 비정수 지수는 float64로 계산한다.

NameRequiredDescriptionDefault
methodNodubois
height_cmYes
weight_kgYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
bsa_m2Yes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so the safety profile is covered. The description adds substantial behavioral detail beyond annotations: the exact formulas, HALF_EVEN rounding to 4 decimals, float64 handling of non-integer exponents, and a unit pitfall warning.

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?

The description is front-loaded with the core purpose and then efficiently covers inputs, output rounding, method formulas, a use case, and a critical caveat. Every sentence adds useful information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return structure need not be explained, and annotations already cover safety/idempotency. The description supplies everything needed to call it correctly: units, input types, method selection, rounding behavior, and a dangerous unit-mistake warning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it does. It documents height_cm and weight_kg as Decimal strings in cm/kg, method default dubois, and the mosteller alternative with its formula.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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: it calculates body surface area (BSA) in m². It makes the tool immediately distinguishable from relatives like medical.bmi or medical.dose_weight_based by naming the exact calculation and units.

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?

It gives a clear clinical use case, anticancer drug dose calculation, so the agent knows the intended context. It does not explicitly name when-not-to-use cases or alternative sibling tools, but the context is still clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.cha2ds2_vascA
Read-onlyIdempotent

심방세동 환자의 뇌졸중 위험 점수 CHA2DS2-VASc를 계산한다. C=울혈성심부전, H=고혈압, A2=75세 이상(2점), D=당뇨, S2=뇌졸중/TIA(2점), V=혈관질환, A=6574세(1점), Sc=여성. 총 09점이며 risk_level은 0점 low, 1점 moderate, 2점 이상 high. age는 0~130 정수, 나머지는 bool이어야 하고 문자열 'true'는 거부한다. 판단 보조용이며 임상 결정을 대신하지 않는다.

NameRequiredDescriptionDefault
ageYes
chfNo
femaleYes
diabetesNo
hypertensionNo
stroke_or_tiaNo
vascular_diseaseNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
scoreYes
traceYes계산 근거(tool, formula, inputs, steps, output)
risk_levelYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld=false, and the description adds behavior beyond them: the full weight table (A2=2점, S2=2점, A=1점), the 0~9 total range, the risk_level thresholds (0=low, 1=moderate, 2+=high), and strict input validation (age 0~130 integer, booleans required, string 'true' rejected). That tells the agent what output categories to expect and how to avoid a failed call.

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?

Purpose and population are front-loaded, and the dense middle sentence carries real content (component weights, score range, risk bands). It is long, but every clause adds usable information; a slightly tighter break between the scoring rules, the input types, and the disclaimer would improve scanability.

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?

An output schema exists, so return values need not be explained, yet the description still supplies the risk_level banding that matters most for interpreting the result. Combined with per-factor scoring and input type rules, an agent has everything needed to call and interpret it correctly; only error/edge-case handling is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description bears the burden, and it largely meets it: each clinical factor is mapped to its scoring meaning (C→chf, H→hypertension, A2→age≥75, D→diabetes, S2→stroke_or_tia, V→vascular_disease, Sc→female), plus type constraints for age and the booleans. It stops short of naming the parameters explicitly or noting that all booleans except female are optional with default false, which the agent must still read from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (계산한다) and a specific named resource (CHA2DS2-VASc stroke-risk score) with an explicit target population (심방세동 환자). It even decomposes the acronym into its components, so an agent can distinguish it from the other clinical scoring sibling (medical.has_bled) without opening the schema.

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?

The target population ('심방세동 환자') and the caveat '판단 보조용이며 임상 결정을 대신하지 않는다' imply when it applies. However, there is no explicit routing guidance — it never says to use medical.has_bled instead when the question is bleeding risk rather than stroke risk, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.dose_weight_basedA
Read-onlyIdempotent

체중 기반 약물 용량을 계산한다. dose = weight_kg * dose_per_kg, max_dose를 주면 초과 시 max_dose로 제한하고 capped=true를 돌려준다. 입력은 kg과 kg당 용량의 Decimal 문자열(0 이상), 결과는 소수 4자리 HALF_EVEN 반올림 후 후행 0을 제거한 고정소수점 문자열. unit은 표시용 문자열이며 환산하지 않는다. 단위가 다른 dose_per_kg와 max_dose를 섞으면 안 된다.

NameRequiredDescriptionDefault
unitNomg
max_doseNo
weight_kgYes
dose_per_kgYes

Output Schema

NameRequiredDescription
doseYes
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
cappedYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations by disclosing the capping side effect (returns capped=true), the exact rounding regime (4-dp HALF_EVEN, trailing zeros stripped), and the critical caveat that unit is display-only with no conversion — a real correctness hazard the agent would otherwise get wrong.

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?

Front-loaded with purpose and formula, then input/output contract, then the unit-consistency warning. Every clause carries new information — no restatement of the name or schema types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not enumerate return fields, yet it still specifies the numeric formatting and the capped flag. Combined with annotations covering safety and idempotency, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: weight_kg and dose_per_kg are constrained to Decimal strings >= 0, max_dose is optional and triggers clamping, and unit is explicitly presentation-only. All four parameters get meaning that the bare schema (string/anyOf, default "mg") does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (weight-based drug dose calculation) and immediately gives the exact formula dose = weight_kg * dose_per_kg, which pins the tool apart from the other medical.* calculators (bmi, bsa, egfr) in one sentence.

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?

Explains the operational condition clearly: supply max_dose to cap the result, and never mix different units between dose_per_kg and max_dose. It stops short of naming an alternative tool or stating when not to use weight-based dosing, but for a single-purpose calculator the invocation context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.egfrA
Read-onlyIdempotent

혈청 크레아티닌으로 추정 사구체여과율(eGFR)을 CKD-EPI 2021(인종 계수 없음) 식으로 계산하고 KDIGO 2012 CKD 병기(G1~G5)를 돌려준다. 입력은 mg/dL Decimal 문자열, 정수 나이, sex=male|female. 결과 단위는 mL/min/1.73m², 소수 1자리 HALF_EVEN 반올림이며 병기는 반올림한 값으로 정한다. race 인자는 무시된다. 시스타틴 C 기반 식이나 소아 식에는 쓸 수 없다.

NameRequiredDescriptionDefault
ageYes
sexYes
raceNonon_black
creatinine_mg_dlYes

Output Schema

NameRequiredDescription
egfrYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
stageYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond what readOnlyHint, idempotentHint and openWorldHint already cover, the description discloses output units (mL/min/1.73m²), the rounding rule (HALF_EVEN to one decimal), and the subtle ordering rule that staging is computed from the rounded value. It also explicitly documents that the race parameter is ignored, which is real behavioral substance an agent could not infer.

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?

Front-loaded with the purpose and equation, then inputs, then output semantics, then exclusions. Each sentence adds information that is not repeated elsewhere, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 4 parameters at 0% schema coverage, this description supplies everything needed to call the tool correctly: units, types, rounding, staging rule, ignored parameter, and applicability limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 and does: creatinine is specified as an mg/dL Decimal string, age as an integer, sex as male|female, and race as accepted-but-ignored. Every one of the four parameters gets meaning that the bare schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb and resource (estimating eGFR from serum creatinine) together with the exact equation (CKD-EPI 2021, race-free) and the derived output (KDIGO 2012 stage G1-G5). The clinical scope makes it trivially distinguishable from siblings such as medical.bmi or medical.bsa without opening any schema.

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?

It clearly states the input domain (mg/dL Decimal string, integer age, sex=male|female) and gives explicit exclusions: it cannot be used for cystatin C-based or pediatric equations. That is strong when-not guidance, but it does not name an alternative tool for those cases, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.framingham_cvd_10yA
Read-onlyIdempotent

Framingham 일반 10년 심혈관질환 발생 확률을 계산한다(D'Agostino 2008 일반 CVD 모델). sex=male|female, age 3074 정수, total_chol과 hdl은 mg/dL, sbp는 mmHg(모두 Decimal 문자열), treated_htn, smoker, diabetes는 bool. risk는 01 확률(유효숫자 10자리), risk_pct는 백분율이다. 범위를 벗어난 나이에는 쓸 수 없다. float64 로그 회귀식이라 Decimal 정확 연산이 아니다.

NameRequiredDescriptionDefault
ageYes
hdlYes
sbpYes
sexYes
smokerYes
diabetesYes
total_cholYes
treated_htnYes

Output Schema

NameRequiredDescription
riskYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
risk_pctYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/safe profile, and the description adds meaningful non-obvious behavior: output is a 0-1 probability with 10 significant digits, and the computation uses a float64 log regression so results are not exact Decimal arithmetic. This numerical-precision caveat is exactly the kind of context annotations cannot provide.

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?

Dense but front-loaded: purpose and model first, then parameter/unit conventions, then output and precision caveat. Slightly packed into a single block with no separation, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter clinical calculator with an output schema, the description supplies the units, ranges, types, output semantics, and a precision caveat, leaving nothing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all parameter meaning, and it does: it specifies the sex enum, the 30-74 integer age range, units for total_chol/hdl (mg/dL) and sbp (mmHg), notes they are Decimal strings, and identifies the three boolean flags. Every one of the 8 required parameters is covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (10-year cardiovascular disease probability) and cites the exact model (D'Agostino 2008 general CVD), which clearly separates it from risk-score siblings like cha2ds2_vasc and from the unrelated qtc_framingham.

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 concrete applicability constraints (age must be 30-74 integer, sex male|female) and explicitly says it cannot be used for out-of-range ages. It stops short of naming an alternative tool for out-of-range ages, so it is clear context without full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.has_bledA
Read-onlyIdempotent

항응고 치료 환자의 주요 출혈 위험 점수 HAS-BLED를 계산한다. H=고혈압, A=신장 또는 간 기능 이상(각 1점), S=뇌졸중, B=출혈력, L=불안정 INR, E=고령(65세 초과), D=약물 또는 음주(각 1점). 총 0~9점이며 risk_level은 2점 이하 low, 3점 이상 high. 아홉 항목을 모두 bool로 넣어야 하며 기본값이 없다. 판단 보조용이다.

NameRequiredDescriptionDefault
drugsYes
strokeYes
alcoholYes
elderlyYes
labile_inrYes
hypertensionYes
abnormal_liverYes
abnormal_renalYes
bleeding_historyYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
scoreYes
traceYes계산 근거(tool, formula, inputs, steps, output)
risk_levelYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a safe, idempotent, closed-world read, so no safety disclosure is needed; the description adds genuinely non-obvious behavior — the 0–9 point range and the risk_level cutoffs (≤2 low, ≥3 high) — plus the hard requirement that all nine booleans be supplied with no defaults.

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?

One compact paragraph, purpose front-loaded, then scoring rules, then thresholds, then the input constraint, then the caveat. No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values are covered by the output schema, and the description still supplies the interpretation thresholds an agent needs to explain results. With 9 required params at 0% schema coverage, nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (only bare titles like 'Labile Inr'), so the description carries the full load and does: it maps every factor to its letter, notes that renal and liver each score 1, that drugs and alcohol each score 1, that elderly means >65, and that all nine are required with no defaults.

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: calculating the HAS-BLED major-bleeding risk score in anticoagulated patients, and it spells out the acronym so the agent knows what each factor is. It does not differentiate itself from the sibling medical.cha2ds2_vasc, which an agent may see as a competing bleeding/stroke risk score.

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?

The clinical population (anticoagulated patients) is stated and '판단 보조용이다' signals decision-support rather than definitive diagnosis, but there is no explicit when-to-use/when-not or routing against cha2ds2_vasc or framingham_cvd_10y.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.pregnancy_weeksA
Read-onlyIdempotent

최종 월경일(LMP)로 임신 주수와 분만예정일(EDD)을 계산한다. 입력은 YYYY-MM-DD 문자열이며 reference_date를 생략하면 서버의 오늘 날짜를 쓴다. EDD = LMP + 280일(Naegele 법칙), 주수와 일수는 042주로 제한하고 삼분기(13)도 함께 반환한다. 초음파 계측으로 조정한 예정일은 반영하지 않는다.

NameRequiredDescriptionDefault
lmp_dateYes
reference_dateNo

Output Schema

NameRequiredDescription
eddYes
daysYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
weeksYes
trimesterYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds substantive context beyond them: the Naegele formula (LMP+280), clamping to 0-42 weeks, and that ultrasound-adjusted dates are ignored. Return of trimester is also disclosed.

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?

Front-loads the purpose, then input format, then algorithm and edge-case bounds. Dense but every clause adds decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't detail return values; it covers inputs, formula, clamping behavior, and a key exclusion (no ultrasound adjustment). Complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the burden; it specifies lmp_date format (YYYY-MM-DD) and explains reference_date's default-to-today behavior. Both parameters are effectively documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (calculate) and resource (gestational age and EDD) with the method source (LMP). No sibling in the medical.* namespace computes pregnancy dating, so it's clearly distinguishable.

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?

Implies use when dating a pregnancy from LMP and explicitly notes the limitation that ultrasound-adjusted EDD is not reflected, which guides correct selection. No explicit alternative tool named, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.qtc_bazettA
Read-onlyIdempotent

Bazett 공식으로 QT 간격을 심박수에 맞춰 보정한다. QTc = QT / sqrt(RR). qt와 rr은 Decimal 문자열이며 unit='ms'(기본) 또는 's'로 둘 다 같은 단위로 넣고, 결과 단위도 같다. 내부는 mpmath 40자리로 계산해 유효숫자 20자리 문자열로 돌려준다(반올림 소수 자릿수 고정 없음). 빠른 심박(RR 짧음)에서는 과대 보정되므로 그 구간엔 Fridericia를 고려한다.

NameRequiredDescriptionDefault
qtYes
rrYes
unitNoms

Output Schema

NameRequiredDescription
qtcYes
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.8/5.0
Behavior5/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: internal computation at mpmath 40 digits, return of a 20-significant-digit string with no fixed decimal rounding, and the known over-correction bias at short RR. That precision and limitation disclosure is exactly the kind of context structured fields cannot carry.

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?

Front-loaded with purpose and formula, then unit contract, then numeric precision, then the clinical caveat that routes to a sibling. Four dense sentences with no filler; the mpmath/20-significant-digit detail earns its place for a numeric calculator where output precision matters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be explained, yet the description still discloses output precision and unit. Combined with the formula, unit contract, and the short-RR caveat, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden and it does: qt and rr are Decimal strings, unit defaults to 'ms' with 's' as the alternative, both inputs must share the same unit, and the output uses that same unit. All three parameters are given semantics and the cross-parameter unit constraint is spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (보정한다 / correct), a specific resource (QT 간격 by heart rate), and gives the exact formula QTc = QT / sqrt(RR). This unambiguously distinguishes it from the sibling medical.qtc_fridericia, medical.qtc_framingham, and medical.qtc_hodges without opening any schema.

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?

Explicitly names an alternative (Fridericia) and the condition that selects it: fast heart rate / short RR where Bazett over-corrects. That is real routing guidance. It stops short of saying when Bazett is the preferred choice (normal HR range) and never mentions the other two QTc siblings, so it is not a complete when/when-not map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.qtc_framinghamA
Read-onlyIdempotent

Framingham 선형 공식으로 QT 간격을 보정한다. QTc = QT + 0.154 * (1 - RR_초). qt와 rr은 Decimal 문자열이며 unit='ms'(기본) 또는 's'로 둘 다 같은 단위로 넣고, 내부에서 초로 환산해 계산한 뒤 입력 단위로 돌려준다. Decimal 정확 연산이며 반올림하지 않는다. RR을 심박수(bpm)로 넣으면 안 된다.

NameRequiredDescriptionDefault
qtYes
rrYes
unitNoms

Output Schema

NameRequiredDescription
qtcYes
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds real behavior beyond that: exact Decimal arithmetic, no rounding, internal conversion to seconds, and results returned in the caller's input unit. The only gap is that it does not state what the output payload looks like, which the output schema covers anyway.

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 tight sentences, front-loaded with the formula, then parameter contract, then numeric semantics, then the critical misuse warning. No filler and nothing repeated from the schema titles.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a small deterministic calculator with three params, full annotations, and an output schema, this covers everything an agent needs: the math, the unit contract, precision behavior, and the one classic input mistake. Nothing material is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 load and does: qt and rr are Decimal strings, unit accepts 'ms' (default) or 's', both inputs must share the same unit, and rr must not be a bpm value. All three parameters are given meaning that the schema alone does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific computational act and the exact formula variant ('Framingham 선형 공식', QTc = QT + 0.154 * (1 - RR_초)), which is precisely what distinguishes it from the sibling qtc_bazett/fridericia/hodges tools. An agent can pick the right QTc correction without opening any schema.

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 concrete usage context: both values must be in the same unit, unit is 'ms' by default or 's', and explicitly forbids passing RR as a heart rate in bpm. It stops short of naming the alternative QTc formulas as fallbacks, so tool-choice guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.qtc_fridericiaA
Read-onlyIdempotent

Fridericia 공식으로 QT 간격을 심박수에 맞춰 보정한다. QTc = QT / RR^(1/3). qt와 rr은 Decimal 문자열이며 unit='ms'(기본) 또는 's'로 둘 다 같은 단위로 넣고, 결과 단위도 같다. 내부는 mpmath 40자리로 계산해 유효숫자 20자리 문자열로 돌려준다. RR을 심박수(bpm)로 넣으면 안 된다. RR은 R-R 간격 시간이다.

NameRequiredDescriptionDefault
qtYes
rrYes
unitNoms

Output Schema

NameRequiredDescription
qtcYes
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the description correctly focuses on computation behavior instead: Decimal-string inputs, unit consistency between qt/rr and result, and the mpmath 40-digit internal precision returning a 20-significant-digit string. It does not cover error/validation behavior for malformed or out-of-range values, keeping it below a 5.

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?

Front-loaded with purpose and formula, followed by unit/type rules and then precision details. Five short sentences, each carrying distinct information; nothing is redundant with the schema or annotations.

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 annotations covering safety and an output schema covering the return shape, the description supplies everything needed to invoke the tool correctly, including the precision of the returned string. The remaining gap is the absence of any comparison to the sibling QTc methods for formula selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (properties carry only titles), so the description must carry the load and largely does: it states qt/rr are Decimal strings, unit defaults to 'ms' with 's' as the alternative, and that both inputs must share the unit. The key misuse trap (RR is an interval, not a bpm rate) is called out explicitly. It does not specify accepted string formats or value ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (correct QT for heart rate), the exact resource, and the formula QTc = QT / RR^(1/3), which unambiguously distinguishes it from the Bazett, Framingham and Hodges siblings without the agent needing to open any schema.

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?

Usage is implied by the stated formula, and there is a useful negative instruction ("RR을 심박수(bpm)로 넣으면 안 된다"), but there is no explicit guidance on when to prefer Fridericia over the sibling QTc formulas. The agent must infer the selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

medical.qtc_hodgesA
Read-onlyIdempotent

Hodges 공식으로 QT 간격을 심박수에 맞춰 보정한다. QTc_ms = QT_ms + 1.75 * (HR - 60), HR = 60 / RR_초. qt와 rr은 Decimal 문자열이며 unit='ms'(기본) 또는 's'로 둘 다 같은 단위로 넣고, 결과는 입력 단위로 돌려주며 계산에 쓴 심박수 hr_bpm도 함께 반환한다. Decimal 연산이며 반올림하지 않는다. RR 대신 심박수를 넣으면 안 된다.

NameRequiredDescriptionDefault
qtYes
rrYes
unitNoms

Output Schema

NameRequiredDescription
qtcYes
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
hr_bpmYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), so the bar is lower, and the description adds genuinely useful behavior: Decimal arithmetic, no rounding, result echoed in the input unit, and hr_bpm returned alongside. It does not discuss valid physiological ranges or error behavior, which keeps it from a 5.

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?

The formula is front-loaded, followed by unit rules, then numeric-precision behavior, then the misuse warning. Six short clauses, each carrying distinct information with no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter pure calculator with an output schema, the description covers units, input types, precision, and the returned hr_bpm; nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load and does: qt and rr are Decimal strings, unit accepts 'ms' (default) or 's', both inputs must share the same unit, and the output unit matches the input. This is exactly the information the bare schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific operation (Hodges-formula heart-rate correction of QT) and gives the exact formula, which unambiguously distinguishes it from sibling tools qtc_bazett, qtc_fridericia and qtc_framingham even though those names are not mentioned.

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?

Gives one hard exclusion ('RR 대신 심박수를 넣으면 안 된다'), which prevents a common misuse. However it never states when to prefer Hodges over the other QTc variants in the same family, so sibling selection is left to the caller's own knowledge.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.hourly_to_monthly_netA
Read-onlyIdempotent

시급(원, 문자열)을 월 환산시간(기본 209시간, 주 40시간과 주휴 포함)에 곱해 월급으로 바꾸고 원 미만을 버린 뒤 payroll.kr_salary 로 4대보험과 간이세액표 소득세를 공제한 실수령액을 구한다. 식대 비과세 한도, 공제대상가족 수, 8~20세 자녀 수(children_8_20)를 받는다. 주 40시간이 아닌 근로는 monthly_hours 를 직접 줘야 한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
hourly_wageYes
children_8_20No
monthly_hoursNo209
meal_allowanceNo0
num_dependentsNo
include_proposedNo

Output Schema

NameRequiredDescription
netYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
taxesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
taxableYes
insurancesYes
hourly_wageYes
monthly_grossYes
monthly_hoursYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), so the description's value is in the algorithm: 209-hour default derived from 40h/week plus weekly holiday, floor to whole won before deductions, and deduction of the four major insurances plus 간이세액표 income tax. That is meaningful behavioral context beyond the annotations. It stops short of noting year-dependent rate versions or what include_proposed changes.

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 computation chain front-loaded and the parameter/override caveat last; little filler. The first sentence is long and clause-heavy, which slightly slows parsing, but no sentence is removable without losing real information.

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?

An output schema exists, so return values need no explanation, and the deduction pipeline is well covered. However, for an 8-parameter tool with zero schema descriptions, leaving the required 'year' and the optional 'as_of'/'include_proposed' unexplained leaves real gaps an agent must guess at when invoking it.

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 must carry the burden and it only partially does: it clarifies hourly_wage (KRW, string), monthly_hours (default 209, override for non-40h weeks), meal_allowance (비과세 한도), num_dependents, and children_8_20. Three parameters — the required 'year', 'as_of', and 'include_proposed' — are never mentioned, and string-vs-number formatting expectations are only implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('시급을 월 환산시간에 곱해 월급으로 바꾸고 ... 실수령액을 구한다') and makes the two-stage composition explicit, naming payroll.kr_salary as the sub-computation. An agent can immediately distinguish this from payroll.kr_salary (net from an already-known salary) and payroll.kr_weekly_holiday_pay without opening any schema.

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 a concrete selection rule for the main ambiguity: '주 40시간이 아닌 근로는 monthly_hours 를 직접 줘야 한다', telling the agent when the default 209 applies versus when to override. It never states the inverse case (if you already have monthly gross, use payroll.kr_salary instead), so routing guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_bonus_taxB
Read-onlyIdempotent

상여금 원천징수세액을 근로소득 간이세액표로 구한다. method=averaging(기본, 소득세법 제136조제1항제1호)은 상여를 지급대상기간 월수(1~12, 기본 12)로 안분해 월급여에 더한 간이세액에서 월급여 간이세액을 빼고 월수를 곱하며, simple 은 1개월분으로 본다. 금액은 원 문자열이고 세액은 원 미만 버림이다. 비과세 상여는 빼고 넣어야 한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
methodNoaveraging
dependentsNo
bonus_amountYes
children_8_20No
monthly_salaryYes
include_proposedNo
payment_period_monthsNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
bonusYes
traceYes계산 근거(tool, formula, inputs, steps, output)
methodYes
bonus_taxYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
monthly_salaryYes
policy_versionYes적용된 정책 문서의 식별 정보
base_annual_taxYes
policy_audit_idYes
base_monthly_taxYes
policy_citationsYes정책의 근거 조문
combined_annual_taxYes
policy_effective_toYes
combined_monthly_taxYes
payment_period_monthsYes
policy_effective_dateYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly, idempotent, and closed-world behavior, so the description is not required to cover safety. It adds useful behavioral detail beyond annotations: the averaging calculation sequence, simple-method treatment, won-string inputs, truncation below one won, and that non-taxable bonuses must be handled separately. The final sentence about non-taxable bonuses is somewhat ambiguous, which keeps it from a 5.

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?

The description is three tight sentences, front-loaded with the purpose, then the method mechanics, then unit and rounding rules. Little is wasted, though the non-taxable sentence is unclear enough to cost a point.

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?

An output schema exists, so return values need not be described. For a 9-parameter tax calculation, however, the definition leaves five parameters undocumented and gives an ambiguous instruction on non-taxable bonuses, so it is only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for all 9 parameters. It meaningfully explains method and payment_period_months and clarifies that bonus_amount and monthly_salary are won strings, but year, as_of, dependents, children_8_20, and include_proposed receive no explanation anywhere.

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: computing bonus withholding tax (상여금 원천징수세액) via the simplified wage income tax table. It distinguishes this from generic salary or withholding siblings by focusing on bonus proration, though it does not explicitly name an alternative tool.

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 explains the two method choices and when averaging applies by default (Income Tax Act Article 136(1)(1)), but gives no explicit guidance on when to choose this tool over siblings such as tax.kr_withholding_simple or payroll.kr_salary, and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_donation_deductionA
Read-onlyIdempotent

기부금 세액공제(소득세법 제59조의4제4항, 조세특례제한법 제76조)를 구한다. 근로소득금액(원 문자열) 기준 한도 안에서 특례·일반기부금 합계 1천만원 이하 15%, 초과 30%(특례 먼저), 정치자금 10만원까지 110분의 100과 초과분 15%(3천만원 초과분 25%)를 적용하고 원 미만 버린다. 고향사랑·우리사주 기부금은 한도 순서에만 반영하며 공제액은 계산하지 않는다. 종교단체 기부는 religious_donation 에 따로 넣어야 한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
earned_incomeYes
esop_donationNo0
carryover_lossNo0
legal_donationNo0
include_proposedNo
hometown_donationNo0
political_donationNo0
religious_donationNo0
designated_donationNo0

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
legal_limitYes
legal_creditYes
total_creditYes
earned_incomeYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
designated_limitYes
legal_qualifyingYes
policy_citationsYes정책의 근거 조문
political_creditYes
designated_creditYes
policy_effective_toYes
political_qualifyingYes
designated_qualifyingYes
policy_effective_dateYes
political_small_creditYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld=false, yet the description adds substantial domain behavior: 15%/30% bracket split with special-first ordering, political-fund 100/110 rule, 25% over-30M tier, and truncation below the won. It also discloses that certain donation types are excluded from amount calculation, which an agent cannot infer 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?

Front-loads the computation goal and then layers the rate rules efficiently in four dense sentences with no filler. The tax jargon is heavy but each sentence carries operative rules an agent needs.

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 an 11-parameter, 0%-coverage tax tool with an output schema, the description captures the core calculation logic and exclusion rules well. Remaining gaps are the unmapped parameter names and undocumented auxiliary params (as_of, include_proposed, carryover_loss).

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 0%, so the description must compensate. It clarifies earned_income as a won-denominated string and pins religious_donation's purpose, and maps several donation types conceptually — but it does not map special/general/hometown/ESOP terms to concrete parameter names, and leaves as_of, carryover_loss, include_proposed, and year unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (구한다/computes) and resource (기부금 세액공제/donation tax credit) with statutory citations (소득세법 제59조의4제4항, 조세특례제한법 제76조). An agent can distinguish it from siblings like kr_medical_deduction or kr_education_deduction without opening the schema.

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?

Clearly delimits scope: what gets computed (special/general and political donations), what only affects limit ordering (hometown/ESOP), and where religious donations must be routed (religious_donation). It does not explicitly name alternative sibling tools, but the calculation boundary is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_education_deductionA
Read-onlyIdempotent

교육비 세액공제(소득세법 제59조의4제3항)를 구한다. expenses 는 self, preschool, elementary, middle_high, university, disabled_special 별 지출액(원 문자열), counts 는 범주별 인원이다. 공제율 15%를 정책의 인당 한도(영유아·초중고 300만원, 대학 900만원, 본인·장애인 특수교육 무한도)에 인원을 곱한 한도까지 적용해 원 미만 버린다. 여러 자녀 지출을 한 범주에 합치고 counts 를 생략하면 1명분 한도만 적용된다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
countsNo
expensesYes
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
per_categoryYes
total_creditYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/closed-world, so the description correctly spends its space on computation behavior: 15% rate, per-person caps by category (3M/9M/unlimited), multiplication by counts, and truncation below 1 won. It omits how include_proposed and as_of affect the calculation, which keeps it from a 5.

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 dense sentences, front-loaded with the purpose and statutory basis, then parameter shape, then formula/limits, then the counts pitfall. Every sentence earns its place; it is only slightly dense in the limits sentence.

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?

Output schema exists, so return values need not be explained, and the core computation is well covered. But for a policy-sensitive tool, the semantics of as_of and especially include_proposed (proposed law changes?) are critical and left unexplained, leaving a real gap.

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?

With 0% schema description coverage, the description does real work: it enumerates the allowed expense keys (self, preschool, elementary, middle_high, university, disabled_special), states amounts are KRW strings, and defines counts as per-category headcount. But year, as_of, and include_proposed remain completely opaque in both schema and description.

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 (교육비 세액공제를 구한다) with the governing statute (소득세법 제59조의4제3항), which clearly separates it from payroll.kr_medical_deduction and payroll.kr_donation_deduction. It does not name a sibling or scope boundary explicitly, so it stops just short of a 5.

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?

Explains how to populate expenses and counts and warns that omitting counts when merging children's expenses applies only one person's cap – useful invocation guidance. However, there is no explicit when-to-use/when-not guidance relative to alternatives such as payroll.kr_year_end_tax_settlement or tax.kr_education_tax_add.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_gross_from_netA
Read-onlyIdempotent

역산: 세후 월급(net_monthly, 원 문자열)에서 세전 월급을 구한다. payroll.kr_salary 의 실수령액이 목표 이상이 되는 가장 작은 정수 월급을 공제 합계의 고정점 반복으로 찾고, 달성한 실수령액과 차이(residual)를 함께 반환한다. 정확히 같은 실수령액이 불가능한 목표도 있으니 exact 를 확인하고, 연봉이 아닌 월 단위 실수령액을 넣어야 한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
net_monthlyYes
children_8_20No
meal_allowanceNo0
num_dependentsNo
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
exactYes
grossYes
traceYes계산 근거(tool, formula, inputs, steps, output)
salaryYes
residualYes
net_targetYes
evaluationsYes
achieved_netYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds useful behavioral detail beyond the read-only/idempotent annotations: it finds the smallest integer gross via fixed-point iteration and returns both achieved net and residual, warning that an exact match may be impossible. This explains the solver's non-obvious semantics and edge case, though return-field details are left to the output schema.

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?

Front-loads the reverse-calculation purpose and keeps to four dense sentences with no filler. The fixed-point and residual details are useful, though the paragraph is slightly packed.

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?

Given seven parameters and zero schema coverage, the definition is only partly complete: it covers the critical input unit and the exactness caveat, and the output schema covers return values. It remains insufficient for an agent needing to understand the other six inputs before invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies the key net_monthly parameter as a KRW string containing monthly net pay, but says nothing about year, as_of, children_8_20, meal_allowance, num_dependents, or include_proposed, leaving six parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific reverse operation (역산) from net monthly pay to gross monthly pay, and contrasts it implicitly with payroll.kr_salary, the forward calculation it iterates against. An agent can distinguish it from the sibling forward-salary tool without opening the schema.

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?

Tells the caller to supply a monthly net amount, explicitly not an annual salary, and to check the exact flag because not every target net is attainable. It lacks an explicit 'if you have gross and want net, use kr_salary instead' routing statement, so it stops short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_health_income_premiumA
Read-onlyIdempotent

건강보험 직장가입자의 보수 외 소득월액보험료(국민건강보험법 제71조: 연 2천만원 초과분의 1/12, 근로·연금소득 50% 평가, 이자·배당 1천만원 이하 제외, 월 상한 4,591,740원)와 장기요양보험료, 보수총액 기준 보수월액보험료 연간 정산 차액과 분할납부 가능 여부를 계산한다. 소득은 소득 종류별 연간 소득금액(원 문자열), year 는 부과 또는 보수 귀속 연도, 원 미만 버림. 지역가입자 보험료 계산에 쓰면 오용이다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
end_monthNo
start_monthNo
wage_incomeNo0
other_incomeNo0
pension_incomeNo0
business_incomeNo0
dividend_incomeNo0
interest_incomeNo0
include_proposedNo
ltc_premium_paidNo
health_premium_paidNo
annual_remuneration_totalNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
settlementNo
policy_sha256Yes
policy_sourceYes
policy_statusYes
income_premiumYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the description is free to add substantive behavior: the legal basis (국민건강보험법 제71조), the 2천만원 threshold with 1/12 proration, 50% evaluation of 근로·연금소득, the 이자·배당 1천만원 exclusion, the 4,591,740원 monthly cap, and 원 미만 버림 rounding. It stops short of describing the settlement comparison logic or what the response contains, but the output schema covers returns.

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?

Two sentences: one dense but front-loaded calculation sentence with parenthetical rules, one short misuse warning. Every clause (thresholds, cap, rounding) carries decision-relevant information, though the parenthetical stack makes it harder to scan than a bulleted rule list would be.

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 14-parameter tool with zero schema descriptions, the description leaves too much undefined — particularly annual_remuneration_total and the two *_premium_paid inputs that drive the annual settlement, and the include_proposed flag. An agent can call it with just year, but cannot confidently populate the settlement or month-range parameters from this text alone.

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 must carry parameter meaning, and it does clarify two clusters: income parameters are annual income amounts by type as won-denominated strings, and year is the imposition or remuneration attribution year. However, seven parameters (as_of, start_month, end_month, include_proposed, ltc_premium_paid, health_premium_paid, annual_remuneration_total) get no explanation at all, leaving the settlement and proration inputs undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (계산한다) and enumerates exactly what is computed: 보수 외 소득월액보험료, 장기요양보험료, 보수월액보험료 연간 정산 차액, and 분할납부 가능 여부. No sibling tool in the list covers Korean health-insurance premium computation, and the closing misuse note (지역가입자 보험료) further fences the scope.

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?

It gives an explicit when-not: "지역가입자 보험료 계산에 쓰면 오용이다", which steers an agent away from the wrong subscriber class. It does not name an alternative tool for that case, and the positive trigger (직장가입자 with 보수 외 소득) is implied by the scope statement rather than stated as a rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_housing_loan_deductionA
Read-onlyIdempotent

장기주택저당차입금 이자상환액 소득공제(소득세법 제52조제5항·제6항)의 공제 대상액을 구한다. 이자상환액(원 문자열), 상환기간(년), 고정금리와 비거치식 여부로 한도(15년 이상 고정금리+비거치식 2천만원 등)를 정해 그 이하만 인정하며, 10년 미만과 10~15년 변동·거치식은 0이다(limit_key 는 빈 문자열). 소득공제액이지 세액이 아니므로 세율을 곱해야 한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
term_yearsYes
is_non_graceYes
interest_paidYes
is_fixed_rateYes
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
limitYes
traceYes계산 근거(tool, formula, inputs, steps, output)
limit_keyYes
interest_paidYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
deductible_amountYes
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds substantive behavior beyond that: how the cap is derived from term/fixed-rate/non-grace status, that terms under 10 years and variable/grace 10-15 year cases return 0, and that limit_key is then an empty string — non-obvious domain behavior the schema cannot convey.

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?

The description is dense and front-loaded, with the purpose first and the limit/edge-case rules after. The middle sentence strings several clauses together and is harder to parse than necessary, but no sentence is filler.

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?

An output schema exists, so return values needn't be spelled out, and the description is strong on the deduction logic itself. Still, for a 7-parameter, 5-required tax tool with zero schema documentation, leaving year/as_of/include_proposed unexplained means an agent can call it correctly only by guessing at three inputs.

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 must carry parameter meaning; it does explain interest_paid (as a won-denominated string), term_years, is_fixed_rate, and is_non_grace with real semantics. But year, as_of, and include_proposed (3 of 7 params) get no mention in either schema or description, leaving a meaningful gap for a fully unannotated schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific calculation ('장기주택저당차입금 이자상환액 소득공제의 공제 대상액을 구한다') and even cites the governing statute (소득세법 제52조제5항·제6항), so it is unmistakable against sibling payroll/tax tools. The final clause distinguishes a deduction amount from tax owed, which prevents a common misreading.

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 useful downstream instruction — '소득공제액이지 세액이 아니므로 세율을 곱해야 한다' — implying this feeds into a tax computation step. However, it never names an alternative or states when a caller should choose this over tax.kr_income or payroll.kr_year_end_tax_settlement, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_medical_deductionA
Read-onlyIdempotent

의료비 세액공제(소득세법 제59조의4제2항)를 구한다. 총급여(원 문자열)의 3% 미달분을 일반, 특수, 미숙아, 난임 순으로 차감한 뒤 일반 의료비 15%(연 700만원 한도), 본인·6세 이하·65세 이상·장애인 등 특수 15%(한도 없음), 미숙아 20%, 난임 30%를 적용하고 원 미만 버린다. 본인·65세 이상 의료비를 일반에 넣으면 700만원 한도가 걸린다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
prematureNo0
infertilityNo0
gross_incomeYes
general_medicalYes
special_medicalNo0
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
thresholdYes
gross_incomeYes
total_creditYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
total_expenseYes
general_creditYes
policy_versionYes적용된 정책 문서의 식별 정보
special_creditYes
policy_audit_idYes
policy_citationsYes정책의 근거 조문
premature_creditYes
deductible_expenseYes
infertility_creditYes
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses substantial behavior beyond the annotations: the deduction order (general, special, premature, infertility), the 3% gross-income threshold, the applicable rates (15%, 20%, 30%), the 7 million won annual cap for general medical, the no-cap rule for special medical, and the won-truncation behavior. It also warns that placing self/over-65 expenses under general triggers the cap, which is a non-obvious behavioral pitfall.

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?

The description is front-loaded with the purpose and legal basis, followed by dense but relevant calculation details. It is appropriately sized for a multi-parameter tax calculator, though the long first sentence could be broken into clearer clauses.

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?

The calculation logic is richly described and an output schema exists, so return values need not be explained. However, the description omits the meaning of the required year parameter and the optional as_of/include_proposed flags, which are important for an agent to invoke the tool correctly.

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 must compensate. It explains gross_income as a won-denominated string and clarifies the four medical expense categories and how each is treated, but it does not explain the required 'year' parameter or the optional 'as_of' and 'include_proposed' parameters, leaving key inputs undocumented.

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: computing the Korean medical expense tax credit under Income Tax Act Article 59-4 Paragraph 2. This is much more precise than the tool name alone, but it does not explicitly distinguish this tool from sibling deduction calculators like payroll.kr_donation_deduction or payroll.kr_education_deduction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the calculation mechanics but never says when to use this tool versus alternatives such as payroll.kr_year_end_tax_settlement or other kr_* deduction tools. There are no exclusion conditions or routing guidance for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_minimum_wage_checkA
Read-onlyIdempotent

한국 최저임금 충족 여부를 검토한다(최저임금법 제5조·제6조, 시행령 제5조, 연도별 고시). wage_amount 는 wage_unit 단위의 매월 정기 지급 소정근로 임금(원)이고 월급은 주 40시간이면 209시간으로 시급 환산한다. 매월 주는 상여금과 현금 복리후생비는 산입 제외 비율(2024년부터 0%)을 빼고 더하며, 수습 감액 10%는 세 요건을 모두 줄 때만 적용한다. 비교는 정밀 값이고 부족액은 원 미만 올림이다. 연장·휴일·야간 수당, 연차 미사용수당, 현물 복리후생, 1개월 초과 주기 상여는 넣지 않는다. 도급제, 택시 운전, 적용 제외 인가는 다루지 않는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
wage_unitNomonthly
wage_amountYes
on_probationNo
monthly_bonusNo0
include_proposedNo
simple_labor_jobNo
weekly_paid_hoursNo
daily_contract_hoursNo
monthly_welfare_cashNo0
weekly_contract_hoursNo40
monthly_standard_hoursNo
contract_one_year_or_moreNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
compliantYes
inclusionYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
hourly_shortfallYes
labor_pay_policyYes
policy_citationsYes정책의 근거 조문
hourly_equivalentYes
monthly_shortfallYes
weekly_basis_hoursYes
policy_effective_toYes
notice_monthly_hoursYes
notice_monthly_amountYes
policy_effective_dateYes
minimum_monthly_amountYes
monthly_standard_hoursYes
statutory_hourly_minimumYes
applicable_hourly_minimumYes
monthly_conversion_amountYes
probation_reduction_appliedYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/closed-world, and the description goes well beyond them: it discloses the 209-hour conversion basis, the exclusion ratio for bonuses and cash welfare (0% since 2024), the three-condition probation reduction, precise-value comparison, and round-up of the shortfall. It does not disclose behavior of the less obvious switches (e.g. include_proposed, as_of), leaving a small gap.

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?

Purpose is front-loaded in the first clause, and the subsequent sentences each add a distinct rule (conversion basis, inclusions/exclusions, rounding, scope limits) with little redundancy. It is dense but every sentence earns its place; a structured list of the calculation steps would have improved scanability.

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?

The output schema removes any need to describe return values, and the legal and arithmetic model is well covered. However, for a 14-parameter tool with zero schema documentation, roughly eight parameters remain unexplained, which is a material completeness gap even given the rich domain context provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 14 parameters, so the description carries the full burden, yet it clarifies only a handful: wage_amount/wage_unit, monthly_bonus, monthly_welfare_cash and on_probation. Key inputs such as include_proposed, as_of, simple_labor_job, weekly_paid_hours, daily_contract_hours, weekly_contract_hours, monthly_standard_hours and contract_one_year_or_more are never mentioned, so an agent cannot infer their meaning or units.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('한국 최저임금 충족 여부를 검토한다') with the governing legal basis (최저임금법 제5조·제6조, 시행령 제5조). No sibling in the payroll.* family performs a minimum-wage compliance check, so the resource is unambiguous on its own.

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?

Explicitly excludes scopes ('도급제, 택시 운전, 적용 제외 인가는 다루지 않는다') and enumerates what wage components are in and out of the calculation, which effectively tells the agent when this tool does and does not apply. It stops short of naming a sibling alternative for the excluded cases, so it is not a full when/when-not/alternative statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_national_pension_benefitA
Read-onlyIdempotent

국민연금 노령연금 예상액을 국민연금법 제51조 기본연금액 산식(A값, 구간별 비례상수 2.4~1.29, 20년 초과 연 5% 가산), 제63조 가입기간별 지급률, 조기수령 월 0.5% 감액(최대 60개월), 연기 월 0.6% 가산(최대 60개월), 부양가족연금으로 계산한다. year 는 지급 개시 연도, 금액은 원 문자열, B는 b_value·monthly_income(현재 소득 유지 가정)·income_history(재평가율 적용) 중 하나. 월 지급액은 10원 미만 버리고 제53조 최고한도(평균 기준소득월액)를 적용한다. 크레딧과 재직자 감액은 빠지므로 공단 확정 연금액 대용으로 쓰면 오용이다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
b_valueNo
deferral_ratioNo1
income_historyNo
monthly_incomeNo
dependent_spouseNo
include_proposedNo
claim_offset_monthsNo
contribution_monthsNo
contribution_end_yearNo
dependent_children_parentsNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
a_valueYes
b_valueYes
periodsYes
input_modeYes
payment_rateYes
income_cappedNo
policy_sha256Yes
policy_sourceYes
policy_statusYes
deferral_ratioYes
pension_cappedYes
policy_versionYes적용된 정책 문서의 식별 정보
monthly_pensionYes
policy_audit_idYes
weighted_amountYes
extension_factorYes
policy_citationsYes정책의 근거 조문
adjustment_factorYes
claim_offset_monthsYes
contribution_monthsYes
pension_cap_monthlyYes
policy_effective_toYes
basic_pension_annualYes
total_pension_annualYes
policy_effective_dateYes
old_age_pension_annualYes
adjusted_pension_annualYes
dependent_pension_annualYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely new behavioral detail beyond them: monthly payout truncated below 10 won, the Article 53 ceiling on average standard monthly income, the ±0.5%/0.6% per-month adjustment caps of 60 months, and the explicit scope exclusions. That is substantive disclosure about what the computation does and does not capture.

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?

Front-loads the purpose and formula basis in a single dense paragraph with no filler sentences; every clause carries information. It is somewhat over-packed with statutory constant ranges (2.4–1.29) that an agent does not need in order to call it.

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 12-parameter, formula-heavy domain tool with an output schema present (so return values need no explanation), the description supplies the governing formulas, key parameter conventions, rounding and ceiling rules, and scope limits. The remaining gap is the undocumented semantics of a few secondary parameters.

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 0%, so the description must carry all 12 parameters, and it only partially does: year (payment start year), the won-string convention for amounts, and the b_value/monthly_income/income_history choice with revaluation are explained. Several parameters remain undocumented — as_of, include_proposed, deferral_ratio's relationship to claim_offset_months, and the dependent_* fields are only inferable via the dependent family pension mention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — computing the expected Korean national pension old-age benefit — and grounds it in explicit statutory formulas (Art. 51 basic amount with A-value and 2.4–1.29 band constants, Art. 63 payment rate, early/deferral adjustments, dependent family pension). This level of specificity makes it unmistakably distinct from the other payroll.* tax and wage tools in the sibling list.

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 a clear application context (expected benefit projection) and an explicit when-NOT: it omits credit accrual and the working-person reduction, so it is 'misuse' as a stand-in for the agency's confirmed amount. It does not name an alternative sibling tool to use instead, which keeps it below 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_overtime_payA
Read-onlyIdempotent

한국 연장·야간·휴일근로수당을 계산한다(근로기준법 제56조, 시행령 제6조). ordinary_wage 는 통상임금(원)이고 wage_unit 으로 시급·일급·주급·월급을 고른다(월급은 주 40시간이면 209시간으로 환산). 시간은 Decimal 문자열이며 휴일근로는 하루별 목록으로 받아 8시간 이내 50%, 초과 100%를, 연장 50%와 야간(22~06시) 50%는 겹치면 더한다. employee_count 4명 이하는 가산 없이 근로시간분만 주고 금액은 원 미만 올림이다. 휴일근로 시간을 overtime_hours 에도 넣으면 이중 가산이다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
wage_unitNohourly
night_hoursNo0
ordinary_wageYes
employee_countYes
overtime_hoursNo0
include_proposedNo
weekly_paid_hoursNo
daily_contract_hoursNo
holiday_hours_by_dayNo
weekly_contract_hoursNo40
monthly_standard_hoursNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
hoursYes
traceYes계산 근거(tool, formula, inputs, steps, output)
base_payYes
premiumsYes
total_payYes
wage_unitYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
premium_totalYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
premium_appliesYes
policy_citationsYes정책의 근거 조문
weekly_basis_hoursYes
policy_effective_toYes
hourly_ordinary_wageYes
policy_effective_dateYes
monthly_standard_hoursYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, closed world), and the description adds real behavioral substance: 50%/100% holiday tiers, stacking of overtime and night premiums, the ≤4 employee exemption, and round-up-to-won behavior. It does not address validation failures or edge conditions such as negative or malformed Decimal input.

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?

Front-loads the purpose and legal basis, then packs calculation rules and pitfalls with no filler sentences. The clauses are long and dense, but each one carries actionable information.

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?

Given 13 parameters and a complex statutory calculation, the description covers the core premium logic well and the output schema removes the need to explain return values. However, seven parameters that materially affect the result (weekly_contract_hours, monthly_standard_hours, weekly_paid_hours, daily_contract_hours, as_of, include_proposed, year) are never explained, leaving real gaps.

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% across 13 parameters, so the description must carry the load. It explains ordinary_wage, wage_unit with the 209-hour monthly conversion, Decimal-string hours, holiday_hours_by_day as a per-day list, and the employee_count threshold, but leaves year, as_of, include_proposed, weekly_paid_hours, daily_contract_hours, weekly_contract_hours, and monthly_standard_hours entirely undefined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (계산한다) and a precisely scoped resource (한국 연장·야간·휴일근로수당) and anchors it to Labor Standards Act Art. 56 and Enforcement Decree Art. 6, which clearly separates it from siblings like payroll.kr_weekly_holiday_pay or payroll.kr_salary.

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 concrete usage context — how to pass holiday hours (per-day list, not overtime_hours) and the explicit warning that duplicating holiday hours into overtime_hours causes double premiums. It lacks an explicit 'use X instead when…' comparison to sibling payroll tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_salaryA
Read-onlyIdempotent

세전 월급(원, 문자열)에서 한국 실수령액을 구한다. 비과세 식대 한도를 뺀 과세급여로 4대보험 근로자 부담분(국민연금 상·하한, 건강보험, 장기요양, 고용보험)과 근로소득 간이세액표 소득세, 지방소득세(소득세의 10%)를 공제하며 건강보험과 장기요양은 10원 미만 버림, 그 밖의 보험료와 지방소득세는 원 미만 버림이다. 시행일별 정책을 as_of 로 고른다. 연봉을 월급 자리에 넣으면 안 된다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
children_8_20No
meal_allowanceNo0
monthly_salaryYes
num_dependentsNo
include_proposedNo

Output Schema

NameRequiredDescription
netYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
grossYes
taxesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
taxableYes
insurancesYes
non_taxableYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
income_tax_lookupYes
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description goes well beyond them by disclosing the exact payroll formula surface: taxable pay after the non-taxable meal allowance cap, national pension floor and ceiling, and precise rounding rules (health and long-term care truncated below 10 won, other premiums and local income tax below 1 won). It stops short of describing failure modes or validation behavior for out-of-range inputs.

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?

Three sentences, all information-dense: the objective first, the computation and rounding rules second, and the policy-dating plus the misuse warning last. No filler and the critical scope constraint is front-loaded.

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?

An output schema exists, so return values need no explanation, and the annotations cover the safety profile. What remains missing is meaning for three of the seven inputs (dependents, children 8–20, include_proposed), which is a real gap given zero schema description coverage.

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?

With 0% schema description coverage across 7 parameters, the description must carry all parameter meaning, and it only partly does: monthly_salary (pre-tax, in won, as a string), as_of (effective-date policy selection), and meal_allowance (비과세 식대 한도) are addressed. children_8_20, num_dependents (which drives the 간이세액표 income tax) and include_proposed are never explained anywhere.

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 a specific verb and resource — converting a pre-tax monthly salary (세전 월급) into a Korean net salary (실수령액) — and enumerates the exact deductions computed (national pension within upper/lower bounds, health insurance, long-term care, employment insurance, simple tax table income tax, 10% local income tax). It does not explicitly differentiate itself from the inverse sibling payroll.kr_gross_from_net or payroll.hourly_to_monthly_net, which keeps it below a 5.

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 one explicit negative constraint — don't put an annual salary in the monthly salary slot (연봉을 월급 자리에 넣으면 안 된다) — and explains that as_of selects the policy effective date. However, it never states when to choose this tool over kr_gross_from_net (net→gross) or the hourly/severance siblings, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_severance_payA
Read-onlyIdempotent

퇴직소득세(소득세법 제48조·제55조)를 구한다. 퇴직급여총액, 근속연수(년, 소수 가능), 비과세액(원 문자열)에서 근속연수공제, 환산급여(12배 후 근속연수로 나눔)공제, 기본세율 누진을 적용하고 근속연수 비율로 환원해 원 단위 반올림한다. 1년 미만 끝수는 1년으로 올려 쓰며 지방소득세는 포함하지 않는다. 근속연수를 개월 수로 넣으면 안 된다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
non_taxableNo0
service_yearsYes
include_proposedNo
severance_amountYes

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
severanceYes
non_taxableYes
converted_taxYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
service_yearsYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
converted_salaryYes
policy_citationsYes정책의 근거 조문
service_deductionYes
taxable_severanceYes
converted_tax_baseYes
converted_deductionYes
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe, read-only, idempotent, closed-world profile, so the description is free to spend its words on behavior, and it does: the exact deduction sequence, the 12x conversion then division, progressive-rate application, pro-rating back by service-year ratio, and won-level rounding. It also discloses two edge behaviors an agent would otherwise get wrong — sub-one-year fractions round up to one year, and local income tax is excluded from the result.

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?

The description front-loads the purpose and legal basis, then moves to computation, then to the two caveats, and every sentence carries information — nothing is filler. The mid-section enumerating the deduction steps is dense but justified for a tax formula where the method itself is the contract.

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?

An output schema exists, so return values need not be described, and the calculation method is well covered. But for a statutorily-versioned tax tool, the unexplained year, as_of, and include_proposed parameters matter — whether as_of pins a historical law version or include_proposed pulls in proposed amendments changes the answer, and the description is silent on all three.

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 0%, so the description must carry parameter meaning, and it does for three of six: severance_amount (퇴직급여총액), service_years (년 단위, 소수 허용, explicitly not months), and non_taxable (원 문자열). The remaining three — year, as_of, include_proposed — get no explanation at all, which is a notable gap given the schema supplies only bare titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (퇴직소득세를 구한다) and anchors it to the governing statute (소득세법 제48조·제55조), which immediately separates it from sibling payroll tools like kr_salary and kr_year_end_tax_settlement. It also scopes what the result includes and excludes, leaving no ambiguity about what is being computed.

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?

Usage is implied rather than stated: the description tells you the inputs must be total severance pay, service years in years, and non-taxable amount, and warns you not to pass months, which is a genuine guard against a common misuse. However, it never says when to choose this over adjacent tools (e.g. tax.kr_pension_income or payroll.kr_gross_from_net), nor any precondition such as which year's rules apply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_weekly_holiday_payA
Read-onlyIdempotent

한국 주휴수당을 계산한다(근로기준법 제55조제1항·제18조제3항, 시행령 제30조·별표 2). weekly_contract_hours 는 4주 평균 1주 소정근로시간, hourly_ordinary_wage 는 시간급 통상임금(원)이다. 15시간 이상, 소정근로일 개근, 그 주까지 근로관계 존속이면 주휴시간 = min(주 소정근로시간 / 통상 근로자 주 소정근로일 수, 8)에 시급을 곱하고 원 미만은 올린다. 시급제·일급제 근로자용이며 주휴분이 이미 포함된 월급에 더하면 이중 계산이다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
include_proposedNo
perfect_attendanceNo
hourly_ordinary_wageYes
employed_through_weekNo
weekly_contract_hoursYes
regular_worker_weekly_daysNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
eligibleYes
holiday_hoursYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
ineligible_reasonsYes
weekly_holiday_payYes
policy_effective_toYes
hourly_ordinary_wageYes
policy_effective_dateYes
weekly_contract_hoursYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and closed-world; the description adds the legal eligibility gates, the exact min(...) formula, and the round-up rule, so the agent knows the calculation behavior beyond the safety hints. No contradiction with 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 sentences, front-loaded with purpose, then parameter definitions and formula, then applicability and exclusion. There is no filler; the legal citations and formula are dense but relevant.

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 legal payroll calculation, it covers purpose, eligibility, formula, and the double-count warning; the output schema and annotations cover return values and safety. The main gap is that year, as_of, and include_proposed are not described, which matters if legal version or proposed rules are relevant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description defines the key inputs: weekly_contract_hours, hourly_ordinary_wage, perfect_attendance, employed_through_week, and regular_worker_weekly_days via the formula. It leaves year, as_of, and include_proposed unexplained, so it is strong for core parameters but not fully complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('한국 주휴수당을 계산한다') and ties it to the relevant Labor Standards Act provisions, making it clearly distinct from sibling payroll tools such as overtime or severance pay.

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?

It states the target user ('시급제·일급제 근로자용') and an explicit exclusion: adding this to a monthly salary that already includes weekly holiday pay is double counting. It gives eligibility conditions but does not name an alternative sibling tool for monthly-salaried cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payroll.kr_year_end_tax_settlementA
Read-onlyIdempotent

연말정산 환급 또는 추가납부액을 간이 모델로 구한다. 연간 총급여에서 근로소득공제, 인당 기본공제, 추가 소득공제를 뺀 과세표준에 소득세 누진세율을 적용하고 근로소득세액공제, 표준세액공제 13만원, 추가 세액공제를 차감해 결정세액(원 미만 버림)을 낸 뒤 기납부세액과 비교한다. 의료비·교육비·기부금은 각 도구로 따로 구해 extra_* 로 넣어야 한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
dependentsNo
prepaid_taxYes
annual_grossYes
extra_deductionsNo0
include_proposedNo
extra_tax_creditsNo0

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
refundYes
statusYes
tax_creditYes
decided_taxYes
prepaid_taxYes
annual_grossYes
computed_taxYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
taxable_incomeYes
labor_deductionYes
policy_audit_idYes
policy_citationsYes정책의 근거 조문
personal_deductionYes
policy_effective_toYes
policy_effective_dateYes
labor_income_tax_creditYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses the calculation chain, that determined tax is truncated below 1 won, and that the result is a comparison against prepaid tax (refund vs. additional payment). It says nothing about as_of or include_proposed behavior, leaving two behavioral switches unexplained.

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 sentences, front-loaded with the outcome, then the formula, then the composition note about extra_* inputs. Dense but every sentence carries information; no filler or repetition.

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?

The output schema removes the need to describe return values, and the formula description is fairly complete for a simplified model. However, with 8 parameters at 0% schema coverage, the unexplained year, as_of, and include_proposed fields are a meaningful gap an agent must guess at.

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 0%, so the description must carry parameter meaning. It implicitly maps annual_gross, prepaid_tax, extra_deductions, and extra_tax_credits, and hints at dependents via 인당 기본공제, but year, as_of, and include_proposed are never explained, and the string/money format of the amount parameters is not clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: computing the Korean year-end settlement refund or additional payment via a simplified model. The following sentences pin down exactly which deductions, credits, and progressive rates are applied, so an agent can tell this apart from tax.kr_income or tax.progressive without opening the schema.

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?

Clearly tells the agent this is a simplified year-end settlement model and that medical, education, and donation deductions must be obtained from their own tools (kr_medical_deduction, kr_education_deduction, kr_donation_deduction) and passed via extra_*. It does not state when NOT to use it or which sibling to pick for a full statutory calculation, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pm.critical_pathA
Read-onlyIdempotent

작업 의존 관계로 주공정법(CPM) 일정을 계산해 각 작업의 ES, EF, LS, LF, 여유(slack)와 총 기간, 여유가 0인 주공정 작업 목록을 돌려준다. tasks는 {id, duration(Decimal 문자열, 0 이상, 단위 통일), predecessors(선행 id 목록)}의 리스트이며 결과는 위상 정렬 순서다. 반올림하지 않는다. 순환 의존이나 없는 선행 id는 오류이고, 작업 간 지연(lag)과 시작 제약은 지원하지 않는다.

NameRequiredDescriptionDefault
tasksYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
task_detailsYes
critical_pathYes
total_durationYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, closed-world, so the description correctly spends its words elsewhere: no rounding, results returned in topological order, and precise error conditions for cycles and missing predecessor ids. It does not discuss determinism guarantees beyond the sort order or behavior with duplicate ids, but the added context is genuinely useful.

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?

Three sentences, front-loaded with purpose and outputs, then the input shape, then edge cases. Each sentence contributes information not available elsewhere; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, an output schema present, and annotations covering the safety profile, the remaining burden is input shape and failure modes — both supplied. Nothing an agent needs in order to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema declares only an untyped array of objects, so the description carries the full burden — and does: it defines the task record as {id, duration (Decimal string, ≥0, consistent units), predecessors (list of predecessor ids)}. Constraints on value format and units are exactly what the schema omits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (작업 의존 관계로 주공정법(CPM) 일정을 계산) and enumerates exactly what is returned: ES, EF, LS, LF, slack, total duration, and the zero-slack critical task list. An agent can immediately distinguish this from siblings like pm.pert, pm.evm, and pm.monte_carlo_schedule without opening the schema.

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?

Explicitly bounds the tool's applicability: no lag between tasks, no start constraints, cycles or unknown predecessor ids are errors. That tells the agent when not to use it. It stops short of naming alternatives (e.g., pm.pert for three-point estimates, pm.monte_carlo_schedule for probabilistic durations), leaving that routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pm.earned_scheduleA
Read-onlyIdempotent

획득일정(Earned Schedule) 지표를 계산한다. ES는 획득가치(EV)에 해당하는 계획 시점으로 pv_timeline을 선형 보간해 역산하고, SPI(t)=ES/AT, TSPI(t)=(PD-ES)/(PD-AT), IEAC(t)=PD/SPI(t). pv_timeline은 [{time, cumulative_pv}] 시간 오름차순에 누적 PV 비감소이며 모든 수는 Decimal 문자열, 시간 단위를 통일한다. AT와 PD는 양수여야 하고 PD와 AT가 같으면 TSPI는 0을 돌려준다. 반올림하지 않는다.

NameRequiredDescriptionDefault
actual_timeYes
pv_timelineYes
earned_valueYes
planned_durationYes

Output Schema

NameRequiredDescription
esYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
spi_tYes
traceYes계산 근거(tool, formula, inputs, steps, output)
ieac_tYes
tspi_tYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safe-read, idempotent profile, and the description adds real value on top: the PD==AT edge case returns TSPI 0, AT/PD must be positive, and no rounding is applied. These are behavioral traits the agent could not infer from the annotations or schema.

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?

Front-loaded with purpose, then formulas, then data-contract constraints in a logical order. Dense but every sentence carries specification content; the formula block is justified for a calculation tool.

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?

Output schema exists so return values need no explanation, and the description fully specifies input formatting, ordering, positivity, and the degenerate-case behavior. Complete enough for an agent to call it correctly on the first try.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description must carry the load, and it does: pv_timeline is defined as {time, cumulative_pv} entries in ascending time with non-decreasing cumulative PV, all values are Decimal strings with unified time units, and AT/PD must be positive. earned_value is only implied via the EV reference rather than named directly, which is a minor gap.

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 a specific metric family (Earned Schedule) and spells out the exact outputs (ES, SPI(t), TSPI(t), IEAC(t)) with formulas. It is clearly distinct from pm.evm and pm.critical_path by metric, though it never names a sibling to differentiate explicitly.

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?

Usage is only implied: an agent can infer you call this when you need ES-based schedule performance indicators. There is no explicit when-to-use vs pm.evm, no stated prerequisites, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pm.evmA
Read-onlyIdempotent

획득가치관리(EVM) 지표를 계산한다. SPI=EV/PV, CPI=EV/AC, SV=EV-PV, CV=EV-AC, EAC=BAC/CPI, ETC=EAC-AC, VAC=BAC-EAC. pv, ev, ac, bac는 같은 통화 단위의 Decimal 문자열이며 반올림 없이 Decimal 나눗셈 정밀도로 돌려준다. pv와 ac가 0이면 오류이고 bac는 양수여야 한다. EAC는 현재 비용 효율이 계속된다는 가정의 추정이며 etc_ 키는 예약어 회피용 이름이다.

NameRequiredDescriptionDefault
acYes
evYes
pvYes
bacYes

Output Schema

NameRequiredDescription
cvYes
svYes
cpiYes
eacYes
spiYes
vacYes
etc_Yes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, but the description adds real behavioral context: values are Decimal strings in a shared currency unit, results are returned at Decimal division precision with no rounding, pv/ac of zero produce an error, bac must be positive, and EAC assumes current cost efficiency persists. The 'etc_' key naming caveat is a nice touch that prevents a downstream key-lookup mistake.

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?

Front-loaded with the purpose, then the formula block, then input format and constraints, then the EAC assumption caveat — a logical order with no filler. Slightly dense: the formula enumeration may partly duplicate what the output schema already declares, and the etc_ naming note reads as a footnote.

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 4-parameter pure calculator with an output schema and full annotations, the description covers what the schema cannot: units, precision, validation rules, and a modeling assumption behind EAC. The only missing piece is guidance on when to prefer this over pm.earned_schedule.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (titles only, e.g. 'Pv'), so the description carries the burden and does: all four params are same-currency Decimal strings, pv/ac must be non-zero, bac must be positive. It falls short of expanding the acronyms (PV=planned value, EV=earned value, AC=actual cost, BAC=budget at completion) explicitly, but the formula list makes the roles recoverable.

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 ('획득가치관리(EVM) 지표를 계산한다') and enumerates the exact indices produced (SPI, CPI, SV, CV, EAC, ETC, VAC), so the agent knows precisely what the tool returns. It never names or contrasts with the nearby pm.earned_schedule or pm.pert siblings, leaving differentiation to inference.

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?

Usage is implied by the formulas (call it when you have PV/EV/AC/BAC and want standard EVM indices), and the non-zero pv/ac and positive bac constraints hint at prerequisites. There is no explicit when-to-use statement and no routing against pm.earned_schedule or other pm.* tools, so the agent must decide on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pm.monte_carlo_scheduleA
Read-onlyIdempotent

작업별 낙관, 최빈, 비관 추정으로 프로젝트 총 소요 시간의 분포를 몬테카를로로 시뮬레이션해 P10, P50, P90, 평균, 표본 표준편차를 돌려준다. tasks는 {id, optimistic, most_likely, pessimistic}(Decimal 문자열), n은 100 이상 1,000,000 이하 정수(기본 1000), seed 기본 0이면 결과가 재현된다. float64 계산이며 유효숫자 10자리 문자열이다. 작업 기간을 단순 합산하므로 병렬 경로나 선후 관계는 반영하지 않는다.

NameRequiredDescriptionDefault
nNo
seedNo
tasksYes

Output Schema

NameRequiredDescription
nYes
p10Yes
p50Yes
p90Yes
meanYes
seedYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
stdevYes
traceYes계산 근거(tool, formula, inputs, steps, output)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds genuinely useful context beyond that: float64 math, output rounded to 10 significant digits, and the reproducibility guarantee when seed defaults to 0 – all behavioral facts not present in any structured field.

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 dense sentences with the outcome, input contract, numeric behavior, and modeling limitation each stated once and front-loaded. Nothing is repeated from the schema and no sentence is 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 simulation tool with an output schema present, the description need not explain return values, yet it remains complete enough on inputs, determinism, and the scope limitation that an agent can call it correctly. The only missing piece is an explicit pointer to the sibling to use when dependencies matter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (bare titles, undocumented nested task object), so the description carries the full burden and does so: it defines the task element shape {id, optimistic, most_likely, pessimistic} as Decimal strings, the n bounds (100–1,000,000, default 1000), and seed semantics (0 ⇒ reproducible). This is exactly the compensation the empty schema requires.

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+resource ('몬테카를로로 시뮬레이션') and enumerates the exact outputs (P10/P50/P90/mean/std-dev), so an agent knows precisely what it computes. The caveat that parallel paths and precedence are not modeled implicitly separates it from pm.critical_path, though no sibling is named outright.

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?

The limitation ('병렬 경로나 선후 관계는 반영하지 않는다') hints at when this tool is inappropriate and points a careful reader toward pm.critical_path, but there is no explicit 'use this when / use X instead when' statement against the very close siblings pm.pert and pm.critical_path. Usage is implied, not directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pm.pertA
Read-onlyIdempotent

단일 작업의 PERT 삼점 추정으로 기대 기간, 분산, 표준편차를 계산한다. E=(O+4M+P)/6, V=((P-O)/6)², 표준편차는 sqrt(V). 낙관, 최빈, 비관 값은 같은 시간 단위의 Decimal 문자열이며 낙관이 비관을 넘으면 오류다. 반올림하지 않고 표준편차만 유효숫자 30자리까지 구한다. 여러 작업의 합산 일정에는 critical_path 나 monte_carlo_schedule 을 쓴다.

NameRequiredDescriptionDefault
optimisticYes
most_likelyYes
pessimisticYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
stdevYes
traceYes계산 근거(tool, formula, inputs, steps, output)
expectedYes
varianceYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses a concrete failure condition (optimistic > pessimistic is an error), a precision rule (no rounding, stddev to 30 significant digits), and a unit-consistency requirement across the three inputs. These are exactly the behavioral traits annotations cannot express.

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 tight sentences, front-loaded with purpose and formulas, then constraints, then the sibling routing hint. Every sentence carries information an agent needs; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and everything else an agent needs — semantics, units, error condition, precision, and alternative tools — is present. Complete for a deterministic three-input calculator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry parameter meaning, and it does: it identifies the three inputs as optimistic/most-likely/pessimistic, requires them to be Decimal strings in the same time unit, and imposes the O ≤ P ordering constraint. It stops just short of mapping each parameter name individually, but the formulas make the roles unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('단일 작업의 PERT 삼점 추정으로 기대 기간, 분산, 표준편차를 계산한다') and includes the exact formulas, so an agent knows precisely what is computed. It also explicitly distinguishes itself from siblings by naming critical_path and monte_carlo_schedule for multi-task aggregation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes the tool to a single task and routes the agent elsewhere ('여러 작업의 합산 일정에는 critical_path 나 monte_carlo_schedule 을 쓴다'), giving both when-to-use and the named alternatives. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.bayesA
Read-onlyIdempotent

베이즈 정리로 사후확률 P(A|B) = P(A)P(B|A)/P(B)를 구한다. prior, likelihood, marginal 은 [0, 1] 구간 십진 문자열이고 marginal 은 0 이 될 수 없으며 Decimal 50자리 정밀도로 계산한다. 입력 간 정합성(P(B) ≥ P(A)P(B|A))은 검사하지 않으므로 marginal 은 전체 확률 법칙으로 먼저 구해야 한다.

NameRequiredDescriptionDefault
priorYes
marginalYes
likelihoodYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
posteriorYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover readOnly/idempotent/closed-world, but the description adds behaviors the annotations cannot: Decimal 50-digit precision, the [0,1] domain, marginal ≠ 0, and the fact that input consistency is NOT validated. Warning about the absence of a validation check is exactly the kind of trap-prevention context that adds value beyond structured fields.

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?

Three tight sentences: what it computes, then input format/constraints, then the non-validation caveat. Each sentence carries distinct information and the formula is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. With a mutation-free, single-purpose math tool and 3 required scalar params, the description supplies domain, format, precision, preconditions, and the key failure mode. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the parameter burden, and it does: all three inputs are named, constrained to decimal strings in [0,1], with marginal explicitly nonzero, and their roles are inferable from the formula. It stops short of explicitly mapping prior=P(A), likelihood=P(B|A), marginal=P(B) by name, leaving a small inference gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation and the exact formula it implements: posterior P(A|B) = P(A)P(B|A)/P(B) via Bayes' theorem. No sibling in the probability.* family computes Bayes, and the verb+resource is unambiguous. An agent can identify this tool from the description alone.

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?

It specifies a real usage prerequisite: marginal must be derived via the law of total probability first because the tool will not check P(B) ≥ P(A)P(B|A). That is actionable context. It does not discuss when to choose a different tool, but no direct alternative exists in the sibling list, so the practical guidance burden is mostly met.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.beta_cdfA
Read-onlyIdempotent

베타분포의 누적확률 P(X ≤ x) = I_x(α, β)를 구한다. x 는 [0, 1] 구간, alpha 와 beta 는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. alpha 와 beta 를 서로 바꾸면 결과가 달라진다.

NameRequiredDescriptionDefault
xYes
betaYes
alphaYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely new behavioral detail: scipy float64 computation, rounding to 10 significant digits, and string return type. It does not cover failure behavior for out-of-range inputs, keeping it from a 5.

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?

Three tight sentences: definition first, then input/output contract, then a gotcha. No filler and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema present, the description covers everything else needed: domain of each input, numeric precision, return type, and the symmetry caveat. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all parameter meaning, and it does: x constrained to [0,1], alpha and beta as positive decimal strings, plus the α/β swap warning. It adds no per-parameter detail beyond that (e.g., no precision limits), so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('베타분포의 누적확률') and even gives the exact definitional formula P(X ≤ x) = I_x(α, β), which unambiguously distinguishes it from beta_pdf and beta_ppf by mathematical form.

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?

Provides domain constraints (x in [0,1], α and β positive) and a note that swapping α/β changes the result, which implicitly tells the agent this is the CDF not the PDF/PPF, but it never explicitly says when to choose this over probability.beta_pdf or probability.beta_ppf.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.beta_pdfA
Read-onlyIdempotent

베타분포의 확률밀도 f(x; α, β)를 구한다. x 는 [0, 1] 구간, alpha 와 beta 는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 밀도값은 1 을 넘을 수 있고 확률이 아니다.

NameRequiredDescriptionDefault
xYes
betaYes
alphaYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A3.9/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). The description adds real context beyond them: computation is done in scipy float64 and the result is rounded to 10 significant digits, returned as a string. The warning that density values can exceed 1 and are not probabilities is a genuinely useful behavioral clarification.

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?

Three tight sentences, front-loaded with the definition, then input domain, then return format, then the mis-interpretation warning. No repetition of the tool name or 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?

An output schema exists, so return values need not be explained, yet the description still describes the string/rounding contract. Remaining gaps are edge-case behavior: no statement of what is returned or raised when x falls outside [0,1] or alpha/beta are non-positive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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, and it does: x is constrained to [0,1], and alpha/beta are described as positive decimal strings, telling the agent to pass strings rather than numbers. It does not explicitly state that x is also a string, a small residual gap.

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 precise verb+resource: computes the beta distribution probability density f(x; α, β). The word '밀도'(density) inherently separates it from the sibling beta_cdf and beta_ppf, though those alternatives are never named. A clear purpose, but without explicit sibling differentiation.

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?

The domain constraints (x in [0,1], alpha/beta positive) imply when the tool is applicable, but there is no explicit statement of when to use this versus beta_cdf/beta_ppf, nor any note on what happens for out-of-range input. Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.beta_ppfA
Read-onlyIdempotent

베타분포의 분위수를 구한다. q 는 0 초과 1 미만, alpha 와 beta 는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. q 가 0 또는 1 이면 오류이며 결과는 [0, 1] 구간의 값이다.

NameRequiredDescriptionDefault
qYes
betaYes
alphaYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly=true, idempotent=true, and openWorld=false, so the description does not need to explain safety. It adds useful behavior beyond the annotations: the scipy/float64 computation path, the 10-significant-digit string rounding, the output range [0, 1], and the error condition for q = 0 or 1.

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 short sentences, with the purpose stated first and followed by input constraints, the output format, and the error case. Dense but no wasted clauses; the rounding/method detail could be considered optional but is useful.

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?

An output schema exists, so explaining the return value is not strictly required, but the description still covers it (string rounded to 10 significant digits). Combined with input domains and the error case, an agent has everything it needs to call this tool correctly; only the explicit routing to sibling tools is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (the schema gives only bare titles Q/Beta/Alpha), so the description must carry the parameter semantics, and it does: q is an exclusive (0,1) decimal string, and alpha/beta are positive decimal strings. It does not explicitly label alpha/beta as the shape parameters, so a small gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: '베타분포의 분위수를 구한다' (compute the beta distribution quantile). This is clearly distinct from the sibling CDF/PDF tools (probability.beta_cdf, probability.beta_pdf) and from other *_ppf tools, which target other distributions.

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?

The description gives the valid domain for q and states that q = 0 or 1 is an error, which is usable input guidance. It does not state when to use this tool instead of probability.beta_cdf (for the forward direction) or probability.beta_pdf, so routing is only implied by the term 'quantile'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.binomial_cdfA
Read-onlyIdempotent

이항분포의 누적확률 P(X ≤ k; n, p)를 구한다. k 와 n 은 0 이상 정수(k ≤ n), p 는 [0, 1] 구간 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 'k 회 이상'은 1 - cdf(k-1)로 구해야 하며 cdf(k)는 'k 회 이하'다.

NameRequiredDescriptionDefault
kYes
nYes
pYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), and the description adds substantial non-structured behavior: computation via scipy float64, results rounded to 10 significant digits, and the return value delivered as a string rather than a number. That string-return disclosure is operationally important and appears nowhere in the schema or 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?

Three sentences, front-loaded with the definition, then constraints, then the boundary-interpretation caveat. No filler; every clause carries either a constraint or a behavioral fact the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-parameter numeric tool with an output schema, this covers everything an agent needs: domain constraints on all inputs, the input encoding for p, the rounding behavior of the result, and the directional semantics that most often cause misuse. Nothing material is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all parameter meaning — and it does: k and n are non-negative integers with the k ≤ n constraint, and p is a decimal string in [0, 1]. This is critical because the schema types p as a bare 'string' with no format hint; the description supplies the required encoding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource with the exact formula notation: '이항분포의 누적확률 P(X ≤ k; n, p)를 구한다'. This unambiguously distinguishes it from probability.binomial_pmf (mass, not cumulative) and from the other distribution CDF tools in the sibling list.

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 concrete interpretation guidance: 'k 회 이상'은 1 - cdf(k-1)로 구해야 하며 cdf(k)는 'k 회 이하'다 — directly resolving the most common off-by-one ambiguity for CDF calls. It does not name binomial_pmf as the alternative for exact-P(X=k) queries, so it stops short of explicit sibling routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.binomial_pmfA
Read-onlyIdempotent

이항분포의 확률질량 P(X=k; n, p)를 구한다. k 와 n 은 0 이상 정수(k ≤ n), p 는 [0, 1] 구간 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 'k 회 이하' 확률이 필요하면 binomial_cdf 를 쓴다.

NameRequiredDescriptionDefault
kYes
nYes
pYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world. The description adds real behavioral context beyond that: k≤n constraint, p as decimal string, scipy float64 computation and 10-significant-digit rounding of the returned string. It stops short of richer output detail, but with an output schema present that's acceptable.

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?

Three tight sentences, front-loaded with the core purpose, then constraints and result format, then the alternative-tool routing. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values need not be explained, yet the description still specifies precision/rounding. Constraints, input formats and sibling routing are all covered, leaving nothing an agent needs missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does so well: it specifies k and n as non-negative integers with k≤n, and p as a decimal string in [0,1]. All three parameters gain semantic meaning beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (compute binomial PMF P(X=k; n, p)) with the exact formula, and explicitly names the sibling binomial_cdf for the cumulative case. An agent can distinguish this from binomial_cdf without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says if you need 'k or fewer' probability, use binomial_cdf, naming the alternative and the condition that selects it. The when-to-use-both split is fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.chi_square_cdfA
Read-onlyIdempotent

카이제곱분포의 누적확률 P(X ≤ x)를 구한다. x 는 0 이상, df(자유도)는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 검정의 p 값은 1 에서 이 값을 뺀 오른쪽 꼬리다.

NameRequiredDescriptionDefault
xYes
dfYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world behavior. The description adds genuinely new operational detail: inputs are decimal strings, computation is via scipy float64, output is a string rounded to 10 significant digits. That discloses output format and precision beyond 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?

Three tight sentences, each earning its place: the computation, the domain/format constraints, and the p-value relationship. The main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still conveys return type and precision, and it covers both parameters' domains. For a two-parameter probability function, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it does: it defines x as a non-negative decimal string and df as a positive decimal string. Only minor gaps (e.g., edge behavior at x=0, extremely large df) remain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific computation: cumulative probability P(X ≤ x) of the chi-square distribution. This clearly distinguishes it from siblings like probability.chi_square_pdf and probability.chi_square_ppf without ambiguity.

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?

Adds useful context by noting that hypothesis-test p-values are the right-tail complement (1 minus this value), guiding the agent toward chi_square_ppf for that task. It does not explicitly name the alternative tool, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.chi_square_pdfA
Read-onlyIdempotent

카이제곱분포의 확률밀도를 구한다. x 는 0 이상, df(자유도)는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 밀도값이지 확률이 아니므로 누적확률은 chi_square_cdf 를 쓴다.

NameRequiredDescriptionDefault
xYes
dfYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and closed-world, so safety is covered. The description adds real behavioral detail beyond them: scipy float64 computation, rounding to 10 significant digits, and string return type. It stops short of describing error behavior for out-of-domain inputs, which keeps it from a 5.

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?

Three tight sentences, front-loaded with the purpose, followed by constraints, then the disambiguation. No filler and nothing repeated from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter scalar function with an output schema and read-only annotations, the description covers purpose, domain constraints, numeric precision, and the sibling alternative. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0 percent with only 'X' and 'Df' titles, so the description carries the burden and largely does: it states x must be ≥ 0 and df must be a positive decimal string, covering both parameters' domain and type. It could be slightly more explicit that x is the evaluation point, but the compensation is substantial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('카이제곱분포의 확률밀도를 구한다') and immediately distinguishes itself from the sibling chi_square_cdf by stating it returns a density, not a probability. An agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the alternative and the condition that selects it: '밀도값이지 확률이 아니므로 누적확률은 chi_square_cdf 를 쓴다.' Combined with the domain constraints (x ≥ 0, df > 0), the agent knows both when to call this tool and when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.chi_square_ppfA
Read-onlyIdempotent

카이제곱분포의 분위수를 구한다. q 는 0 초과 1 미만, df(자유도)는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 유의수준 α 의 임계값은 q 에 1-α 를 넣는다.

NameRequiredDescriptionDefault
qYes
dfYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/closed-world, and the description adds real behavioral detail beyond them: the underlying scipy float64 computation and the 10-significant-digit rounding of the returned string. It omits what happens with out-of-domain input (rejection vs. error), which is the main remaining gap.

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?

Three sentences, no filler, and the core purpose comes first followed by parameter constraints and then the practical α hint. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter numeric routine with an output schema already documenting return shape, the description covers purpose, both parameter domains, numeric precision, and the canonical statistical use case. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 and does so: q is constrained to (0,1), df is a positive decimal, both are strings, and the α-to-1-α mapping clarifies the intent of q. The 'decimal string' format expectation for df is stated, though precision/format rules for q are only implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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 ('computes the quantile of the chi-square distribution'), which is self-differentiating from the sibling cdf/pdf variants and from other distributions' ppf tools. An agent can identify the operation without opening the schema.

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?

It gives concrete usage guidance by explaining that the critical value for significance level α is obtained by passing 1-α as q, which is the main point of confusion for ppf callers. It does not, however, state when this tool should be chosen over the cdf sibling or the related f_ppf/normal_ppf tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.expected_valueA
Read-onlyIdempotent

이산 확률변수의 기댓값 E[X] = Σ value_i * prob_i 를 구한다. values 와 probabilities 는 같은 길이의 십진 문자열 리스트이며 각 확률은 [0, 1], 합은 1 에서 1e-9 이내여야 한다. Decimal 50자리로 계산하며 연속분포에는 쓸 수 없다.

NameRequiredDescriptionDefault
valuesYes
probabilitiesYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/closed-world, so the safety profile is known. The description adds substantive behavior beyond that: 50-digit Decimal arithmetic, the 1e-9 sum tolerance, and input validation constraints on probabilities.

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 short sentences, front-loaded with the definition and formula, then constraints and precision, then the exclusion. No sentence is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter calculator with an output schema, the description covers the formula, input format, validation rules, numeric precision, and applicability limits. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: both parameters are described as equal-length lists of decimal strings, with each probability constrained to [0,1] and summing to 1 within 1e-9. It does not spell out error behavior on length mismatch, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('이산 확률변수의 기댓값 E[X]'), gives the exact formula Σ value_i * prob_i, and explicitly excludes continuous distributions. This clearly separates it from siblings like probability.normal_cdf or probability.gamma_pdf.

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 exclusion '연속분포에는 쓸 수 없다' tells the agent when NOT to use it, which is real guidance. However it does not name the alternative to reach for (e.g., a continuous-distribution tool), leaving the redirect implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.exponential_cdfA
Read-onlyIdempotent

지수분포의 누적확률 P(X ≤ x) = 1 - e^(-λx)를 구한다. x 는 0 이상, rate(λ)는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. rate 에 평균(1/λ)을 넣으면 틀린다.

NameRequiredDescriptionDefault
xYes
rateYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/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 real behavioral detail beyond them: scipy float64 computation and a return value rounded to 10 significant digits as a string. That precision/rounding behavior is exactly the kind of thing annotations can't express.

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 tight sentences, front-loaded with the formula and followed by constraints and a common-error warning. No filler, though the return-format sentence arguably duplicates the output schema.

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?

The output schema covers return values, and the description still adds precision/rounding and the full input-domain constraints, so an agent can call it correctly. Only minor gap is the unstated string format for x.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden and mostly does: it constrains x to ≥ 0, rate to a positive decimal string, and warns against supplying the mean. It falls just short of specifying that x is also a decimal string (only rate is called out as a string).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compute) and resource (exponential distribution CDF) plus the exact formula P(X ≤ x) = 1 - e^(-λx). This unambiguously separates it from exponential_pdf and exponential_ppf siblings, which share the resource but differ in the operation.

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 input-domain constraints (x ≥ 0, rate > 0) and a useful warning not to pass the mean 1/λ as rate, but never names when to use this vs exponential_pdf/exponential_ppf. Usage is implied by the formula rather than stated with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.exponential_pdfA
Read-onlyIdempotent

지수분포의 확률밀도 f(x; λ) = λe^(-λx)를 구한다. x 는 0 이상, rate(λ)는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. rate 에 평균(1/λ)을 넣으면 틀린다.

NameRequiredDescriptionDefault
xYes
rateYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and closed-world scope, so safety is covered. The description adds genuinely useful behavior beyond that: computation via scipy float64 and a return value rounded to 10 significant digits, plus the warning that supplying the mean as rate yields a wrong result.

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?

Three tightly packed sentences: formula first, then input constraints, then the misuse warning. No filler, and the most identifying information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter math function with an output schema and full annotation coverage, this is complete: domain constraints, input semantics, numeric precision, and the main pitfall are all addressed. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry both parameters and mostly does: it defines x as a non-negative value and rate as a positive decimal string representing λ (explicitly not the mean). The one small gap is that it does not restate that x is itself a decimal string, though the schema type conveys that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('지수분포의 확률밀도', exponential PDF) and supplies the exact formula f(x; λ)=λe^(-λx), which unambiguously separates it from siblings like exponential_cdf and exponential_ppf. An agent can identify the correct tool without opening the schema.

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?

It clearly states the domain constraint (x must be ≥ 0) and the critical input rule that rate must be λ, not the mean 1/λ, which prevents the most likely misuse. It does not explicitly route to exponential_cdf/exponential_ppf for cumulative or inverse cases, so sibling disambiguation is left partly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.exponential_ppfA
Read-onlyIdempotent

지수분포의 분위수 x = -ln(1-q)/λ 를 구한다. q 는 0 초과 1 미만, rate(λ)는 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. rate 에 평균(1/λ)을 넣으면 틀린다.

NameRequiredDescriptionDefault
qYes
rateYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/closed-world safety, so the description's added value is real: it discloses the scipy float64 computation and that results are returned as a string rounded to 10 significant digits. That output-shape detail is behavior beyond what the annotations declare, though it stops short of error behavior for invalid inputs.

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?

Three sentences, front-loaded with the formula, then input constraints, then the mean-vs-rate pitfall. Every sentence contributes a distinct fact with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter scalar math tool this is complete: formula, parameter domains/formats, the mean-rate trap, and return format are all stated, and the output schema covers the return type. An agent can call it correctly from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (parameters are bare 'Q' and 'Rate'), so the description carries the full burden and does: q must be strictly between 0 and 1, rate(λ) must be a positive decimal string, and it explicitly warns not to substitute the mean 1/λ. Both parameters get format and semantic meaning the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation (exponential-distribution quantile) and immediately gives the closed form x = -ln(1-q)/λ, which unambiguously separates it from sibling CDF/PDF tools like probability.exponential_cdf and probability.exponential_pdf. No schema-open needed to know what it computes.

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?

Usage is implied by the formula and the domain constraints (0<q<1, λ>0), and the warning that passing the mean 1/λ as rate is wrong is a useful guardrail against a common error. However, it never names when to pick this over siblings or states preconditions beyond parameter validity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.factorialA
Read-onlyIdempotent

n!을 정확한 정수 문자열로 반환한다. n 은 0 이상 정수이며 상한은 20000(환경변수 SOOTOOL_LIMIT_COMBINATORICS_N 으로 조정), 1000 미만은 math.factorial, 이상은 mpmath 로 계산하며 반올림은 없다. 결과 자릿수가 매우 커서 float 로 변환하면 정밀도를 잃는다.

NameRequiredDescriptionDefault
nYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely non-obvious behavior: the 20000 cap, the SOOTOOL_LIMIT_COMBINATORICS_N override, the math.factorial vs mpmath algorithm switch at n=1000, and the warning that float conversion loses precision. That is substantive context beyond the structured fields.

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 tight sentences, front-loaded with the return type, then validity domain, then implementation details, then the precision caveat. Every sentence carries information; the implementation-detail sentence is slightly more than an agent strictly needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still notes the result is an exact integer string, and it covers bounds, limits, and precision hazards. For a single-parameter math tool with annotations and an output schema, nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 burden and mostly does: n is constrained to a non-negative integer with a 20000 upper bound and an environment-tunable limit. It stops short of stating what happens to negative or over-limit inputs (error vs clamp), which is the remaining gap.

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 ('returns n! as an exact integer string') and is immediately identifiable as the exact-factorial tool. It does not explicitly contrast itself with the combinatorial siblings probability.nCr / probability.nPr, which is the only real differentiation gap.

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?

Usage is implied rather than stated: the domain (0 <= n <= 20000) is spelled out, so an agent knows when the call is valid, but there is no guidance about when to prefer this over nCr/nPr or a float-based computation, and no exclusion language.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.f_cdfA
Read-onlyIdempotent

F 분포의 누적확률 P(X ≤ x)를 구한다. x 는 0 이상, dfn 은 분자 자유도, dfd 는 분모 자유도(둘 다 양수 십진 문자열)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 검정의 p 값은 1 에서 이 값을 뺀 오른쪽 꼬리다.

NameRequiredDescriptionDefault
xYes
dfdYes
dfnYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false). The description adds real behavioral context beyond that: the computation is done via scipy float64 and the result is rounded to 10 significant digits and returned as a string. It does not discuss error behavior for out-of-domain 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 no filler: the purpose and formula come first, then the input/return contract, then the p-value relation. Slightly better placement of the parameter constraints alongside the purpose would make it ideal.

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 an output schema present, the description need not explain return structure, yet it still discloses the precision contract, which is useful. The main remaining gap is domain-error behavior for invalid x or non-positive degrees of freedom, which is only implicitly covered by the stated constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden, and it does: x is constrained to ≥ 0, dfn is the numerator degrees of freedom, dfd the denominator, both positive decimal strings. Only the string formatting convention (e.g. plain decimal vs scientific notation) remains unstated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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 with the exact quantity computed: the cumulative probability P(X ≤ x) of the F distribution. This formula makes it distinguishable from siblings like probability.f_pdf and probability.f_ppf without opening any schema.

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 notes that a test's p-value is the right tail, 1 minus this value, which hints at how the tool fits into hypothesis testing. However, it never names f_ppf or f_pdf as alternatives, and it gives no explicit when-to-use or when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.f_pdfA
Read-onlyIdempotent

F 분포의 확률밀도를 구한다. x 는 0 이상, dfn 은 분자 자유도, dfd 는 분모 자유도(둘 다 양수 십진 문자열)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. dfn 과 dfd 를 바꾸면 결과가 달라진다.

NameRequiredDescriptionDefault
xYes
dfdYes
dfnYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), so the bar is lower. The description adds real context beyond them: scipy float64 computation, rounding to 10 significant digits, string return, and the dfn/dfd non-commutativity warning, all of which shape correct interpretation.

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?

Two dense sentences, front-loaded with purpose then parameters then the return/rounding detail. No filler, though the parameter listing could be scannable.

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 an output schema present, return values needn't be explained, yet the description still notes the rounded-string return. Combined with parameter meanings and the dfn/dfd caveat, an agent has what it needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (bare titles), so the description must compensate, and it does: x must be ≥0, dfn/dfd are positive decimal strings meaning numerator/denominator df, and their order matters. It doesn't specify string format edge cases, so not a 5.

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 (compute probability density) and resource (F distribution), which cleanly distinguishes it from siblings like f_cdf and f_ppf. It doesn't explicitly name those alternatives, but the function is unambiguous.

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?

Usage is implied by 'probability density,' but the description never states when to use this density function versus the cumulative (f_cdf) or quantile (f_ppf) siblings. The swap-dfn/dfd note is a behavioral caveat, not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.f_ppfA
Read-onlyIdempotent

F 분포의 분위수를 구한다. q 는 0 초과 1 미만, dfn 은 분자 자유도, dfd 는 분모 자유도(둘 다 양수 십진 문자열)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 유의수준 α 의 임계값은 q 에 1-α 를 넣는다.

NameRequiredDescriptionDefault
qYes
dfdYes
dfnYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds value beyond them: computation via scipy float64 and a result rounded to 10 significant digits returned as a string. It also states the input domain (0<q<1, positive df), though it doesn't say what happens on out-of-domain input.

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?

Three sentences, no filler: purpose first, then parameter/return semantics, then the practical usage tip. Given the zero schema coverage, none of it is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description still pins down the return form (10-significant-digit string) and the numeric engine, plus full parameter semantics and a usage hint. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — properties carry only bare titles ('Q', 'Dfn', 'Dfd'). The description fully compensates: q is the probability in (0,1), dfn the numerator df, dfd the denominator df, and all are positive decimal strings. Every parameter gets meaning the schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'F 분포의 분위수를 구한다' (computes the quantile of the F distribution). Quantile/percent-point is unambiguously distinct from the f_cdf and f_pdf siblings, so an agent can route correctly without opening schemas.

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 a concrete usage rule: for the critical value at significance level α, pass 1-α as q. That is a real when-to-use cue. It stops short of naming an alternative (e.g. use f_cdf for the cumulative probability) or stating when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.gamma_cdfA
Read-onlyIdempotent

감마분포의 누적확률 P(X ≤ x)를 구한다. x 는 0 이상, shape(k)는 양수, scale(θ, 기본 1)은 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. scale 은 rate 의 역수이므로 rate 를 그대로 넣으면 틀린다.

NameRequiredDescriptionDefault
xYes
scaleNo1
shapeYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: computation is done in scipy float64 and the result is returned as a string rounded to 10 significant digits, plus the scale-vs-rate inversion trap. It stops short of stating error behavior for out-of-range input.

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?

Three dense sentences: definition first, then parameter constraints, then numerical precision and the rate/scale pitfall last. No filler, and the most decision-relevant pitfall is not buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pure statistical function with an existing output schema, the description covers the operation, all parameter domains, the numeric backend and precision, and the single most likely caller error. Nothing further is needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the full load, and it does: x is constrained to ≥ 0, shape(k) must be positive, scale(θ) defaults to 1 and must be a positive decimal string, and its meaning (reciprocal of rate) is spelled out. Every one of the three parameters gets semantics the schema alone does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('감마분포의 누적확률 P(X ≤ x)를 구한다'), naming the exact statistical quantity computed. That makes it trivially distinguishable from the sibling gamma_pdf (density) and gamma_ppf (inverse) without opening any schema.

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?

The description gives domain constraints (x ≥ 0, shape positive, scale positive) and a genuinely useful usage warning that scale is the reciprocal of rate, so rate must not be passed directly. However, it never says when to choose this over gamma_pdf/gamma_ppf, so routing between the three gamma tools is left to inference from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.gamma_pdfA
Read-onlyIdempotent

감마분포의 확률밀도 f(x; k, θ)를 구한다. x 는 0 이상, shape(k)는 양수, scale(θ, 기본 1)은 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. scale 은 rate 의 역수이므로 rate 를 그대로 넣으면 틀린다.

NameRequiredDescriptionDefault
xYes
scaleNo1
shapeYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent, and the description adds meaningful context: scipy float64 computation with rounding to 10 significant figures and a string return type. That discloses the numerical behavior and output precision an agent needs.

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?

Three tight sentences: purpose and formula first, then parameter constraints, then the rate/scale pitfall. No wasted text and front-loaded with the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists, the description explains the precision/rounding and return type, and fully documents all three otherwise-undocumented parameters. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does so well: x ≥ 0, shape positive, scale is a positive decimal string defaulting to 1, plus the crucial rate-vs-scale warning that the schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (구한다), the exact resource (감마분포 확률밀도) and gives the formula f(x; k, θ). The '확률밀도' term clearly separates it from gamma_cdf and gamma_ppf siblings.

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 a critical exclusion — scale is the reciprocal of rate, so passing rate directly is wrong — which is exactly the kind of guidance that prevents misuse. It does not, however, explicitly name gamma_cdf/gamma_ppf as the alternatives when a cumulative or quantile value is wanted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.gamma_ppfA
Read-onlyIdempotent

감마분포의 분위수를 구한다. q 는 0 초과 1 미만, shape(k)는 양수, scale(θ, 기본 1)은 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. scale 은 rate 의 역수이므로 rate 를 그대로 넣으면 틀린다.

NameRequiredDescriptionDefault
qYes
scaleNo1
shapeYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a safe, idempotent, closed-world read, so the description is not burdened with safety disclosure. It goes beyond them by stating the computation is done in scipy float64 and that the result string is rounded to 10 significant digits, and it flags that scale is the reciprocal of rate — a concrete behavioral/error-prevention detail the annotations cannot convey.

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 sentences, each doing work: purpose first, then parameter constraints plus return format, then the scale/rate misuse warning. Nothing is repeated from structured fields and there is no filler, though the second sentence is densely packed.

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?

An output schema exists, so return values need not be explained, yet the description still tells the agent the result is a rounded string. Domain constraints, the default value, and the primary failure mode (rate vs scale) are all covered; only error behavior for out-of-range q or malformed decimals is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — properties carry only titles and everything is typed as a plain string — so the description must carry the semantics, and it does: q must be strictly between 0 and 1, shape must be positive, scale is a positive decimal string defaulting to 1. It also warns that passing rate instead of scale yields a wrong answer, which is exactly the kind of meaning the schema lacks; only the exact string syntax remains unspecified.

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 a specific operation on a specific distribution: computing the quantile (분위수) of the gamma distribution, which unambiguously implies the inverse-CDF direction. It does not explicitly route the agent away from gamma_cdf/gamma_pdf, but the verb+resource combination is precise enough to select the tool without opening the schema.

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?

Use is implied by the operation itself, but there is no explicit statement of when to prefer gamma_ppf over siblings such as gamma_cdf or the other *_ppf tools, and no prerequisites are described. The scale-vs-rate warning is a parameter correction rather than usage routing, so guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.lognormal_cdfA
Read-onlyIdempotent

로그정규분포의 누적확률 P(X ≤ x) = Φ((ln x - μ)/σ)를 구한다. x 는 양수, mu 와 sigma 는 ln X 의 평균과 표준편차(sigma 는 양수, 기본 0 과 1)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. mu 와 sigma 에 X 자체의 통계량을 넣으면 틀린다.

NameRequiredDescriptionDefault
xYes
muNo0
sigmaNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, deterministic, closed-world behavior, and the description adds real value on top: the computation is done in scipy float64 and the result is rounded to 10 significant digits and returned as a string. It does not say what happens on invalid input (x ≤ 0, sigma ≤ 0), which is the main remaining behavioral gap.

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: purpose + formula first, then argument constraints and return format, then the common misuse warning. No filler, though the misuse warning and the parameter constraints could be merged.

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?

An output schema exists, and the description still usefully notes the string/10-significant-digit return convention. Combined with the formula and parameter constraints this is sufficient to call the tool correctly; only edge-case/error behavior is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (parameters carry only titles and defaults), so the description must carry the load — and it does, defining x as positive and mu/sigma as the mean and SD of ln X with stated defaults 0 and 1. The one unstated case is the failure behavior for out-of-range x or sigma.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (cumulative probability of the lognormal distribution) and gives the exact formula P(X ≤ x) = Φ((ln x - μ)/σ), which unambiguously separates it from lognormal_pdf and lognormal_ppf in the sibling set.

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 clear domain preconditions (x must be positive; sigma must be positive) and a strong usage warning that mu/sigma are the log-scale mean and SD, not the raw X statistics. It does not explicitly name PDF/PPF as alternatives, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.lognormal_pdfA
Read-onlyIdempotent

로그정규분포의 확률밀도를 구한다. x 는 양수, mu 와 sigma 는 ln X 의 평균과 표준편차(sigma 는 양수, 기본 0 과 1)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. mu 와 sigma 는 X 자체의 평균과 표준편차가 아니다.

NameRequiredDescriptionDefault
xYes
muNo0
sigmaNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), so the description earns credit for adding implementation and output traits: scipy float64 computation, rounding to 10 significant digits, and string return type. It also flags the domain constraint that x must be positive.

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?

Two dense sentences with the core action first, then parameter meaning, then output format. Every clause adds information; nothing is redundant with the schema or annotations.

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?

Covers parameters, domain constraints, computational method, and return representation, which is more than enough for a single-point density evaluation. Minor gap: no stated behavior for invalid input (x <= 0 or sigma <= 0), though the positivity requirement is declared.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 and does: it defines x as positive, mu/sigma as the mean and SD of ln X (not of X), sigma positive with defaults 0 and 1. The explicit warning about mu/sigma not being X's moments is exactly the kind of meaning the flat schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource: probability density of the lognormal distribution, with the domain constraint (x positive). An agent can immediately distinguish it from lognormal_cdf/lognormal_ppf siblings by the density-vs-distribution wording.

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?

Usage is implied by the statistical name (density evaluation at a point), but the description never states when to use this vs lognormal_cdf/lognormal_ppf nor any prerequisites. Adequate but leaves selection to inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.lognormal_ppfA
Read-onlyIdempotent

로그정규분포의 분위수 exp(μ + σΦ⁻¹(q))를 구한다. q 는 0 초과 1 미만, mu 와 sigma 는 ln X 의 평균과 표준편차(sigma 는 양수, 기본 0 과 1)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. mu 와 sigma 에 X 자체의 통계량을 넣으면 틀린다.

NameRequiredDescriptionDefault
qYes
muNo0
sigmaNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/closed-world, and the description goes beyond them by disclosing the computation backend (scipy float64) and the output form (a string rounded to 10 significant digits). It says nothing about error behavior when q falls outside (0,1), which leaves one useful behavioral detail unstated.

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?

Three sentences, front-loaded with the definition and formula, then constraints, then the return format and a final caveat. No sentence is redundant.

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 three-parameter pure-computation tool with a documented output schema, the description covers the definition, the domain constraints, the parameter meaning, and the return format. Only the out-of-range failure mode is unaddressed, which is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — the schema offers only titles 'Q', 'Mu', 'Sigma' — so the description must carry all meaning, and it does: q ∈ (0,1), mu and sigma as the mean and standard deviation of ln X, sigma > 0, defaults 0 and 1. The explicit warning against passing X's statistics is a genuine semantic clarification the schema cannot provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific operation (quantile of the lognormal distribution) along with the exact formula exp(μ + σΦ⁻¹(q)), which pins the semantics precisely. The formula also distinguishes it from siblings like normal_ppf and lognormal_cdf without needing to name them.

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?

It supplies concrete applicability constraints — q must be strictly between 0 and 1, sigma must be positive — and calls out the common misuse of putting X's own statistics into mu/sigma instead of those of ln X. It never explicitly routes the agent to a sibling (e.g., normal_ppf for a normal quantile), so a small gap remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.nCrA
Read-onlyIdempotent

이항계수 C(n, r) = n!/(r!(n-r)!)을 정확한 정수 문자열로 반환한다. n, r 은 0 이상 정수(r ≤ n, n 상한 20000)이며 반올림은 없다. 순서를 구분하는 선택에 쓰면 r! 배 작게 나오므로 그 경우는 nPr 을 쓴다.

NameRequiredDescriptionDefault
nYes
rYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered; the description adds real domain behavior: exact integer output with no rounding, and a hard n ≤ 20000 ceiling that an agent must respect to avoid failure. It stops short of saying what error behavior looks like when n > 20000, which keeps it off a 5.

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?

Three tight sentences: definition and return format first, then validity constraints, then the sibling disambiguation. Nothing is redundant with the schema or annotations, and every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description covers the remaining gaps: exactness, input validity domain, size ceiling, and the alternative tool for ordered selections. An agent has everything needed to call this correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (bare 'N'/'R' integers), so the description carries the full burden and does: it states both are non-negative integers, that r ≤ n, and that n is capped at 20000 — constraints absent from the schema. It could go further by naming failure behavior on invalid input, so 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('이항계수 C(n, r) = n!/(r!(n-r)!)을 ... 반환한다') and pins down the exact mathematical object via the formula, leaving no ambiguity. It also names the confusable sibling (nPr) and explains the relationship, so an agent can distinguish it from probability.nPr without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: if the selection is ordered, the result here is r! times too small and the agent should use nPr instead. That is a named alternative plus the precise condition that selects it, matching the highest calibration band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.normal_cdfA
Read-onlyIdempotent

정규분포의 누적확률 P(X ≤ x)를 구한다. x, mu(평균, 기본 0), sigma(표준편차, 양수, 기본 1)는 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. sigma 에 분산을 넣으면 틀리므로 표준편차를 넣는다.

NameRequiredDescriptionDefault
xYes
muNo0
sigmaNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/closed-world, and the description adds real value beyond them: computation is float64 via scipy, the result is rounded to 10 significant digits, and the return is a decimal string. It does not mention numerical edge cases (e.g. extreme sigma or x), which keeps it from a 5.

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 tight sentences, front-loaded with the definition, followed by parameter encoding/return format and a practical pitfall warning. Every sentence contributes, with only minor overlap between the sigma description and the variance warning.

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 an output schema present and annotations covering the safety profile, the description covers what an agent needs: semantics, input encoding, defaults, and rounding behavior. Nothing critical is missing for a single-purpose statistical function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: x and mu are documented as decimal strings with mu defaulting to 0, sigma is constrained to positive standard deviation with default 1, plus an explicit warning not to pass variance. It adds meaningful semantics the bare schema lacks, though x's role as the evaluation point is only implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a precise verb and resource with the explicit mathematical definition P(X ≤ x), which unambiguously separates it from siblings like normal_pdf (density) and normal_ppf (inverse CDF). An agent can select it without opening any schema.

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?

There is no explicit when-to-use/when-not guidance or routing to normal_pdf/normal_ppf alternatives; usage is only implied by the embedded formula. The one genuine guideline present is the sigma-vs-variance warning, which is a parameter caveat rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.normal_pdfA
Read-onlyIdempotent

정규분포의 확률밀도 f(x; μ, σ)를 구한다. x, mu(평균, 기본 0), sigma(표준편차, 양수, 기본 1)는 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 밀도값이지 확률이 아니므로 구간 확률은 normal_cdf 의 차로 구한다.

NameRequiredDescriptionDefault
xYes
muNo0
sigmaNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), and the description adds real value on top: string-in/string-out contract, scipy float64 computation, 10-significant-digit rounding of the result, and the density-vs-probability caveat. It does not discuss edge cases (sigma=0 rejection, extreme-tail underflow), which keeps it short of a 5.

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?

Three tight sentences, front-loaded with what is computed, then the I/O contract, then the disambiguation from normal_cdf. No filler; every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only three simple scalar params and an output schema present, the description covers computation semantics, input encoding, constraint on sigma, output rounding, and sibling routing. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: it names all three params, states they are decimal strings, gives mu's meaning and default 0, and criticality notes sigma must be positive with default 1. Minor gap: no hint about accepted formats/precision for x beyond 'decimal string'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('정규분포의 확률밀도 f(x; μ, σ)를 구한다') and immediately distinguishes itself from the sibling normal_cdf by noting it returns a density, not a probability. An agent can tell it apart from normal_cdf/normal_ppf without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: interval probability should be computed as the difference of normal_cdf, i.e. a when-not-this-tool condition plus a named alternative. That is exactly the guidance needed to choose among normal_pdf/normal_cdf/normal_ppf.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.normal_ppfA
Read-onlyIdempotent

정규분포의 분위수 x = μ + σΦ⁻¹(q)를 구한다. q 는 0 초과 1 미만 확률, mu(기본 0), sigma(표준편차, 양수, 기본 1)이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. q 가 0 또는 1 이면 오류이고, 양측 임계값은 q 에 1-α/2 를 넣는다.

NameRequiredDescriptionDefault
qYes
muNo0
sigmaNo1

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), and the description adds real context beyond them: scipy float64 computation, a return value rounded to 10 significant digits as a string, and a documented error case for boundary q. It stops short of describing precision caveats or failure behavior beyond the q boundary.

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?

Three sentences: formula first, then parameter constraints and return format, then edge cases and the critical-value tip. Every sentence carries information an agent needs, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter scalar function with an output schema available, this is complete: domain constraints, defaults, error condition, return type and rounding, and the practical α/2 idiom are all present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: q is a probability in the open interval (0,1), mu defaults to 0, sigma is a positive standard deviation defaulting to 1. It does not explain why all three are typed as strings (presumably decimal-precision inputs), which is the one remaining ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific operation and gives the exact formula (x = μ + σΦ⁻¹(q)), which unambiguously distinguishes it from sibling probability.normal_cdf and probability.normal_pdf. An agent can tell what it computes without opening the schema.

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?

It states the valid domain (q strictly between 0 and 1) and the error condition (q = 0 or 1), plus a concrete usage tip: for two-sided critical values pass 1-α/2 as q. It does not explicitly route between this and the CDF/PDF siblings, but the guidance is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.nPrA
Read-onlyIdempotent

순열 P(n, r) = n!/(n-r)!을 정확한 정수 문자열로 반환한다. n, r 은 0 이상 정수(r ≤ n, n 상한 20000)이며 반올림은 없다. 순서를 구분하지 않는 선택에 쓰면 r! 배 크게 나오므로 그 경우는 nCr 을 쓴다.

NameRequiredDescriptionDefault
nYes
rYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the readOnly/idempotent annotations by disclosing that the output is an exact integer string with no rounding — the key behavioral fact that prevents a float-overflow assumption. It omits what happens when the constraints are violated (error shape), which keeps it short of a 5.

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?

Three short sentences, each earning its place: definition, domain/return format, then sibling routing. The core identification is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pure two-parameter math function with an output schema, the description supplies everything an agent needs: the formula, the exact-string return format, the numeric domain and bound, and the alternative tool for unordered selection. No essential calling information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% — the schema only repeats 'N' and 'R' as titles — so the description carries the full parameter burden and does so: both are non-negative integers, with r ≤ n and n ≤ 20000. It does not say whether out-of-range inputs error or clamp, leaving one gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('returns permutation P(n,r)') and gives the exact formula n!/(n-r)!, so there is no ambiguity about the computation. It also contrasts the result with nCr, separating it from its nearest sibling without requiring the schema to be opened.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative and the condition that selects it: if order does not matter the result is r! times too large, so use nCr instead. Domain preconditions (r ≤ n, n ≤ 20000) are stated, giving an agent the guardrails needed before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.poisson_cdfA
Read-onlyIdempotent

포아송분포의 누적확률 P(X ≤ k; λ)를 구한다. k 는 0 이상 정수, lam(λ)은 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. 'k 회 이상'은 1 - cdf(k-1)로 구해야 하며 cdf(k)는 'k 회 이하'다.

NameRequiredDescriptionDefault
kYes
lamYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description adds meaningful behavioral detail: input domains, scipy float64 computation, and a return string rounded to 10 significant digits. It does not describe error behavior for invalid inputs, but the key safety and result-format traits are covered.

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?

The description is compact and front-loaded, with the operation first and then the input/output and tail-probability caveat. Every sentence adds useful information with no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter probability calculator, the description covers the purpose, parameter domains, result precision, and the main tail-computation gotcha. An output schema exists, so it does not need to enumerate return structure further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It does so for both parameters: k must be a nonnegative integer and lam must be a positive decimal string, which is essential because the schema alone only says integer and string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation and resource: the Poisson cumulative probability P(X ≤ k; λ). It also clarifies the direction of the CDF ('cdf(k) is k or less'), which distinguishes it from the exact-probability pmf sibling.

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?

It gives clear usage context for cumulative probabilities, including the important tail rule that 'k or more' must be computed as 1 - cdf(k-1). It does not explicitly name poisson_pmf or other alternatives, so sibling selection is only inferable from the CDF wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probability.poisson_pmfA
Read-onlyIdempotent

포아송분포의 확률질량 P(X=k; λ)를 구한다. k 는 0 이상 정수, lam(λ)은 양수 십진 문자열이며 scipy float64 계산 후 유효숫자 10자리로 반올림한 문자열을 반환한다. lam 은 관측 구간 길이에 맞춘 평균 발생 횟수여야 하며 단위 시간당 비율을 그대로 넣으면 틀린다.

NameRequiredDescriptionDefault
kYes
lamYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so safety is covered. The description adds meaningful behavioral detail: computation via scipy float64 and a return value rounded to 10 significant figures as a string, which the agent would otherwise not know.

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 sentences, front-loaded with the formula, then numeric-precision behavior, then the parameter caveat. Efficient and every sentence carries information.

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?

An output schema exists so return structure needn't be re-explained, yet the description still flags the rounded string return. Both parameters and the key computation semantics are covered; little is missing for a two-parameter math tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden. It specifies k is a non-negative integer, lam is a positive decimal string, and gives the important semantic constraint that lam must match the observation interval length — compensating well for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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: compute the Poisson probability mass P(X=k; λ). It is clearly distinguishable from poisson_cdf (cumulative) and other probability siblings by naming the exact function computed.

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 provides a valuable usage caveat that lam must be the interval-matched mean, not a per-unit-time rate. However, it never explicitly routes between this and siblings like poisson_cdf, so when-to-use versus alternatives is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_acquisition_taxA
Read-onlyIdempotent

한국 주택 유상취득 취득세와 농어촌특별세·지방교육세를 계산한다. 표준세율은 6억 이하 1%, 6억 초과 9억 이하 산식 세율, 9억 초과 3%이고, 조정 2주택·비조정 3주택 8%, 조정 3주택 이상·비조정 4주택 이상·법인 12% 중과세율이 표준세율을 대체한다. 금액은 원 단위 문자열, 세목별 원 미만 절사. 농어촌특별세는 전용 85㎡ 초과만 과세. 오용 예: house_count 에 취득 전 주택 수 입력.

NameRequiredDescriptionDefault
yearYes
as_ofNo
priceYes
area_m2Yes
house_countYes
is_corporateNo
is_regulatedYes
include_proposedNo
is_heavy_excludedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
base_taxYes
total_taxYes
surchargesYes
applied_rateYes
heavy_appliedYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
standard_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
acquisition_taxYes
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/closed-world, but the description adds real behavioral detail: rates are selected by price bracket, house count and regulation status, and the heavy rate replaces the standard rate rather than stacking. It also discloses rounding (원 미만 절사) and the 85㎡ exclusive-area threshold gating 농어촌특별세.

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?

Front-loaded purpose sentence, then the rate rules, then output formatting, then the caveat — dense but no filler. The single misuse sentence earns its place by preventing a common off-by-one input error.

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?

An output schema exists, so return values need not be described, and the core rate logic is well covered. Gaps remain for a 9-parameter tool: the meaning of year/as_of (which law version applies), include_proposed, and is_heavy_excluded are undocumented anywhere.

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 must carry parameter meaning; it does supply semantics for house_count (pre-acquisition count, with an explicit misuse warning), is_corporate, is_regulated (via 조정/비조정 and 중과), price/amount units, and area_m2. However as_of, year, include_proposed, and is_heavy_excluded are left completely unexplained.

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 set — computes 취득세 plus 농어촌특별세 and 지방교육세 for paid housing acquisition in Korea. The resource ('acquisition tax') is distinguishable from the property-tax and transfer-tax siblings in substance, but no sibling is ever named explicitly for routing.

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?

There is no explicit when-to-use/when-not, and no pointer to sibling tools such as realestate.kr_property_tax or realestate.kr_transfer_tax. Usage is only implied by domain scope, plus one misuse caution about house_count semantics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_comprehensiveA
Read-onlyIdempotent

주택분 종합부동산세와 농어촌특별세(종부세의 20%)를 계산한다. 공시가격 합계(원)에서 기본공제 후 공정시장가액비율을 곱한 과세표준에 2주택 이하·3주택 이상 누진세율 또는 법인 단일세율을 적용하고, 재산세 상당액 공제, 1세대 1주택 연령·보유 세액공제, 세부담상한(직전 연도 총세액 입력 시)을 반영한다. policy_status 로 확정 전 개정안 여부를 확인. 오용 예: 토지분에 사용.

NameRequiredDescriptionDefault
ageNo
yearYes
as_ofNo
house_countYes
is_corporateNo
holding_yearsNo
residence_yearsNo
include_proposedNo
property_tax_leviedNo
prior_year_total_taxNo
resident_house_priceNo
total_published_priceYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
base_taxYes
breakdownYes
deductionYes
rural_taxYes
total_taxYes
rate_tableNo
taxable_baseYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
published_priceYes
one_house_creditYes
policy_citationsYes정책의 근거 조문
comprehensive_taxYes
policy_effective_toYes
property_tax_creditYes
property_tax_leviedNo
burden_cap_reductionYes
policy_effective_dateYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, and the description adds meaningful computation context (basic deduction, fair-market ratio, progressive vs corporate rate, property-tax credit, age/holding credits, prior-year cap). However it omits rounding behavior, that policy_status is an output rather than an input, and says nothing about the result shape.

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, front-loaded with purpose then method then caveat, with no filler. Dense but every clause carries information; only the 'policy_status' sentence is slightly ambiguous about whether it is an input or output.

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 12-parameter tax calculator with an output schema present, the description supplies the domain logic and the key parameter mappings an agent needs to invoke it correctly. Remaining gaps are minor parameter definitions rather than missing behavioral facts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description compensates well: 공시가격 합계 maps to total_published_price, 법인 단일세율 to is_corporate, 연령·보유 to age/holding_years/residence_years, 직전 연도 총세액 to prior_year_total_tax, 확정 전 개정안 to include_proposed. Still silent on year, as_of, property_tax_levied, and resident_house_price.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (계산한다) and resource (주택분 종합부동산세 + 농어촌특별세), including the mechanical summary of how the tax base and rates are applied. It also distinguishes itself from the sibling realestate.kr_property_tax and tax.kr_rural_special_tax by naming the housing-only scope.

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 explicit exclusions ('오용 예: 토지분에 사용') and premises ('2주택 이하·3주택 이상', '법인 단일세율') that indicate when the tool applies. It lacks a pointer to which sibling handles the land portion, so the alternative is implied rather than named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_dsrA
Read-onlyIdempotent

DSR(총부채원리금상환비율 = 연간 원리금 상환액 / 연간 소득, 원 단위 문자열)을 계산하고 한도 이내인지 판정한다. 소수 4자리 HALF_EVEN 반올림, 한도는 은행권 40%, 2금융권(is_nonbank) 50%. mortgage_region 을 주면 스트레스 금리 하한을 반환하지만 상환액에 가산해 주지는 않는다. 오용 예: 월 상환액과 연 소득을 섞어 입력.

NameRequiredDescriptionDefault
yearYes
as_ofNo
is_nonbankNo
annual_incomeYes
mortgage_regionNo
include_proposedNo
annual_debt_paymentYes

Output Schema

NameRequiredDescription
capYes
dsrYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
within_capYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
stress_rate_floorYes
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description usefully adds non-obvious behavior: HALF_EVEN 4-decimal rounding, the 40%/50% limit split, and the important caveat that mortgage_region returns a stress-rate floor without adding it to the payment. It is silent on how year/as_of/include_proposed change behavior, which is the remaining transparency gap.

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?

Dense and front-loaded: formula first, then rounding and limits, then the stress-rate caveat, then the misuse case. Every clause adds operational information with no padding.

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?

An output schema exists, so return-value description is unnecessary, and the core computation is well covered. But for a 7-parameter tool with 0% schema coverage, the description leaves year, as_of (likely versioned limit rules) and include_proposed unexplained, which an agent needs to invoke it correctly.

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 0%, so the description carries the full burden; it explains is_nonbank (2금융권 50% limit) and partially mortgage_region, and clarifies annual vs monthly units via the misuse example. Three parameters (year, as_of, include_proposed) get no explanation at all, so the compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (calculate) and resource (DSR) and even spells out the ratio definition (annual principal+interest / annual income) plus the verdict it produces. An agent can distinguish this from realestate.kr_dti or realestate.kr_ltv by the formula and the 40/50% limit rule alone.

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 clear usage context (limit check, bank vs nonbank thresholds) and an explicit misuse warning about mixing monthly payment with annual income. It does not, however, route the agent between this and the sibling DTI/LTV calculators, so the when-not guidance is implicit rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_dtiA
Read-onlyIdempotent

DTI(총부채상환비율 = 월 원리금 상환액 / 월 소득, 원 단위 문자열)를 계산하고 한도 이내인지 판정한다. 소수 4자리 HALF_EVEN 반올림, 규제지역 40%, 규제지역 외 수도권(아파트 담보) 60%, 수도권 외 비규제지역은 한도 없음(cap 이 null, within_cap 은 true). 오용 예: 연간 금액을 월 금액 자리에 입력.

NameRequiredDescriptionDefault
yearYes
as_ofNo
is_regulatedYes
monthly_incomeYes
is_capital_areaNo
include_proposedNo
monthly_debt_paymentYes

Output Schema

NameRequiredDescription
capYes
dtiYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
within_capYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent, but the description adds real behavioral detail: HALF_EVEN rounding to 4 decimals, that cap is null and within_cap true in the unlimited case, and the annual-vs-monthly input pitfall. It doesn't explain how year/as_of/include_proposed affect the computed cap, leaving some behavior opaque.

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 compact sentences, front-loaded with the formula then the cap rules then the misuse caveat; every clause carries information. Slight density from the Korean parenthetical abbreviations, but nothing is wasted.

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?

An output schema exists so return values need not be spelled out, and the description does explain the cap/within_cap pair. However, for a 7-parameter tool with 0% schema coverage, the roles of year, as_of, and include_proposed are left to guesswork, which is a real completeness gap.

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 burden. It clarifies the units and meaning of monthly_debt_payment and monthly_income (원 단위 문자열) and implicitly covers is_regulated/is_capital_area via the cap rules, but year, as_of, and include_proposed are never explained, leaving 3 of 7 parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the exact formula (월 원리금 상환액 / 월 소득) and that it returns a pass/fail against a cap. The formula itself differentiates it from DSR and LTV siblings even without naming them.

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 the regulatory cap rules that determine outcomes (40% regulated, 60% capital-area apartment, unlimited outside) and an explicit misuse warning about entering annual amounts in the monthly field. It does not explicitly say when to prefer kr_dsr or kr_ltv instead, so a sibling-selection statement is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_local_propertyA
Read-onlyIdempotent

광역자치단체(seoul, gyeonggi, busan, incheon, daegu, daejeon, gwangju, ulsan, sejong)별 주택 취득세 또는 재산세를 조례 가감 계수로 계산한다. mode 는 acquisition(취득가액) 또는 property(공시가격), 금액은 원 단위 문자열. 취득세와 부가분은 원 미만 절사, 재산세는 구간 세액 반올림 후 계수를 곱해 절사. 재산세 가감과 도시지역분은 자치구·시·군 조례 사항이라 광역 계수는 대표값이다. 오용 예: 구·군 단위 세율 확정에 사용.

NameRequiredDescriptionDefault
modeYes
yearYes
as_ofNo
priceYes
regionYes
area_m2No0
is_one_houseNo
include_urbanNo
include_proposedNo

Output Schema

NameRequiredDescription
modeYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
regionYes
base_taxYes
breakdownNo
total_taxYes
surchargesYes
coefficientYes
taxable_baseNo
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
fair_market_ratioNo
policy_effective_toYes
special_rate_appliedNo
policy_effective_dateYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds substantive computed behavior: truncation vs bracket-rounding rules for acquisition vs property tax, and the important caveat that metropolitan coefficients are representative values only for district-level ordinance matters. This is real behavioral context beyond annotations, though the treatment of the undocumented optional flags' effects is absent.

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?

Front-loads the purpose and scope, then layers rounding rules and caveats without much redundancy. Dense but every sentence adds either scope, computation semantics, or a caveat; minor verbosity in the region enumeration.

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?

An output schema exists so return-value explanation isn't required, and the caveats are strong. However, with 6 of 9 parameters undocumented at 0% schema coverage, the definition is not complete enough for an agent to confidently set is_one_house, include_urban, or include_proposed without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% with 9 parameters, so the description carries the burden but only clarifies three: mode values (acquisition/property), price format (원 단위 문자열), and region list. Highly consequential params like is_one_house, include_urban, is_one_house, area_m2, year, as_of, and include_proposed are left undocumented, a significant gap for tax computation.

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 (주택 취득세 또는 재산세), scoped to metropolitan municipalities with ordinance adjustment coefficients. An agent can tell it computes local-level acquisition/property tax, though it doesn't explicitly name the sibling kr_acquisition_tax or kr_property_tax to distinguish the local variant.

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?

Provides a clear misuse exclusion ('구·군 단위 세율 확정에 사용' is a misuse example) and explains mode selection between acquisition and property. It doesn't name the alternative tool to use when district-level precision is needed, leaving that routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_ltvA
Read-onlyIdempotent

LTV(대출액 / 주택가액, 원 단위 문자열, 소수 4자리 HALF_EVEN)를 계산하고 한도 이내 여부와 최대 대출액을 구한다. 한도 비율은 규제지역·수도권, 주택 수, 생애최초 여부로 정해지며 규제지역·수도권 다주택은 추가 구입 0%다. 수도권·규제지역은 시가 15억 이하 6억, 25억 이하 4억, 초과 2억 금액 한도도 적용. 오용 예: house_count 에 대출 전 주택 수 입력.

NameRequiredDescriptionDefault
yearYes
as_ofNo
house_countYes
loan_amountYes
is_regulatedYes
property_valueYes
is_capital_areaNo
include_proposedNo
is_first_time_buyerNo

Output Schema

NameRequiredDescription
ltvYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
cap_rateYes
max_loanYes
amount_capYes
within_capYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description goes further by disclosing the substantive regulatory behavior: limit ratios vary by district/house count/first-time status, multi-household in regulated or capital areas gets 0% for additional purchases, and hard amount caps of 600M/400M/200M KRW apply by market value band. These are genuine behavioral rules an agent cannot infer from any structured field.

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?

Front-loaded with the operation and output, then the ratio rules, then the amount caps, then the misuse note — logical and mostly waste-free. It is dense with Korean regulatory detail, but every clause carries substantive information; only the amount-cap sentence could be tightened.

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?

An output schema exists, so return values need not be explained, and the core regulatory logic is present. However, for a 9-parameter domain calculator the description leaves year (which regulation version) and include_proposed (whether proposed legislation counts) completely unexplained, and provides no routing against the DSR/DTI siblings — an agent could easily call it with the wrong vintage of rules.

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 0% across 9 parameters, so the description must carry parameter meaning and only partly does: it clarifies that loan_amount and property_value are KRW strings with 4-decimal HALF_EVEN rounding, and it maps house_count, is_regulated, is_capital_area and is_first_time_buyer to the ratio rules. It says nothing about year, as_of, or include_proposed, which are three of the nine inputs, leaving a real gap.

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 a specific computation (LTV = loan amount / property value) plus two concrete outputs: whether the loan is within the limit and the maximum allowed loan amount. That is clearly distinct from formula-flavored siblings such as realestate.kr_dsr or realestate.kr_dti, though it never explicitly contrasts itself with them, so it stops short of a 5.

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?

The description describes the domain rules under which the tool applies (regulated/capital area, house count, first-time buyer) but gives no explicit 'use this instead of X' guidance against the DSR/DTI siblings in the same namespace. It does include one concrete misuse warning (house_count must be the pre-loan household count), which is real usage guidance but limited to a single parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_property_taxA
Read-onlyIdempotent

한국 주택 재산세(지방세법 §110~§111의2)와 지방교육세·도시지역분을 계산한다. 공시가격(원)에 공정시장가액비율(일반 60%, 1세대 1주택은 시가표준액 구간별)을 곱해 과세표준을 구하고, 직전 연도 공시가격을 주면 과세표준상한을 적용한다. 누진세율, 9억 이하 1세대 1주택은 특례세율. 재산세는 원 미만 반올림, 부가분은 절사. 오용 예: 토지·건축물에 사용.

NameRequiredDescriptionDefault
yearYes
as_ofNo
is_one_houseNo
include_urbanNo
published_priceYes
include_proposedNo
prior_year_published_priceNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
total_taxYes
surchargesYes
property_taxYes
tax_base_capYes
taxable_baseYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
published_priceYes
policy_citationsYes정책의 근거 조문
fair_market_ratioYes
policy_effective_toYes
special_rate_appliedYes
policy_effective_dateYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish safety (readOnly, idempotent, closed-world), and the description adds real methodology: the fair-market-value ratio applied to 공시가격, the 과세표준상한 when a prior-year price is supplied, progressive vs. special one-house rates, and asymmetric rounding (재산세 rounds, surcharges truncate). That rounding asymmetry is exactly the kind of behavioral detail annotations cannot carry. It does not discuss rate-limit or failure behavior, but for a pure calculator that is minor.

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?

Five short sentences, each carrying distinct information: scope, computation chain, cap rule, rate schedule, rounding, and exclusion. The exclusion is placed last as a guard while the computation is front-loaded, which is the right ordering for this tool.

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 annotations and an output schema already present, the description needn't explain return fields, and it covers the calculation chain and scope boundary well. What it leaves out — what `year` selects and what `as_of` means — is a real gap for a tax tool whose rates are year-dependent, but it is not a blocking one.

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 must carry the load. It does add domain meaning for published_price (units in 원), prior_year_published_price (triggers the tax-base cap), is_one_house (60% vs. bracket-based ratio, special rate under 9억), and implicitly include_urban via 도시지역분. However year, as_of, and include_proposed receive no explanation at all, leaving roughly half of seven parameters opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (계산한다) and a precisely scoped resource (한국 주택 재산세, with statutory citations §110~§111의2) plus the two surcharges it also computes. The scope word '주택' plus the explicit misuse note cleanly separates it from siblings like realestate.kr_local_property or realestate.kr_acquisition_tax.

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 final sentence gives a concrete exclusion ('오용 예: 토지·건축물에 사용'), which is genuine when-not guidance rather than implied usage. It stops short of naming the alternative tool an agent should reach for when the input is land or a building, so it falls below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_subscription_scoreA
Read-onlyIdempotent

주택공급에 관한 규칙 별표 1의 청약 가점제 점수(무주택기간 32, 부양가족 35, 청약저축 가입기간 17, 합계 84점)를 계산한다. 기간은 입주자모집공고일 현재 개월 수 정수, 부양가족은 인원 정수로 넣는다. 배우자 가입기간은 50%로 환산해 3점 한도로 합산하고 저축 점수는 17점 한도다. 주택 소유 세대나 만 30세 미만 미혼은 homeless_period_applicable=false 로 0점이다. 만 나이 전체를 무주택기간으로 넣는 것은 오용이며 30세 또는 혼인신고일부터 센다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
dependentsYes
savings_monthsYes
homeless_monthsYes
include_proposedNo
spouse_savings_monthsNo
homeless_period_applicableNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
total_pointsYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
savings_pointsYes
homeless_pointsYes
policy_audit_idYes
max_total_pointsYes
policy_citationsYes정책의 근거 조문
dependents_pointsYes
policy_effective_toYes
savings_total_pointsYes
policy_effective_dateYes
spouse_savings_pointsYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds genuinely non-obvious computation behavior: spouse savings are converted at 50% with a 3-point cap, savings scoring caps at 17 points, and the homeless period is counted from age 30 or the marriage registration date rather than total age. It does not state the output shape, but an output schema exists.

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 dense sentences, front-loaded with the scoring breakdown, then input conventions, then the caps, then the edge case and misuse warning. Every sentence carries information; the only minor cost is that the parameter conventions and the warnings are interleaved rather than grouped.

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?

An output schema exists, so return values need not be explained, and the scoring rules are well covered. However, with 8 parameters and no schema descriptions, leaving year, as_of, and include_proposed undefined means an agent cannot confidently construct a call for a tool whose rules vary by year.

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 must carry parameter meaning. It successfully defines homeless_months, savings_months, spouse_savings_months, dependents, and homeless_period_applicable, but leaves three parameters — year, as_of, and include_proposed — completely unexplained, which is significant for a rules-versioned calculation where year likely selects the applicable regulation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise verb and resource (청약 가점제 점수 계산) and even enumerates the scoring components and their maximums (무주택기간 32, 부양가족 35, 청약저축 17, 합계 84). No sibling tool in the realestate.* family covers subscription points, so an agent can distinguish it immediately from kr_dsr, kr_dti, or kr_acquisition_tax.

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?

It gives concrete input conventions (periods as integer months as of the announcement date, dependents as a count) and an explicit exclusion: homeowners or unmarried applicants under 30 should pass homeless_period_applicable=false for zero points. It also warns against the common misuse of entering full age as homeless_months. It never names an alternative tool, but no sibling competes for this calculation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.kr_transfer_taxA
Read-onlyIdempotent

한국 부동산 양도소득세를 tax.capital_gains_kr 에 위임해 계산하고 domain, module 표식을 붙인다. 금액은 원 단위 문자열, 세액은 decimals 자리 HALF_UP 반올림. is_one_house=true 는 주택(1세대 1주택 비과세·고가주택 안분·보유 거주 공제), false 는 주택 외 토지·건물로 처리한다. 오용 예: 다주택 주택 양도에 false 입력(중과·분양권·미등기는 tax.capital_gains_kr 직접 사용).

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
sale_priceYes
is_one_houseYes
holding_yearsYes
include_proposedNo
acquisition_priceYes

Output Schema

NameRequiredDescription
taxYes
gainYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
domainYes
exemptYes
moduleYes
tax_baseYes
ltct_rateYes
applied_rateYes
taxable_gainYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
ltct_deductionYes
policy_versionYes적용된 정책 문서의 식별 정보
basic_deductionYes
policy_audit_idYes
rate_candidatesYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
taxable_portion_gainYes
policy_effective_dateYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world, so the safety profile is covered; the description adds real behavioral detail: amounts are won-unit strings and tax output is HALF_UP rounded to `decimals`. It does not discuss failure modes or how the delegation to tax.capital_gains_kr behaves, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences ordered purpose → units/rounding → parameter semantics → misuse case, with no filler. The misuse warning is deliberately placed last, which works as a guardrail.

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?

An output schema exists, so return values needn't be described, and the tax-regime and unit semantics are well covered. However, for an 8-parameter tool with zero schema descriptions, the unexplained as_of, year, and include_proposed parameters leave a real gap for correct invocation.

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% across 8 parameters, so the description carries the burden. It clarifies the genuinely ambiguous ones — sale_price/acquisition_price are won-unit strings, decimals controls HALF_UP rounding, and is_one_house selects the tax regime — but leaves year, as_of, and include_proposed completely unexplained.

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: delegate the Korean real-estate transfer income tax calculation to tax.capital_gains_kr and tag the result with domain/module markers. It also names its sibling tax.capital_gains_kr and explains the boundary, though what the 'domain, module 표식' actually means for the caller stays vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly splits usage by is_one_house (true = 1세대 1주택 exempt/high-value apportionment/holding-residence deduction; false = non-housing land/building). It also names a concrete when-NOT case — multi-house, 분양권, 미등기 transfers — and points the agent to tax.capital_gains_kr directly instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

realestate.rental_yieldA
Read-onlyIdempotent

임대수익률을 백분율(%) 문자열로 계산한다. gross 는 연간 임대수입 / 매입가격, net 은 (연간 임대수입 - 연간 비용) / 매입가격이며 금액은 원 단위 문자열이다. rounding(기본 HALF_EVEN)으로 decimals(기본 2) 자리까지 반올림하고, 비용이 임대수입보다 크면 net 은 음수다. gross 는 비용을 보지 않는다. 오용 예: 월 임대료를 연 환산하지 않고 annual_rent 에 입력.

NameRequiredDescriptionDefault
decimalsNo
roundingNoHALF_EVEN
yield_typeNogross
annual_rentYes
property_priceYes
annual_expensesNo0

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
yield_pctYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds useful behavior beyond annotations: output is a percentage string, amounts are KRW-unit strings, rounding uses HALF_EVEN by default, and net can be negative when expenses exceed rent. It does not describe error handling or edge cases like zero price, but the core calculation behavior is well disclosed.

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?

Front-loads purpose and formulas, then adds rounding defaults, negative-net behavior, and a misuse example. Every sentence provides actionable information; there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, idempotent calculator with an output schema, the description supplies all needed context: formulas, input units, rounding defaults, sign behavior, and a common mistake to avoid. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden. It defines the roles of annual_rent, property_price, and annual_expenses in the formulas, states that amounts are 원 단위 문자열, and explains rounding (default HALF_EVEN) and decimals (default 2). It also covers yield_type via the gross/net formulas and warns about monthly-to-annual conversion, fully compensating for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('임대수익률을 백분율(%) 문자열로 계산한다') and immediately distinguishes the two yield types with explicit formulas. An agent can tell exactly what it computes and how gross differs from net without opening the schema.

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?

Explains gross vs net behavior and gives a concrete misuse example ('월 임대료를 연 환산하지 않고 annual_rent 에 입력'), which guides correct input preparation. It lacks an explicit 'use this instead of X' clause, but there is no direct sibling alternative for rental yield, so this is close to complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.battery_capacityA
Read-onlyIdempotent

배터리 용량을 Ah와 Wh 사이에서 변환한다. Wh = Ah * V, Ah = Wh / V. mode='ah_to_wh'(기본) 또는 'wh_to_ah', value는 0 이상, voltage는 양수(V)이며 Decimal 문자열이다. 나눗셈은 반올림하지 않는다. 직렬이나 병렬 구성 용량은 계산하지 않으므로 팩 전체 전압과 용량을 쌍으로 넣어야 한다.

NameRequiredDescriptionDefault
modeNoah_to_wh
valueYes
voltageYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: division is not rounded, inputs must be Decimal strings, and the pack-configuration caveat tells the agent what the tool refuses to compute.

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?

Purpose and formulas come first, then mode/validation, then the caveat. Four dense sentences with no filler or repetition.

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 an output schema present, return values need no explanation, and the description covers modes, input constraints, and precision behavior. Slightly short of complete because the semantics of value per mode could be stated explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and largely meets it: mode names both allowed values plus the default, value is constrained to >= 0, and voltage is defined as a positive Decimal string in volts. Minor gap: the unit of value (Ah vs Wh) is only implied by mode rather than stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource ('배터리 용량을 Ah와 Wh 사이에서 변환') and immediately supplies the governing formulas, so the agent can distinguish it from generic conversion siblings like units.energy_convert or engineering.electrical_power.

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?

Explicitly lists the two modes and the default, and adds a clear exclusion: series/parallel pack capacity is not computed, so the whole-pack voltage and capacity must be supplied as a pair. It stops short of naming a sibling alternative, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.braggA
Read-onlyIdempotent

브래그 회절 조건 n*lambda = 2 d sin(theta)에서 파장, 면간격, 회절각 중 하나를 구한다. order는 양의 정수이고 wavelength, spacing, angle 중 정확히 하나를 생략하며 나머지는 Decimal 문자열이다. 파장과 면간격은 같은 길이 단위로 넣고, angle은 unit='deg'(기본) 또는 'rad'이며 브래그각 theta 기준이다(2theta 아님). mpmath 40자리 계산 후 유효숫자 20자리로 돌려주며 sin theta가 1을 넘는 조합은 오류다.

NameRequiredDescriptionDefault
unitNodeg
angleNo
orderYes
spacingNo
wavelengthNo

Output Schema

NameRequiredDescription
unitNo
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
angleNo
traceYes계산 근거(tool, formula, inputs, steps, output)
spacingNo
wavelengthNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavioral context beyond the readOnly/idempotent annotations: mpmath 40-digit internal precision, 20-significant-digit output, unit consistency requirement, and an explicit error case when sin(theta) exceeds 1.

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?

The formula is front-loaded and every sentence contributes necessary information about constraints, units, precision, or errors. It is dense but appropriately sized for a technical calculator, with little wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a formula-based science tool with an output schema, the description supplies all the operational detail an agent needs: which parameters are required, how units work, precision behavior, and the invalid-domain error condition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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, and it does: it defines order, the exact-one-omitted rule across wavelength/spacing/angle, Decimal string types, unit='deg'/'rad' behavior, and clarifies that angle means theta rather than 2theta.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: solving for one of wavelength, spacing, or diffraction angle in the Bragg condition. The formula and the exactly-one-omitted constraint make the tool's scope unmistakable.

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 clear usage constraints: order is a positive integer, exactly one of wavelength/spacing/angle must be omitted, and the remaining values are Decimal strings. It also explains unit handling for angle, though it does not explicitly name alternative tools or when not to use this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.faraday_electrolysisA
Read-onlyIdempotent

패러데이 법칙으로 전기분해 시 석출되는 질량(g)을 계산한다. m = (I * t * M) / (n * F). current_a는 암페어, time_s는 초, molar_mass_g는 g/mol(모두 양수 Decimal 문자열), n_electrons는 양의 정수. F=96485.33212 C/mol이며 반올림하지 않는다. 시간을 분이나 시간 단위로 넣으면 안 되고 전류 효율은 100%로 가정한다.

NameRequiredDescriptionDefault
time_sYes
current_aYes
n_electronsYes
molar_mass_gYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
mass_gYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description discloses the exact formula, Faraday constant value, no-rounding behavior, positivity constraints, and the 100% current-efficiency assumption. These are meaningful behavioral details for correct invocation and interpretation.

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?

The description is front-loaded with purpose and formula, then gives parameter units, the Faraday constant, and key constraints. It is compact and every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculation tool with an output schema and rich annotations, the description provides everything needed to call it correctly: formula, units, type constraints, constant value, rounding behavior, and efficiency assumption.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it does: current_a is amperes, time_s is seconds, molar_mass_g is g/mol, and all three are positive Decimal strings, while n_electrons is a positive integer. It also maps parameters to the formula variables.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific calculation: mass deposited during electrolysis using Faraday's law, and includes the exact formula. This clearly distinguishes it from sibling science tools such as molar_mass, stoichiometry, and battery_capacity.

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?

It gives clear input constraints, including that time_s must be seconds rather than minutes/hours and that current efficiency is assumed to be 100%. However, it does not explicitly route the agent away from related sibling tools or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.half_lifeA
Read-onlyIdempotent

방사성 붕괴로 남은 양을 계산한다. N(t) = N0 x 0.5^(t/T). initial_amount는 양수, half_life는 양수, elapsed_time은 0 이상의 Decimal 문자열이며 half_life와 elapsed_time은 같은 시간 단위여야 한다. mpmath 50자리로 계산해 유효숫자 30자리 문자열로 돌려주며 남은 비율(fraction)도 함께 반환한다. 단위가 다른 반감기와 경과 시간을 섞으면 안 된다.

NameRequiredDescriptionDefault
half_lifeYes
elapsed_timeYes
initial_amountYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
fractionYes
remainingYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds value beyond them by disclosing the numerical method (mpmath, 50 digits) and output precision (30 significant digits), which an agent needs to trust the result.

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?

Front-loaded with purpose then formula, then constraints, then output behavior — good ordering with little waste. The closing sentence repeats the unit-consistency rule already stated mid-paragraph, which is mild redundancy.

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?

An output schema exists, so return structure need not be spelled out, and the description still usefully notes the fraction is returned alongside. For a 3-parameter tool with zero schema descriptions, the constraints and precision disclosure make it callable without guesswork; only input formatting examples are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% — all three parameters are bare strings with only titles — so the description carries the full burden and does so: initial_amount and half_life must be positive, elapsed_time is a Decimal string ≥ 0, and half_life/elapsed_time must be unit-consistent. It does not give a format example or explain what unit initial_amount is expressed in, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('방사성 붕괴로 남은 양을 계산한다') and backs it with the exact formula N(t) = N0 x 0.5^(t/T), so an agent knows precisely which computation this performs. It is unambiguously distinct from the other science.* calculators (bragg, nernst, ideal_gas, etc.).

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 explicit preconditions and a clear prohibition: half_life and elapsed_time must share the same time unit, and '단위가 다른 반감기와 경과 시간을 섞으면 안 된다.' No competing sibling is named, but for a self-contained formula tool the applicable context is stated plainly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.ideal_gasA
Read-onlyIdempotent

이상 기체 법칙 PV = nRT에서 빠진 변수 하나를 계산한다. 압력 Pa, 부피 m³, 물질량 mol, 온도 K 중 정확히 3개를 Decimal 문자열로 주고 나머지는 생략한다. R = 8.314462618 J/(mol K)(CODATA 2018), Decimal 정확 연산이며 반올림하지 않는다. 계산값이 음수이거나 0으로 나누면 오류다. atm, L, 섭씨를 그대로 넣으면 안 되고 SI 단위로 환산해야 한다.

NameRequiredDescriptionDefault
molesNo
volumeNo
pressureNo
temperatureNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
molesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
volumeYes
pressureYes
temperatureYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent and closed-world, so the bar is lower. The description adds real substance beyond that: exact Decimal arithmetic with no rounding, the fixed CODATA 2018 value of R, and an explicit error condition for negative results or division by zero.

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 short sentences with no filler: what it does, how to call it, what precision to expect, and what fails. The core contract is front-loaded, with the unit caveat correctly placed last.

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?

The output schema covers the return value, so the description only needs to specify units, precision, constant and failure modes — all present. Only the behavior for the wrong number of arguments (all four or fewer than three supplied) is left implicit rather than stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the parameter names are bare, so the description carries the full burden — and does it. It assigns a unit to each of the four parameters (Pa, m³, mol, K), specifies the Decimal-string type, and states the 'exactly three, omit one' contract that the schema's all-optional shape cannot express.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb (compute the missing variable) applied to a named, unambiguous resource (the ideal gas law PV = nRT). It is clearly distinguishable from siblings such as science.molar_mass or units.pressure_convert, since the tool solves for exactly one omitted variable.

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?

It gives a precise invocation rule: supply exactly three of the four variables as Decimal strings and omit the rest. It also warns that atm, L and Celsius must be converted to SI first, which prevents a common misuse. It stops short of naming the conversion siblings (units.pressure_convert, units.temperature) as the required pre-step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.intensityA
Read-onlyIdempotent

빛이나 복사의 세기(단위 면적당 전력)를 계산한다. I = P / A. power_w는 0 이상 와트, area_m2는 양수 제곱미터의 Decimal 문자열이며 결과 단위는 W/m^2, 반올림하지 않는다. 입사각에 따른 유효 면적 보정이나 파장별 분광 세기는 다루지 않는다. 면적을 cm² 단위로 넣으면 안 된다.

NameRequiredDescriptionDefault
area_m2Yes
power_wYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
intensityYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and closed-world; beyond that, the description specifies unit expectations, Decimal-string inputs, non-negative power, positive area, no rounding, and prohibited cm² input. That is behaviorally useful and consistent with 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 short sentences, starting with the calculation/formula and then constraints; no redundant restatement of the tool name. Every sentence adds scope, formula, or input/output semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and the description still states the result unit and no-rounding behavior; it covers both required inputs and key invalid-use cases. Nothing material is missing for a read-only two-parameter calculator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining both parameters: power_w in watts >= 0 and area_m2 in positive square meters, plus the cm² exclusion. It adds material meaning beyond the bare string properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (계산한다) and resource (빛이나 복사의 세기), gives the exact formula I = P / A, and narrows scope by excluding incidence-angle correction and spectral intensity. An agent can distinguish this from other science calculators without opening the schema.

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?

It gives clear negative guidance (not for effective area by incidence angle, not spectral intensity, not cm² input) but does not name a specific sibling tool to use instead. The intended use is strongly implied by the formula and unit constraints, but there is no explicit when-to-use/alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.molar_massA
Read-onlyIdempotent

화학식으로 몰질량(g/mol)을 계산하고 원소별 원자 수(composition)를 돌려준다. 원소 기호는 대소문자를 구분하며 괄호 Ca(OH)2, 수화물 CuSO4.5H2O 표기를 지원한다. IUPAC 2021 관례값 원자량을 Decimal로 합산하며 반올림하지 않는다. H~Pb 사이 일반 원소 27종만 지원하고 그 밖의 원소와 이온 전하 표기는 오류다.

NameRequiredDescriptionDefault
formulaYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
molar_massYes
compositionYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the lower bar applies; the description still adds genuinely non-obvious behavior: IUPAC 2021 conventional weights summed as Decimal with no rounding, plus the precise error boundary. It does not describe response shape, but an output schema exists to cover that.

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 sentences, front-loaded with purpose and return values, then syntax support, then numeric convention, then error limits. No redundant restatement of the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, annotated, output-schema-backed tool, the description covers everything an agent needs: input grammar, numeric precision convention, return composition, and failure modes. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single `formula` parameter, so the description must compensate — and it does, specifying case sensitivity, parentheses like Ca(OH)2, hydrate dot notation CuSO4.5H2O, and what is rejected. This is exactly the grammar an agent needs to construct a valid input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('화학식으로 몰질량(g/mol)을 계산') and also names the secondary output ('원소별 원자 수(composition)'), so the agent knows both what it computes and what it returns. This is distinguishable from its closest sibling, science.stoichiometry, which is not a mass calculator.

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 clear preconditions for a valid call — case-sensitive symbols, supported bracket/hydrate notation, the H~Pb 27-element support envelope, and explicit error cases (other elements, ionic charge notation). It does not explicitly route to alternatives, but it clearly delimits when this tool applies versus failing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.nernstA
Read-onlyIdempotent

Nernst 방정식으로 비표준 조건의 전극 전위를 V 단위로 계산한다. E = E0 - (RT / nF) * ln(Q). e0(V)와 reaction_q(양수)는 Decimal 문자열, n은 양의 정수 전자수, temperature는 켈빈(기본 298.15). R=8.314462618, F=96485.33212를 쓰고 결과는 소수 20자리로 맞춘다. 섭씨 온도를 그대로 넣거나 Q 대신 ln(Q)를 넣으면 안 된다.

NameRequiredDescriptionDefault
nYes
e0Yes
reaction_qYes
temperatureNo298.15

Output Schema

NameRequiredDescription
eYes
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
coefficientYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds substantive behavioral detail beyond them: output unit (V), the exact constants R=8.314462618 and F=96485.33212, and 20-decimal rounding. It does not describe failure behavior for invalid Q, but the precision and unit disclosures are real added value.

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 compact sentences, front-loaded with what it computes and the formula, then input conventions, constants, and the two common misuse warnings. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return structure need not be explained; the description covers units, precision, constants, and all input formats. Nothing needed to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does so: e0 as a Decimal string in volts, reaction_q as a positive Decimal string (explicitly Q, not ln(Q)), n as a positive integer electron count, and temperature in Kelvin defaulting to 298.15. All four parameters gain meaning the schema alone does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Nernst 방정식으로 ... 전극 전위를 V 단위로 계산한다') and includes the governing equation E = E0 - (RT/nF)*ln(Q), which unambiguously identifies the operation among science.* and engineering.* siblings. An agent can distinguish it from faraday_electrolysis or battery_capacity without reading the schema.

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?

Frames the use case as '비표준 조건' (non-standard conditions) and gives explicit negative guidance: don't pass Celsius directly, don't pass ln(Q) instead of Q. It does not name a sibling alternative or state prerequisites, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.snell_lawA
Read-onlyIdempotent

스넬의 법칙으로 굴절각을 계산한다. n1 sin(theta1) = n2 sin(theta2), theta2 = asin(n1/n2 * sin(theta1)). n1, n2는 양수 굴절률, theta1은 입사각이며 모두 Decimal 문자열이다. unit='deg'(기본) 또는 'rad'이고 결과도 같은 단위다. mpmath 40자리 계산 후 유효숫자 20자리로 돌려준다. 전반사가 일어나는 입사각이면 오류이며 각도는 법선 기준이다(표면 기준 각을 넣으면 안 된다).

NameRequiredDescriptionDefault
n1Yes
n2Yes
unitNodeg
theta1Yes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
theta2Yes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say read-only/idempotent/closed-world; the description adds what they cannot: 40-digit mpmath intermediate computation returned at 20 significant digits, identical units for input and output, and a declared error condition (total internal reflection). These are precisely the behavioral facts an agent needs before calling.

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?

Front-loaded with the purpose and formula, then input semantics, then units, precision, and error/convention caveats. Every sentence adds information; nothing is padded or restated from the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape need not be described. Combined with full parameter semantics, unit handling, precision policy, and the total-internal-reflection error rule, an agent has everything required to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (titles only), so the description carries the full burden and does: n1/n2 are positive refractive indices as Decimal strings, theta1 is the incident angle as a Decimal string measured from the normal, and unit accepts 'deg' (default) or 'rad' with the result in the same unit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('스넬의 법칙으로 굴절각을 계산한다') and immediately gives the governing equation theta2 = asin(n1/n2 * sin(theta1)), so the computed quantity is unambiguous. No sibling (science.bragg, science.thin_lens) could be confused with it.

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 concrete preconditions and exclusions: angles are measured from the normal, not the surface ('표면 기준 각을 넣으면 안 된다'), and total internal reflection is an error case. It does not name an alternative tool, but for this narrow physics function no alternative is plausibly in scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.stoichiometryA
Read-onlyIdempotent

균형 맞춘 반응식 계수로 한계 반응물을 찾고 각 물질의 몰수(mol)와 질량(g)을 계산한다. reactants는 {formula, mass(g) 또는 moles} 목록, products는 {formula} 목록, coefficients는 {화학식: 정수 계수}이며 수치는 Decimal 문자열이다. 몰질량은 molar_mass 와 같은 원자량을 쓰고 반올림하지 않는다. 계수가 균형 상태가 아니면 결과가 틀리며 수율이나 불순물은 반영하지 않는다.

NameRequiredDescriptionDefault
productsYes
reactantsYes
coefficientsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
molesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
massesYes
limiting_reagentYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, closed-world, idempotent), and the description adds genuinely new behavioral context: numeric values are Decimal strings, no rounding is applied, atomic weights match molar_mass, and unbalanced coefficients silently produce wrong results. That last point is a valuable failure-mode disclosure not derivable 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, front-loaded with the purpose, then input shapes, then behavioral caveats. Dense but every sentence carries information; no 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?

An output schema exists, so return values needn't be explained. Given 0% schema coverage and nested objects, the description supplies enough input structure and caveats for correct invocation; only edge-case handling of overlapping mass/moles inputs is left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema is loose (additionalProperties true, no per-property docs), so the description must compensate — and it does, spelling out the shape of reactants ({formula, mass(g) or moles}), products ({formula}), and coefficients ({formula: integer}), plus the Decimal-string convention. Minor gap: it doesn't say what happens if both mass and moles are supplied for one reactant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: find the limiting reactant from balanced coefficients and compute moles and mass for each substance. It also distinguishes itself from the molar_mass sibling by declaring it uses the same atomic weights, so an agent can tell it apart without opening either schema.

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 clear preconditions (coefficients must already be balanced or results are wrong) and explicit exclusions (yield and impurities are not reflected), which tells the agent when not to rely on it. It stops short of naming an alternative tool to use for yield/impurity problems.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

science.thin_lensA
Read-onlyIdempotent

얇은 렌즈 방정식 1/f = 1/p + 1/q에서 빠진 값 하나(초점거리, 물체거리, 상거리)를 구하고 배율 m = -q/p도 돌려준다. 세 인자 중 정확히 2개를 Decimal 문자열로 주며 길이 단위는 통일한다. 반올림하지 않으며 0 거리나 평행광선(무한대) 조합은 오류다. 실상은 양, 허상은 음의 거리 부호 규약을 따르므로 부호를 맞춰 넣어야 한다.

NameRequiredDescriptionDefault
image_distNo
object_distNo
focal_lengthNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
image_distNo
object_distNo
focal_lengthNo
magnificationYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description adds meaningful behavioral detail: no rounding is performed, invalid combinations such as zero distance or infinity raise errors, and real versus virtual images follow a positive/negative distance sign convention. This is exactly the kind of operational context an agent needs before invoking the tool.

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?

The description is compact and front-loaded: it states the equation and output first, then input rules, error conditions, and sign convention. Every sentence adds necessary information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, an existing output schema, and the mathematical nature of the tool, the description is complete enough to call correctly. It covers input cardinality, types, units, error cases, sign convention, and the additional magnification return value without redundantly describing output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 and compensates well. It explains that focal_length, object_dist, and image_dist are Decimal strings, that exactly two must be supplied, that units must be consistent, and how signs encode real versus virtual images.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific calculation: solve the thin lens equation 1/f = 1/p + 1/q for exactly one missing value and return magnification m = -q/p. It names the three possible quantities and their roles, so an agent can immediately distinguish this from unrelated science tools such as science.snell_law or science.bragg.

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?

It gives clear invocation rules: supply exactly two of the three values as Decimal strings, keep length units consistent, and note that zero distance or infinity/parallel-ray combinations are errors. It does not name an alternative tool, but there is no obvious sibling alternative, so the remaining gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_activateA
Destructive

[관리자] 검증을 통과한 초안을 덮어쓰기 저장소에 반영하고 캐시를 비우며 감사 기록을 남긴다. 검증 오류가 있는 초안은 validation_failed 로 거부하고, 관리자 모드가 아니면 admin_required 를 반환한다. 반영된 초안은 삭제된다.

NameRequiredDescriptionDefault
draft_idYes

Output Schema

NameRequiredDescription
nameNo
yearNo
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
errorNo
domainNo
sha256No
sourceNo
messageNo
audit_idNo
activatedNo
validationNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses concrete behavior: it overwrites stored state, clears the cache, writes an audit record, and deletes the draft after applying it. That is meaningful context for a destructive, non-idempotent operation, though it stops short of saying whether the overwrite can be undone other than via rollback.

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?

The description is three dense sentences that front-load the admin qualifier and the main effect, then add the failure modes and the deletion side effect. There is no 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?

An output schema exists, so return values need not be described. Together with the annotations and the error-code disclosure, the description covers what an agent needs for a destructive admin mutation; the only remaining gap is detail about the draft_id parameter.

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?

There is a single parameter with 0% schema description coverage, so the description must explain draft_id. It only implies that it refers to a validated draft; it does not state the identifier's format or where to obtain it (for example, from policy_list or policy_propose).

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 a specific verb and resource ('검증을 통과한 초안을 덮어쓰기 저장소에 반영') and marks it as admin-only, which is enough to distinguish it from siblings such as policy_validate or policy_rollback. It never names those siblings explicitly, so the differentiation is left implicit.

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?

It spells out two preconditions for use: the draft must have passed validation and the caller must be in admin mode, with the exact failure codes (validation_failed, admin_required). It gives clear context but does not explicitly exclude or compare against alternatives such as policy_rollback or policy_propose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_diffA
Read-onlyIdempotent

정책 두 버전의 구간별 세율과 주요 값 변경을 비교한다. year_from 과 year_to 로 연도 간 비교하거나 draft_id 로 초안과 현재 시행본을 비교한다. 인자가 모자라거나 비교할 시행본이 없으면 error 필드로 알린다. 변경 이력은 sootool.policy_history 를 쓴다.

NameRequiredDescriptionDefault
nameYes
domainYes
year_toNo
draft_idNo
year_fromNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
errorNo
changesNo
summaryNo
vs_yearNo
current_yearNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds real value beyond them by disclosing the failure mode: insufficient arguments or a missing enacted version surfaces via an error field rather than throwing or returning empty. It does not describe the diff output structure, but an output schema exists.

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 short sentences, purpose first, then the two calling modes, then the error contract, then the sibling pointer. No filler and nothing redundant with the schema.

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 an output schema and safety annotations already present, the description covers the essential calling modes and error behavior; only the meaning of the two required identity parameters is left implicit.

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 0%, so the description must carry parameter meaning; it explains year_from, year_to, and draft_id modes well, but never clarifies what the required domain and name parameters identify. Partial compensation, not full.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource — comparing segmental tax rates and major value changes between two policy versions — and explicitly distinguishes itself from the sibling sootool.policy_history by naming it for change history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two explicit modes with the parameters that select them (year_from/year_to for cross-year comparison, draft_id for draft vs. enacted), and routes the alternative need (change history) to sootool.policy_history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_exportA
Read-onlyIdempotent

정책 하나를 이식 가능한 묶음(원본 YAML과 메타데이터)으로 내보낸다. domain, name, year 로 지정하고 as_of, include_proposed 로 버전을 고른다. include_signature 가 참이면 환경변수 SOOTOOL_POLICY_KEY_FILE 이 가리키는 키 파일(권한 0600)로 ed25519 서명을 붙인다. 묶음은 sootool.policy_import 가 받는다.

NameRequiredDescriptionDefault
nameYes
yearYes
as_ofNo
domainYes
include_proposedNo
include_signatureNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
bundleYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description goes well beyond them: it discloses the output artifact's composition, that signing only happens when include_signature is true, that signing requires an ed25519 key file resolved through the SOOTOOL_POLICY_KEY_FILE environment variable with 0600 permissions, and which sibling accepts the bundle. This is exactly the kind of precondition/auth context annotations cannot convey, and it is consistent with readOnlyHint=true (export is a read).

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 short sentences, front-loaded with the purpose, then parameters, then the signing precondition, then the downstream consumer. No filler and no repetition of schema/annotation content.

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?

An output schema exists so return values need not be explained, and annotations cover the safety profile; the description fills the remaining gaps (bundle format, signing setup, consumer tool). The one hole is the unspecified format/semantics of as_of and include_proposed, which matters for correct invocation.

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 must carry parameter meaning; it assigns roles to five of six parameters (domain/name/year identify the policy, as_of/include_proposed select the version, include_signature toggles signing). However it never specifies the expected format of as_of (date string?) or what 'proposed' versions actually mean, leaving the agent to guess at call-time values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('정책 하나를 이식 가능한 묶음으로 내보낸다' — export one policy as a portable bundle) and immediately defines the bundle's contents (original YAML + metadata). This is clearly distinguishable from siblings like policy_get (fetch a policy) and policy_import (the named consumer of this output).

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 concrete selection guidance: identify the policy with domain/name/year, pick a version via as_of and include_proposed, and names sootool.policy_import as the tool that consumes the resulting bundle, which tells the agent the intended round-trip. It does not explicitly say when to prefer this over policy_get or policy_diff, so it stops just short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_getA
Read-onlyIdempotent

정책 파일 하나의 내용(data)과 출처(package 또는 override), 버전 정보를 반환한다. domain, name, year 로 지정하고 as_of(YYYY-MM-DD)로 그날 시행 중인 버전을, include_proposed 로 확정 전 개정안까지 고를 수 있다. 존재하지 않는 연도를 지정하면 오류가 난다.

NameRequiredDescriptionDefault
nameYes
yearYes
as_ofNo
domainYes
include_proposedNo

Output Schema

NameRequiredDescription
dataYes
nameYes
yearYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
domainYes
sourceYes
policy_versionYes적용된 정책 문서의 식별 정보

TDQS

A4.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), so the description adds value with the version-resolution model (as_of selects the in-force version, include_proposed extends to amendments) and the explicit error condition for invalid years. It says nothing about failure modes for missing policies or auth requirements, but for a read tool this is solid additional context.

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?

Three sentences, front-loaded with the return value, then selection semantics, then the error case. No filler; every clause conveys a distinct behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-format explanation is optional, yet the description still summarizes what comes back (data, provenance, version) and covers resolution and error behavior. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load, and it does: domain/name/year form the identifier, as_of is documented as YYYY-MM-DD selecting the version in force that day, and include_proposed toggles pre-finalization drafts. All four meaningful parameters gain semantics beyond their bare names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('returns the content, source, and version info of one policy file'), and the singular 'one policy file' implicitly separates it from siblings like policy_list and policy_history. An agent can tell what it retrieves without opening the schema.

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?

Explains how to select a version via as_of and include_proposed, and warns that a nonexistent year errors out, which is real usage context. It does not explicitly route to alternatives (e.g., policy_list for enumeration, policy_diff for comparison), so the when-not guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_historyA
Read-onlyIdempotent

정책 하나(domain, name)의 변경 감사 기록을 기록된 순서대로 반환한다. 항목마다 action(activate, rollback, import), 시각, audit_id, 변경 전후 sha256 이 있고 기록이 없으면 빈 목록이다. 정책 내용 자체는 sootool.policy_get 으로 본다.

NameRequiredDescriptionDefault
nameYes
domainYes

Output Schema

NameRequiredDescription
nameYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
countYes
domainYes
entriesYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the readOnly/idempotent annotations by disclosing ordering (recorded order), the per-item fields returned (action, timestamp, audit_id, before/after sha256), the action values (activate, rollback, import), and the empty-list behavior when no history exists. Does not mention retention limits or pagination, but the core behavior is well covered.

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?

Three short sentences: purpose, return shape/edge case, and alternative. Front-loaded with the verb, no redundant restatement of the tool name, nothing that could be cut.

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 read-only two-parameter lookup with an output schema, the description covers purpose, return content, empty result, and the sibling alternative — enough to invoke correctly. The only gap is the unresolved semantics of the required domain/name parameters.

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 must carry parameter meaning. It names the two parameters in passing ('정책 하나(domain, name)') but never explains what domain represents (namespace/tenant?) or the expected format of name, leaving the agent to infer both.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('정책 하나(domain, name)의 변경 감사 기록을 반환한다') and immediately disambiguates from the closest sibling by noting that policy content is retrieved via sootool.policy_get instead. An agent can tell this returns audit history, not policy content.

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?

Explicitly routes the agent to sootool.policy_get when the actual policy body is wanted, which is the most likely confusion. However it does not distinguish this audit-log read from sootool.policy_diff, another sibling that also concerns changes, so the when-not guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_importA
Destructive

[관리자] sootool.policy_export 가 만든 묶음을 검증한 뒤 덮어쓰기 저장소에 반영한다. require_signature 와 public_key_b64 로 ed25519 서명을 검증하며 환경변수 SOOTOOL_POLICY_REQUIRE_SIGNATURE 가 켜져 있으면 서명이 필수다. 검증 오류는 validation_failed 로 거부하고, 관리자 모드가 필요하다.

NameRequiredDescriptionDefault
bundleYes
public_key_b64No
require_signatureNo

Output Schema

NameRequiredDescription
nameNo
yearNo
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
errorNo
domainNo
sha256No
messageNo
audit_idNo
importedNo
validationNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that the target store is overwritten (matching destructiveHint=true), that ed25519 signature verification is performed with an env-var switch, that failures surface as validation_failed, and that admin mode is a precondition. This is exactly the extra context annotations cannot carry.

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 short sentences, front-loaded with the [admin] marker and the purpose, then verification, then error behavior, then the admin prerequisite. Nothing is repeated from the schema and no sentence is 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 destructive, non-idempotent mutation with an output schema already defined, it covers preconditions, verification path and failure mode. It could still note reversibility (policy_rollback exists) or whether the overwrite replaces the entire policy set, but no critical calling information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description has to compensate: it explains require_signature, public_key_b64 and their interaction with SOOTOOL_POLICY_REQUIRE_SIGNATURE, plus the provenance of bundle. The bundle's nested content is left opaque (it is an untyped object with additionalProperties), which is the main remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (verify then apply to overwrite repository) and a specific resource (bundle produced by sootool.policy_export). Naming the producing sibling makes it instantly distinguishable from policy_validate, policy_propose and policy_activate.

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 clear invocation context: the input must be a bundle from policy_export, admin mode is required, and signature is mandatory when the env flag is on. It does not say when to prefer policy_validate or policy_activate instead, so routing between the policy siblings is still partly left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_listA
Read-onlyIdempotent

패키지와 덮어쓰기 저장소의 모든 정책 파일 목록을 반환한다. 항목마다 영역, 이름, 연도, 출처(package 또는 override), 시행일, 종료일, 상태, sha256 이 있다. 인자가 없고 읽기 전용이며, 정책 내용이 필요하면 sootool.policy_get 을 쓴다.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
countYes
policiesYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the description's '읽기 전용' restates structured data rather than adding to it. The field enumeration (영역, 이름, 연도, 출처, 시행일, 종료일, 상태, sha256) is also largely duplicated by the existing output schema, leaving little genuinely new behavioral context beyond 'no arguments needed'.

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 short sentences, front-loaded with the core action and ending with the sibling hand-off. The middle sentence's field list is somewhat redundant given the output schema and could be trimmed without losing information.

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 an output schema present, the description need not explain return values, and it still covers the argument-free, read-only nature plus the correct alternative for content. Complete enough to invoke correctly; only the redundancy of the field list keeps it short of a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4, and the description reinforces this by stating '인자가 없고', which prevents an agent from hunting for a filter argument that does not exist. No further parameter detail is applicable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('모든 정책 파일 목록을 반환한다') and additionally scopes it to package and override storage. It explicitly names the sibling it is not (sootool.policy_get) for content retrieval, so an agent can route between the two without opening either schema.

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?

Provides a clear use condition ('정책 내용이 필요하면 sootool.policy_get 을 쓴다') that separates listing metadata from fetching content. It does not, however, discuss when to prefer policy_history or policy_diff over a flat listing, so the routing guidance is partial rather than complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_proposeA

[관리자] 정책 초안을 만든다. 6단계 검증 보고서와 전년도 대비 변경점을 반환하며 아직 시행되지 않는다. 관리자 모드(SOOTOOL_ADMIN_MODE=1)가 아니면 error=admin_required 를 반환한다. 초안은 expires_at 에 만료되고 반영은 sootool.policy_activate 로 한다.

NameRequiredDescriptionDefault
nameYes
yearYes
domainYes
draft_idNo
notice_noNo
source_urlNo
yaml_contentYes
effective_dateNo
auto_fix_sha256No
sensitivity_thresholdNo

Output Schema

NameRequiredDescription
diffNo
nameNo
yearNo
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
errorNo
domainNo
messageNo
draft_idNo
expires_atNo
validationNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that the operation is non-effective ('아직 시행되지 않는다'), that it returns a 6-step validation report plus year-over-year deltas, that the draft expires at expires_at, and that a missing admin mode yields error=admin_required. These are exactly the auth, lifetime, and side-effect facts an agent needs for a write-flagged (readOnlyHint=false, idempotentHint=false) tool.

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 short sentences, front-loaded with the admin marker and the core action, followed by return behavior, failure mode, and lifecycle. No filler and no restatement of the tool name.

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?

An output schema exists, so the return-value description is a bonus, and the annotations plus admin/expiry guidance cover the behavioral side well. However, for a 10-parameter mutation tool with 0% schema description coverage, an agent still cannot tell what yaml_content must contain or what auto_fix_sha256 and sensitivity_threshold change — a real gap in the definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the schema exposes only bare titles across 10 parameters, so the description carries the full burden — yet it names none of them. domain, year, yaml_content, notice_no, source_url, effective_date, auto_fix_sha256, and sensitivity_threshold are left completely unexplained; only '초안' faintly gestures at draft_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('정책 초안을 만든다' / creates a policy draft) and immediately separates it from the sibling that actually applies changes (sootool.policy_activate). The '[관리자]' prefix further scopes who may call it, so an agent can distinguish it from policy_validate, policy_diff, and policy_activate without opening any schema.

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 a concrete precondition (SOOTOOL_ADMIN_MODE=1, otherwise error=admin_required) and names the alternative action for applying a draft (sootool.policy_activate). It does not explicitly say when to choose propose versus validate or diff, but the draft-vs-activate split covers the main routing decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_rollbackA
Destructive

[관리자] 덮어쓰기 저장소의 정책 버전 파일을 지워 패키지 기본값으로 되돌린다. 같은 연도에 덮어쓴 버전이 여럿이면 effective_date(YYYY-MM-DD)로 고르며 지정하지 않으면 ambiguous_version 을 반환한다. 지울 파일이 없으면 rolled_back 이 false 다. 관리자 모드가 필요하다.

NameRequiredDescriptionDefault
nameYes
yearYes
domainYes
effective_dateNo

Output Schema

NameRequiredDescription
nameNo
yearNo
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
errorNo
domainNo
messageNo
audit_idNo
versionsNo
rolled_backNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing what is destroyed (the override version file), the ambiguity failure mode (ambiguous_version when effective_date is omitted), and the no-op outcome (rolled_back=false), which also implies non-idempotency consistent with idempotentHint=false. It lacks detail on recoverability of the deleted file or scope of admin auth.

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 short sentences, a front-loaded [관리자] tag, and each sentence adds a distinct fact (action, disambiguation, no-op result, prerequisite) with no repetition of the schema.

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?

An output schema exists, so return-value explanation is not required, and the destructive/ambiguous behavior is covered. However, for a destructive mutation with 0% parameter documentation, leaving `domain` and `name` completely unexplained is a meaningful gap.

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 0%, so the description carries the full burden. It explains effective_date's YYYY-MM-DD format, its optionality and the ambiguous_version consequence, and ties year to version selection, but never explains what `domain` or `name` identify — half the parameters remain undefined anywhere.

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+resource (delete the policy version file in the override store to revert to package defaults) and is clearly distinct from siblings like policy_activate or policy_propose. It does not name a sibling alternative explicitly, so it stops just short of a 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 clear conditions for use: reverting an override to package default, admin mode required, effective_date needed when multiple versions exist in the same year. No explicit when-not guidance or named alternatives, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.policy_validateA
Read-onlyIdempotent

정책 YAML 문자열을 검증해 보고서(status, findings, sha256)를 반환한다. name 을 주면 도메인 스키마까지 검사하고 파일은 저장하지 않는다. auto_fix_sha256 이 참이면 계산한 해시를 fixed_sha256 으로 알려 준다. 실제 반영은 sootool.policy_propose 와 sootool.policy_activate 를 쓴다.

NameRequiredDescriptionDefault
nameNo
domainYes
yaml_contentYes
auto_fix_sha256No
sensitivity_thresholdNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
sha256No
statusYes
findingsYes
fixed_sha256No

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered; the description adds real value beyond that by stating no file is saved, that a name triggers domain-schema checking, and that auto_fix_sha256 yields a fixed_sha256. It does not discuss the sensitivity_threshold behavior or how findings are classified, leaving some behavioral detail to the output schema.

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 short sentences: purpose and return shape first, then conditional behaviors, then sibling routing. No filler, and the most decision-relevant information (what it does, what it won't do) is front-loaded.

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?

An output schema exists, so return structure need not be fully spelled out, and annotations cover the read-only/idempotent contract. Given a 5-parameter validation tool, the only real hole is the unexplained sensitivity_threshold parameter; otherwise an agent has enough to call it correctly and to know not to expect persistence.

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 0%, so the description must carry parameter meaning. It explains name (triggers domain-schema validation) and auto_fix_sha256 (returns fixed_sha256), and implicitly covers yaml_content and domain via the purpose sentence, but sensitivity_threshold is never mentioned anywhere, leaving one of five parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('정책 YAML 문자열을 검증해') and states the report shape returned (status, findings, sha256). It also distinguishes itself from the mutating siblings by naming sootool.policy_propose and sootool.policy_activate as the tools for actual application, so an agent can tell it apart without opening a schema.

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?

It clearly routes the agent away from this tool for writes ('실제 반영은 sootool.policy_propose 와 sootool.policy_activate 를 쓴다') and notes the tool does not persist files. What is missing is an explicit positive directive such as 'run this before proposing/activating', but the usage context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.skill_guideA
Read-onlyIdempotent

에이전트용 능동 활용 가이드를 반환한다. section 은 triggers(호출 신호표), examples, anti_patterns, playbooks, all(기본) 중 하나이고 lang 은 ko 또는 en 이다. lang 을 생략하면 요청 언어와 SOOTOOL_LOCALE 환경변수를 거쳐 ko 로 정해진다. 세션을 시작할 때 한 번 읽는다.

NameRequiredDescriptionDefault
langNo
sectionNoall

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
localeYes
versionYes
examplesNo
triggersNo
playbooksNo
anti_patternsNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, so the safety bar is low. The description still adds meaningful behavior: the default section is `all`, and `lang` resolves through request language then the SOOTOOL_LOCALE environment variable before falling back to `ko` — details no annotation conveys.

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 short sentences with zero filler: purpose first, then the section enum, then lang resolution, then the call-timing directive last. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape need not be described. For a two-optional-parameter read-only guide tool, the description supplies everything needed to invoke it correctly, including defaults and locale behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and largely does: it enumerates the valid `section` values and glosses `triggers` as a call-signal table, and constrains `lang` to ko/en with an explicit default-resolution chain. `examples`, `anti_patterns`, and `playbooks` are named but not characterized, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("에이전트용 능동 활용 가이드를 반환한다") and makes clear this is a meta/guidance tool rather than one of the many computation siblings. An agent can immediately tell this is not a calculator but a guide provider.

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 call timing and frequency, which is unusually actionable. It stops short of stating when-not to call (e.g., mid-session section re-reads), so it is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sootool.verify_receiptA
Read-onlyIdempotent

계산 영수증(_meta.integrity)을 재실행으로 검증한다. tool 과 arguments 로 같은 계산을 다시 실행해 입력 해시, 결과 해시, 도구 버전, 정책 해시를 대조하고, 서명이 있으면 public_key_b64 로 서명을 검증한다. valid 와 mismatches 를 반환한다. core.batch, core.pipeline 처럼 실행마다 결과가 달라지는 도구는 대상이 아니다.

NameRequiredDescriptionDefault
toolYes
receiptYes
argumentsYes
public_key_b64No
require_signatureNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
validYes
warningsYes
mismatchesYes
recomputedYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly/idempotent/closed-world, and the description stays consistent while adding real substance: the mechanism is re-execution (not a stored-value lookup), which hashes are cross-checked, and that signature verification is optional. It does not state what happens when require_signature=true and no signature exists, nor whether the re-executed call is cost-free.

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, zero filler, front-loaded with the action and then the compared fields and the exclusion. Dense but readable; nothing repeats the schema.

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?

Covers the mechanism, the compared fields, the conditional signature path, and the tool class to avoid; an output schema exists so return values needn't be spelled out. The remaining hole is the unexplored require_signature flag and failure behavior when verification cannot be performed.

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 0%, so the description must carry parameter meaning, and it does explain four of five: tool+arguments drive the re-execution, receipt is the integrity payload, public_key_b64 enables signature checks. However require_signature is never mentioned, and the expected format of `tool` (a dotted tool id like finance.fv) and the shape of the receipt object are left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (re-execute and verify) plus the exact resource (_meta.integrity receipt) and lists precisely what is compared: input hash, result hash, tool version, policy hash. It also explicitly disclaims a neighboring class of tools (core.batch, core.pipeline), so an agent can distinguish it without opening the schema.

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 a clear when-to-use trigger (a tool emitted _meta.integrity and you want it re-validated) and an explicit when-not (non-deterministic tools such as core.batch/core.pipeline). It also conditions signature checking on the presence of a signature. No alternative verification sibling exists to point at, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.anova_onewayA
Read-onlyIdempotent

둘 이상 집단의 평균 차이를 일원분산분석(one-way ANOVA)으로 검정하고 Tukey HSD 쌍별 비교를 덧붙인다. groups는 집단별 Decimal 문자열 목록(집단 2개 이상, 각 2개 이상), alpha는 유의수준 실수(기본 0.05), include_tukey 기본 True. 집단 크기가 다르면 Tukey-Kramer 방식이다. F는 유효숫자 6자리, 나머지는 10자리 문자열이다. 정규성과 등분산을 가정하므로 어긋나면 kruskal_wallis 를 쓴다.

NameRequiredDescriptionDefault
alphaNo
groupsYes
include_tukeyNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
alphaYes
traceYes계산 근거(tool, formula, inputs, steps, output)
f_statYes
p_valueYes
df_withinYes
reject_h0Yes
tukey_hsdNo
df_betweenYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), and the description adds behavioral detail beyond them: Tukey-Kramer handling for unequal group sizes and explicit output precision (F to 6 significant figures, other statistics as 10-digit strings). It does not discuss failure modes such as what error is raised for a group of size 1, which keeps it short of a 5.

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 compact sentences lead with the purpose, then parameters, then numerical behavior, then the alternative. Every sentence supplies information an agent would otherwise have to guess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return structure need not be described, yet the precision convention and the Tukey-Kramer variant are still noted. Assumptions, minimum input sizes, and the fallback test are all covered, so nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 burden and largely meets it: groups is explained as a list of per-group Decimal strings with cardinality constraints, alpha as a significance level with default 0.05, and include_tukey with its default True. It does not spell out what include_tukey=false returns, which is the only remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and statistical procedure (one-way ANOVA on group means) plus the appended Tukey HSD pairwise comparison, which distinguishes it from siblings like ttest_two_sample or kruskal_wallis. An agent can identify the tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the assumption preconditions (normality and equal variance) and explicitly routes the agent to kruskal_wallis when those are violated. It also constrains input shape (2+ groups, 2+ observations each), which tells the agent when the tool is callable at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.bootstrap_ciA
Read-onlyIdempotent

표본 평균 또는 중앙값의 부트스트랩 신뢰구간을 백분위수법으로 구한다. values는 Decimal 문자열 2개 이상, statistic은 mean 또는 median, confidence는 0과 1 사이 실수(기본 0.95), n_resamples는 100 이상 100,000 이하(기본 1000), seed 기본 42로 같은 입력이면 결과가 재현된다. float64 계산 결과를 유효숫자 10자리 문자열로 돌려준다. 표본이 매우 작으면 구간이 불안정하다.

NameRequiredDescriptionDefault
seedNo
valuesYes
statisticNomean
confidenceNo
n_resamplesNo

Output Schema

NameRequiredDescription
nYes
seedYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
ci_lowerYes
ci_upperYes
statisticYes
confidenceYes
n_resamplesYes
point_estimateYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the readOnly/idempotent annotations by disclosing the reproducibility contract (fixed seed 42, same input yields same output), the return representation (float64 values serialized to 10 significant digits), and the small-sample instability caveat. Nothing contradicts the annotations, though permission/error behavior is unmentioned.

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?

Front-loads what is computed, then parameter rules one after another, then output format and the caveat — no filler. Each clause adds a concrete constraint or behavioral fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter statistical tool with zero schema documentation, the description supplies every constraint an agent needs to form a valid call plus the output precision, and the existing output schema covers the return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 and does: it documents values (Decimal strings, minimum 2), statistic (mean or median), confidence (0-1 open interval, default 0.95), n_resamples (100–100,000, default 1000), and seed (default 42 for reproducibility). These ranges and allowed values exist only in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource: computing a bootstrap confidence interval for the sample mean or median using the percentile method. An agent can distinguish it from the parametric sibling stats.ci_mean by the explicit "bootstrap" and "percentile method" wording.

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?

Implies usage through hard constraints (values must contain 2+ Decimal strings, n_resamples >= 100) and warns that very small samples produce unstable intervals. It does not explicitly route the agent between this and stats.ci_mean or say when a non-bootstrap CI is preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.chi_square_independenceA
Read-onlyIdempotent

분할표의 두 범주형 변수가 독립인지 카이제곱 검정으로 판정해 chi2, df, p_value, 기대빈도 표를 돌려준다. observed는 관측 빈도의 2x2 이상 Decimal 문자열 행렬이다. scipy 기본값에 따라 2x2 표에는 Yates 연속성 보정이 적용된다. 결과는 유효숫자 10자리 문자열이다. 비율 자료나 기대빈도가 5 미만인 칸이 많은 표에는 부적합하다.

NameRequiredDescriptionDefault
observedYes

Output Schema

NameRequiredDescription
dfYes
chi2Yes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
p_valueYes
expectedYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover safe-read traits, and the description adds genuinely decision-relevant behavior: scipy 기본값 준수, Yates 연속성 보정 applied to 2x2 tables (which changes reported p-values), and 출력 유효숫자 10자리. It does not say how it fails on malformed input (non-numeric strings, 1-row tables), leaving one gap.

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 short sentences, front-loaded with purpose, then input format, then the Yates caveat, then the applicability limit. No padding and nothing buried.

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 single-parameter read-only test with an output schema present, the description covers purpose, input format, correction convention, precision, and misuse conditions. Only error/normalization behavior is unaddressed, which is minor given the output schema already documents returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden and does: observed is 관측 빈도의 Decimal 문자열 행렬 with a minimum 2x2 shape. It still does not state whether rows are groups vs. categories, or whether non-negative integers are required, so it is not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 카이제곱 독립성 검정 on a 분할표 — and enumerates the outputs (chi2, df, p_value, 기대빈도 표). This distinguishes it unambiguously from the probability.chi_square_pdf/cdf/ppf siblings, which compute a distribution rather than test a table.

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 exclusion: 비율 자료나 기대빈도가 5 미만인 칸이 많은 표에는 부적합하다. That tells the agent when not to use it. It does not name a sibling alternative (e.g. Fisher exact or stats.anova_oneway for continuous data), so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.ci_meanA
Read-onlyIdempotent

표본 평균의 양측 신뢰구간을 t-분포로 계산해 mean, lower, upper를 돌려준다. values는 Decimal 문자열 2개 이상, confidence는 0과 1 사이 Decimal 문자열(기본 "0.95")이다. 표준오차는 표본 표준편차(ddof=1) 기반이며 float64 계산 결과를 유효숫자 10자리 문자열로 돌려준다. confidence에 95처럼 백분율을 넣으면 오류이고, 모집단 비율의 구간에는 쓸 수 없다.

NameRequiredDescriptionDefault
valuesYes
confidenceNo0.95

Output Schema

NameRequiredDescription
meanYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
lowerYes
traceYes계산 근거(tool, formula, inputs, steps, output)
upperYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses the computation method (t-distribution, standard error from sample SD with ddof=1) and the output precision (float64 result rendered as a 10-significant-digit string), which materially affects how an agent interprets results. Annotations already carry the safety profile, and the description adds the method/rounding context that matters here.

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?

Three sentences, front-loaded with the operation and return values, then parameter formats, then error/scope limits — no restatement of the name or filler. The density is justified because each clause adds a constraint the schema does not encode.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't detail return values, yet it names mean/lower/upper anyway. Combined with full parameter constraints, the ddof=1 standard-error basis, rounding behavior, and the proportion-interval exclusion, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load and it does: `values` is specified as two or more Decimal strings, and `confidence` as a Decimal string strictly between 0 and 1 with default "0.95", plus the explicit failure mode for percentages. Both parameters have type, format, constraint, default, and error behavior documented.

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 (two-sided CI of a sample mean via t-distribution) plus the exact outputs (mean, lower, upper), so the agent knows precisely what it computes. It implicitly separates itself from stats.bootstrap_ci and proportion intervals by the closing scope note, but never names the sibling alternative, keeping it short of a 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 a clear exclusion — it cannot be used for population proportion intervals — and warns that a percentage like 95 in `confidence` is an error, which is real usage guidance. It does not route the agent to stats.bootstrap_ci or any alternative when a non-t CI is wanted, so it falls short of explicit when/when-not/alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.cohens_dA
Read-onlyIdempotent

두 독립 표본의 효과크기 Cohen's d와 소표본 보정값 Hedges's g를 계산한다. d = (a 평균 - b 평균) / 풀드 표준편차이며 a 평균이 크면 양수다. a, b는 Decimal 문자열 각 2개 이상이고 풀드 표준편차가 0이면 오류다. 결과는 유효숫자 6자리 문자열이다. 대응표본(전후 비교)에는 쓰지 않는다.

NameRequiredDescriptionDefault
aYes
bYes

Output Schema

NameRequiredDescription
dYes
n_aYes
n_bYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
hedges_gYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations the description adds real behavioral facts: minimum of 2 values per group, an error when pooled SD is zero, and a 6-significant-digit string output. It does not mention the equal-variance assumption behind the pooled SD, which is the one remaining behavioral caveat an agent might need.

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 compact sentences ordering purpose, formula/sign, input constraints plus error condition, output format, and the exclusion. Nothing is redundant and the most decision-relevant information comes first.

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 two-parameter deterministic calculation with an output schema, the definition covers inputs, error case, sign convention, and output precision. The only gap is the untold assumption of equal variances implied by pooling, which matters for correct interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (only titles "A" and "B"), but the description compensates by specifying that a and b are arrays of Decimal strings with at least two elements, and by defining a's sign direction. That covers both parameters meaningfully, though it doesn't say whether a is the treatment or control group.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (computes Cohen's d and Hedges' g), gives the exact formula, and declares the sign convention. An agent can distinguish it from stats.ttest_two_sample or stats.ttest_paired without opening any schema.

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?

Explicitly scopes the tool to two independent samples and states the exclusion "대응표본(전후 비교)에는 쓰지 않는다", which routes the agent away from the paired-sample tools. It stops short of naming the specific alternative to use instead (e.g., a paired effect-size route), so it is clear but not fully prescriptive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.descriptiveA
Read-onlyIdempotent

숫자 목록의 기술통계량(n, mean, median, variance, stdev, min, max, q1, q3)을 계산한다. values는 Decimal 문자열 2개 이상, ddof 기본 1은 표본 분산과 표준편차, 0이면 모집단 값이다. q1과 q3는 numpy 선형 보간 백분위수이고 float64 계산 결과를 유효숫자 10자리 문자열로 돌려준다. 모집단 전체 자료에는 ddof=0을 지정해야 한다.

NameRequiredDescriptionDefault
ddofNo
valuesYes

Output Schema

NameRequiredDescription
nYes
q1Yes
q3Yes
maxYes
minYes
meanYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
stdevYes
traceYes계산 근거(tool, formula, inputs, steps, output)
medianYes
varianceYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world behavior, so the safety profile is covered. The description adds genuinely new behavior: q1/q3 use numpy linear interpolation, computation is float64, and results are returned as 10-significant-digit strings — details an agent cannot infer from annotations or schema.

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 short sentences, each carrying distinct information: outputs, input constraint, ddof semantics, and percentile/precision method. The core purpose is front-loaded with no 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 two-parameter, output-schema-backed calculation tool this is nearly complete: input format, ddof meaning, numerical method, and output precision are all covered. Only edge-case behavior (non-numeric strings, rounding of the reported stdev) is left unstated, which is minor given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does so: values must be Decimal strings with at least two elements, and ddof defaults to 1 for sample variance/stdev while 0 yields population values. Both parameters gain meaning that the bare schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (계산한다) plus the exact resource (기술통계량) and enumerates all nine returned statistics (n, mean, median, variance, stdev, min, max, q1, q3). That enumeration clearly separates it from the inference-oriented siblings such as stats.ttest_one_sample or stats.ci_mean.

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 useful in-tool guidance (ddof=1 for samples, ddof=0 for full population data), but never states when to pick this tool over a sibling or that no alternative exists. Usage is implied by the statistic list rather than explicitly framed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.eta_squaredA
Read-onlyIdempotent

일원분산분석의 효과크기 eta^2(편향 있음)와 omega^2(편향 보정)를 계산하고 F, p값, 자유도도 함께 돌려준다. groups는 집단별 Decimal 문자열 목록이며 집단 2개 이상, 각 집단 2개 이상이다. eta^2 = SS_between / SS_total, 효과크기와 F는 유효숫자 6자리, p값은 10자리 문자열이다. 표본이 작으면 eta^2가 과대 추정되므로 omega^2를 함께 본다.

NameRequiredDescriptionDefault
groupsYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
f_statYes
p_valueYes
df_withinYes
df_betweenYes
eta_squaredYes
omega_squaredYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/closed-world, so the bar is lower, and the description still adds real value: the exact formula (SS_between / SS_total), output precision (6 significant digits for effect size and F, 10 decimal places for p), and a statistical caveat about small-sample bias.

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 dense sentences, front-loaded with what is computed before input format, output precision, and the interpretation caveat. No filler, though the formula and precision sentences could be condensed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be spelled out; the description nonetheless pins down precision and the returned statistics. Input format, constraints, and a usage caveat are all present, leaving nothing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: groups is a per-group list of Decimal strings, with at least 2 groups and at least 2 values per group. This fully specifies format and cardinality constraints for the single nested-array parameter.

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 computation: one-way ANOVA effect sizes eta^2 (biased) and omega^2 (bias-corrected), plus F, p, and df. It clearly differs in substance from stats.anova_oneway and stats.cohens_d, but never names a sibling to reinforce the distinction.

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?

Input constraints (2+ groups, 2+ values each) and an interpretation note ('with small samples eta^2 is inflated, so look at omega^2 too') are given, which implies the usage context. However, there is no explicit when-to-use/when-not guidance versus stats.anova_oneway or stats.cohens_d.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.kruskal_wallisA
Read-onlyIdempotent

독립 여러 집단의 분포 위치 차이를 순위 기반 Kruskal-Wallis H 검정으로 판정해 h_stat, p_value, df(집단 수-1)를 돌려준다. groups는 집단별 Decimal 문자열 목록이며 집단 2개 이상, 각 집단 1개 이상이다. 정규성 가정이 필요 없고 H는 유효숫자 6자리, p값은 10자리 문자열이다. 사후 쌍별 비교는 제공하지 않는다.

NameRequiredDescriptionDefault
groupsYes

Output Schema

NameRequiredDescription
dfYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
h_statYes
p_valueYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover read-only, idempotent, closed-world behavior, so the additional detail here carries weight: output precision formats (6 significant digits for H, 10-digit string for p) and the absence of post-hoc tests are both facts the agent could not get from the annotations. Nothing contradicts the declared safety profile.

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?

Purpose and return values are front-loaded in the first sentence, with input contract, precision, and the scope limitation following in a logical order. Four dense sentences with no filler, though the return-value sentence partly duplicates what the output schema already supplies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still specifies formats, and it adds the input contract, the assumption profile, and the scope boundary. For a single-parameter statistical test, an agent has everything required to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and groups is an untyped nested array, but the description fully defines it: a list of per-group Decimal string lists, at least two groups, at least one observation each. That is exactly the missing contract, so no further lookup is needed.

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 test (rank-based Kruskal-Wallis H), the quantity it judges (differences in distribution location across independent groups), and the outputs it returns (h_stat, p_value, df). That specificity is enough to distinguish it from the parametric stats.anova_oneway and the two-group stats.mann_whitney_u, though it never names a sibling explicitly.

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?

It gives the key selection condition (no normality assumption required), which implies the switch from ANOVA, and states an explicit exclusion: no post-hoc pairwise comparison. It stops short of naming an alternative tool for follow-up or the two-group case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.mann_whitney_uA
Read-onlyIdempotent

독립 두 표본의 분포 위치 차이를 순위 기반 Mann-Whitney U 검정으로 판정해 u_stat, p_value, n_a, n_b를 돌려준다. a, b는 Decimal 문자열 각 1개 이상, tail은 two(기본), less, greater이며 u_stat은 a 표본 기준이다. 정규성 가정이 필요 없고 u는 유효숫자 6자리, p값은 10자리 문자열이다. 같은 대상의 전후 측정에는 wilcoxon 을 쓴다.

NameRequiredDescriptionDefault
aYes
bYes
tailNotwo

Output Schema

NameRequiredDescription
n_aYes
n_bYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
u_statYes
p_valueYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so safety needs no restating; the description instead adds substantive behavior: no normality assumption, u_stat oriented to sample a, and output precision (u to 6 significant digits, p a 10-digit string). It leaves tie handling, continuity correction, and minimum sample size unstated.

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?

Front-loaded with the purpose and return values, and every sentence carries distinct information (parameters, tail options, statistical assumption, precision, alternative tool). It is a dense single block with no paragraph breaks, which slightly hinders scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no elaboration, yet the description still clarifies result precision. Required vs optional params, tail semantics, output orientation, and the sibling alternative are all covered — nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema has no enum for tail, so the description must carry the load — and it does: a and b are Decimal string arrays with at least one element each, and tail accepts two (default), less, greater. It also explains how u_stat relates to the a/b ordering, which the schema never could.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('rank-based Mann-Whitney U test for location difference between two independent samples') and enumerates the four outputs returned. It also disambiguates from the nearest sibling by naming wilcoxon for paired before/after data.

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?

Explicitly routes the paired/same-subject case to wilcoxon, which is the main sibling confusion risk. It also implies when it is appropriate ('no normality assumption required'), but does not compare against the parametric alternative stats.ttest_two_sample.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.regression_linearA
Read-onlyIdempotent

최소제곱(OLS) 선형회귀로 계수, 절편, R², 계수별 p값, 잔차를 구한다. X는 표본 수 x 특징 수의 Decimal 문자열 행렬, y는 표본 수 길이의 목록이며 표본 수는 특징 수 + 절편 수보다 커야 한다. add_intercept 기본 True이고 False면 절편은 "0"이다. p_values는 절편을 제외한 계수 순서이며 float64 계산 결과를 유효숫자 10자리 문자열로 돌려준다. 범주형 변수는 수치로 부호화해 넣어야 한다.

NameRequiredDescriptionDefault
XYes
yYes
add_interceptNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
p_valuesYes
interceptYes
r_squaredYes
residualsYes
coefficientsYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds real behavioral detail: float64 computation, results returned as 10-significant-digit strings, intercept collapsing to "0" when add_intercept is False, and p_values ordering excluding the intercept. These are output-shape and data-format traits that annotations cannot convey.

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?

Front-loaded with the computation and its outputs, then input-shape constraints, then edge-case behavior (intercept, p-value ordering, encoding). Dense but every sentence carries information; no filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, yet the description still adds the ordering of p_values and the string formatting of results. Combined with the sample-size constraint and encoding requirement, an agent has everything needed to call this correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load - and it largely does: X is described as an n_samples × n_features matrix of Decimal strings, y as a Decimal-string list of length n_samples, and add_intercept's effect on the intercept value is spelled out. The only gap is the precise precision/format expectation for the 'Decimal string' inputs.

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?

Opens with a specific verb+resource: OLS linear regression, and enumerates exactly what is computed (coefficients, intercept, R², per-coefficient p-values, residuals). An agent can tell this apart from the surrounding stats siblings, which are all hypothesis tests (t-tests, ANOVA, chi-square), without naming them explicitly.

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?

Prerequisites are stated (n_samples must exceed n_features + intercept, categoricals must be pre-encoded), which tells the agent when the call is valid. However, there is no explicit when-to-use/when-not guidance and no alternative tool is named for e.g. non-linear fits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.ttest_one_sampleA
Read-onlyIdempotent

표본 평균이 기준값 popmean과 다른지 일표본 t-검정으로 판정해 t, df(n-1), p_value, ci_95를 돌려준다. values는 Decimal 문자열 2개 이상, popmean은 Decimal 문자열, tail은 two(기본), less, greater이며 p값은 방향에 맞게 scipy가 계산한다. ci_95는 방향과 무관한 표본 평균의 95% t-구간이다. t는 유효숫자 6자리, p값은 10자리 문자열이다. 두 집단 비교에는 ttest_two_sample 을 쓴다.

NameRequiredDescriptionDefault
tailNotwo
valuesYes
popmeanYes

Output Schema

NameRequiredDescription
tYes
dfYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
ci_95Yes
traceYes계산 근거(tool, formula, inputs, steps, output)
p_valueYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses important behavior: minimum sample size, required Decimal-string inputs, scipy-based directional p-value calculation, direction-independent confidence interval behavior, and output precision formats. These details are substantive operational context rather than repetition.

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?

The description is compact and front-loads the purpose, inputs, outputs, and sibling alternative. Each sentence provides actionable information about constraints, behavior, or output formatting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description supplies the essential input constraints, directional behavior, return-value semantics, and sibling routing needed to invoke the tool correctly. Since an output schema exists, it need not fully re-document return structure, but it still appropriately summarizes key output behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by documenting all three parameters: values as two-or-more Decimal strings, popmean as a Decimal string, and tail as two/less/greater with a default of two. It also clarifies how tail affects the p-value while leaving ci_95 direction-independent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific tool purpose: a one-sample t-test comparing the sample mean against popmean. It explicitly lists the returned values (t, df, p_value, ci_95) and distinguishes the tool from the two-sample sibling.

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 description clearly routes two-group comparisons to ttest_two_sample and explains the tail option for one-sided versus two-sided tests. It does not, however, mention paired/repeated-measures alternatives such as ttest_paired, so the exclusion guidance is not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.ttest_pairedA
Read-onlyIdempotent

같은 대상의 전후 측정 등 대응표본의 평균 차이를 t-검정으로 판정해 t, df(n-1), p_value, ci_95(a 평균 - b 평균의 95% 구간)를 돌려준다. a, b는 같은 길이의 Decimal 문자열 목록(2개 이상)이고 같은 위치끼리 짝이다. tail은 two(기본), less, greater. t는 유효숫자 6자리, p값은 10자리다. 서로 다른 대상의 두 집단에는 ttest_two_sample 을 쓴다.

NameRequiredDescriptionDefault
aYes
bYes
tailNotwo

Output Schema

NameRequiredDescription
tYes
dfYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
ci_95Yes
traceYes계산 근거(tool, formula, inputs, steps, output)
p_valueYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and closed-world, so the safety profile is covered. The description adds value beyond that: df is fixed at n-1, the CI is defined as the 95% interval for (mean a - mean b), and output precision is pinned (t to 6 significant digits, p to 10 digits). It does not state behavior on mismatched lengths or degenerate input, so not a 5.

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 dense sentences, front-loaded with purpose and outputs, then pairing constraints, then tail options, then the sibling disambiguation last. Every sentence carries information, though the digit-precision sentence is the least critical and could be trimmed.

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?

An output schema exists, yet the description still defines the return values and their precision, and it covers the pairing contract and tail options — enough to call the tool correctly. Minor gaps (mismatched-length handling, direction semantics of one-sided tails) keep it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden and largely does: a and b are same-length lists of Decimal strings with at least 2 elements, paired element-by-element, and tail accepts two (default), less, greater — the enum the schema fails to declare. It stops short of explaining which direction 'less' vs 'greater' tests, which is the main remaining ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (paired-sample t-test on mean differences) and enumerates the exact outputs (t, df(n-1), p_value, ci_95). It also explicitly names the sibling it is not — ttest_two_sample for independent groups — so an agent can route correctly without reading either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the selecting condition for this tool (same-subject before/after, paired observations) and an explicit exclusion with the alternative named: '서로 다른 대상의 두 집단에는 ttest_two_sample 을 쓴다.' Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.ttest_two_sampleA
Read-onlyIdempotent

독립 두 표본의 평균 차이를 t-검정으로 판정해 t, df, p_value, ci_95(a 평균 - b 평균의 95% 구간)를 돌려준다. a, b는 Decimal 문자열 각 2개 이상, equal_var 기본 False는 Welch 검정(df는 소수 가능)이고 True면 Student 검정이다. tail은 two(기본), less, greater이며 df는 문자열이다. 같은 대상의 전후 측정에는 ttest_paired 를 쓴다.

NameRequiredDescriptionDefault
aYes
bYes
tailNotwo
equal_varNo

Output Schema

NameRequiredDescription
tYes
dfYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
ci_95Yes
traceYes계산 근거(tool, formula, inputs, steps, output)
p_valueYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent safety profile, and the description adds real behavior: the a−b direction of the ci_95 interval, the ≥2 value minimum per sample, and the fact that Welch's df can be fractional. It does not discuss assumptions (independence, approximate normality) that affect validity of the result.

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?

Information-dense with no filler; each sentence covers outputs, input types, parameter behavior, or the sibling alternative. It shifts from return values to parameters to output typing a bit abruptly, and the closing 'df는 문자열이다' sits oddly after the tail list.

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 an output schema present, the description does not need to enumerate return fields, yet it names the key ones; inputs, defaults, and the alternative tool are all covered. The main omission is the statistical assumption context that determines whether a t-test is the right choice at all.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 — and it does: a/b are Decimal strings with a minimum of two values, equal_var maps False→Welch and True→Student, and tail's allowed values (two/less/greater) with default are spelled out even though the schema declares no enum. This is meaning the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and statistic ('독립 두 표본의 평균 차이를 t-검정으로 판정') plus the exact statistics returned, and explicitly contrasts with the sibling ttest_paired for before/after designs. An agent can distinguish it from ttest_one_sample and ttest_paired without opening either schema.

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?

Explicitly routes the agent to ttest_paired for repeated measurements on the same subject, and the stated default equal_var=False signals Welch as the recommended path. It does not mention when a nonparametric sibling such as mann_whitney_u would be preferable, so the exclusion set is incomplete rather than absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stats.wilcoxonA
Read-onlyIdempotent

Wilcoxon 부호순위 검정으로 대응표본의 차이 또는 단일 표본의 0 기준 위치 이동을 판정해 w_stat, p_value, n을 돌려준다. b를 주면 a와 b는 같은 길이(1개 이상)의 짝지은 Decimal 문자열 목록이고, b를 생략하면 a 자체를 차이값으로 보고 0과 비교한다. tail은 two(기본), less, greater. w는 유효숫자 6자리, p값은 10자리 문자열이다. 독립 두 집단에는 mann_whitney_u 를 쓴다.

NameRequiredDescriptionDefault
aYes
bNo
tailNotwo

Output Schema

NameRequiredDescription
nYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
w_statYes
p_valueYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so the safety profile is covered. The description adds valuable behavioral detail beyond them: output precision (w to 6 significant figures, p as a 10-digit string) and the default tail. It does not discuss edge cases like zero differences or ties, which keeps it short of a 5.

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?

It is dense but every sentence earns its place: the purpose and return values come first, followed by parameter semantics, tail options, precision, and sibling routing. There is no filler or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three parameters, an output schema, and read-only annotations, the description covers everything needed to call the tool correctly: input format, the b-omitted branch, tail options, and result precision. No critical gap remains for an agent to make a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 and does so: it defines a and b as Decimal string arrays, constrains them to equal length with at least one element, and explains the default-null semantics of b. It also enumerates the tail values (two default, less, greater), which the schema does not do via enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact test ('Wilcoxon signed-rank'), states both supported cases (paired differences or single-sample location shift from 0), and lists the returned values (w_stat, p_value, n). It also names the sibling it is not (mann_whitney_u), so an agent can distinguish it from the independent-sample test without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the condition for supplying b (paired data of equal length ≥ 1) versus omitting it (a is treated as the differences and compared to 0). It also explicitly routes independent two-group comparisons to mann_whitney_u, giving both when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

symbolic.diffA
Read-onlyIdempotent

sympy 로 n차 기호 도함수를 구하고, variables 로 값을 치환하면 그 지점의 수치를 Decimal 문자열(50자리)로 함께 반환한다. var 는 미분 변수, order 는 1~20(기본 1). variables 가 없거나 치환 후에도 기호가 남거나 numeric_eval=false 이면 numeric 은 null 이다. 연산은 5초로 제한되며 sympy extra 가 필요하다.

NameRequiredDescriptionDefault
varYes
orderNo
variablesNo
expressionYes
numeric_evalNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
numericYes
derivativeYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/closed-world, and the description adds real operational context: a 5-second execution limit, the requirement for the sympy extra, and the exact conditions under which `numeric` is null (no variables, residual symbols after substitution, or numeric_eval=false). That is meaningful behavior beyond the structured fields.

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 compact sentences with the core operation front-loaded, then parameter meaning, then null conditions, then runtime/dependency constraints. Dense but every sentence carries information; no 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?

With an output schema present, return shape needn't be spelled out, yet the description usefully clarifies the `numeric` field's null semantics. Timeout, dependency, and parameter bounds complete the picture; only explicit sibling routing is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 burden, and it does: `var` is the differentiation variable, `order` is 1-20 with default 1, `variables` is the substitution map, and `numeric_eval` disables numeric output. Only `expression` is left unexplained, which is self-evident from the tool's purpose.

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: computes an n-th order symbolic derivative via sympy, and optionally returns a numeric Decimal string at a substituted point. This is clearly distinguishable from the numeric-derivative siblings (math.diff_central, math.diff_five_point) by the word '기호' (symbolic), though it never names those siblings explicitly.

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?

Usage is implied rather than stated: the presence of `variables` and `numeric_eval` suggests when numeric output is wanted, and the null conditions hint at fallback behavior. But there is no explicit when-to-use/when-not guidance and no reference to math.diff_central or symbolic.solve as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

symbolic.solveA
Read-onlyIdempotent

sympy 로 방정식을 기호 풀이한다. equation 은 'lhs = rhs' 또는 단일식(=0 가정), var 는 풀 변수이며 variables 값은 풀기 전에 치환한다. solutions 에는 실수해만 50자리 Decimal 문자열로 담기고(소수 리터럴과 variables 값은 정확한 유리수로 해석), 복소해와 기호해는 symbolic 에만 담기며 numeric_eval=false 면 solutions 는 빈 리스트다. 연산은 5초로 제한되며 sympy extra 가 필요하다.

NameRequiredDescriptionDefault
varYes
equationYes
variablesNo
numeric_evalNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
symbolicYes
solutionsYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: variables are substituted before solving, only real solutions are returned as 50-digit Decimal strings, complex and symbolic solutions appear only in the symbolic field, numeric_eval=false empties solutions, and a 5-second timeout applies. Annotations already cover safety, but the description adds essential operational context.

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?

The core action is front-loaded and every clause adds information. The single dense paragraph is efficient, though its length makes it slightly harder to scan than a bulleted structure would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex symbolic-solving operation, the description covers input format, substitution behavior, output shape distinctions, numeric_eval effects, timeout, and dependency requirements. An output schema exists, so return-value details need not be repeated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains equation format, the role of var, pre-substitution of variables values, exact rational interpretation of decimal literals and variables, and the effect of numeric_eval on solutions — covering all four parameters with useful semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('sympy 로 방정식을 기호 풀이한다') and immediately clarifies input forms (lhs = rhs or single expression assumed =0). This is clearly distinguishable from numeric solvers and from sibling symbolic.diff.

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?

The description implies when the tool is appropriate (symbolic solving via sympy) and notes the sympy extra requirement, but it does not explicitly compare against alternatives such as core.solve_for, math.polynomial_roots, or geometry.matrix_solve. Usage is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.capital_gains_krA
Read-onlyIdempotent

한국 양도소득세를 계산한다(소득세법 제89조·제95조·제103조·제104조). 금액은 원 단위 Decimal 문자열, 보유·거주 기간은 만 년 정수다. 1세대1주택 비과세와 12억 초과 고가주택 안분, 장기보유특별공제(표 1, 보유·거주 표 2), 기본공제 250만원, 단기보유·분양권·비사업용 토지·미등기·조정대상지역 다주택 중과 세율 중 해당 경로의 큰 세액을 적용한다. 세액은 decimals(기본 0)자리 HALF_UP 이고 지방소득세는 포함하지 않는다. 보유 2년 이상 다주택 중과 제외 판정에는 transfer_date 가 필요하다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
asset_typeNo
sale_priceYes
is_one_houseYes
holding_yearsYes
transfer_dateNo
is_unregisteredNo
residence_yearsNo
include_proposedNo
acquisition_priceYes
is_non_business_landNo
apply_basic_deductionNo
multi_house_surchargeNonone
acquired_in_regulated_areaNo

Output Schema

NameRequiredDescription
taxYes
gainYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
exemptYes
tax_baseYes
ltct_rateYes
applied_rateYes
taxable_gainYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
ltct_deductionYes
policy_versionYes적용된 정책 문서의 식별 정보
basic_deductionYes
policy_audit_idYes
rate_candidatesYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
taxable_portion_gainYes
policy_effective_dateYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnly/idempotent already declared, the description still adds meaningful behavior: amounts are Decimal strings in won, periods are whole-year integers, rounding is HALF_UP at `decimals` (default 0), and local income tax is explicitly excluded from the result. That last clause is a genuinely useful scope caveat. It does not describe failure modes or validation behavior (e.g., what happens with missing transfer_date).

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?

Dense but front-loaded: the core action and legal basis come first, then input conventions, then the tax-path enumeration, then rounding/output caveat. No filler sentences, though the long enumeration clause is harder to parse than it needs to be.

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?

Output schema exists, so return values needn't be described, and the safety profile is covered by annotations. But for a 16-parameter, high-complexity statutory calculator, several optional parameters (as_of, asset_type, include_proposed, year) are undocumented in both schema and description, leaving real ambiguity about how to configure a correct call.

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% across 16 parameters, so the description must compensate. It does explain the units/conventions for the price and period fields, the role of decimals, the basic deduction of 2.5M KRW (apply_basic_deduction), residence_years (표 2), and the transfer_date dependency, but leaves as_of, asset_type, year semantics, and include_proposed entirely unexplained.

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+resource ('한국 양도소득세를 계산한다') and anchors it with the governing statute articles (제89조·제95조·제103조·제104조), which makes the scope unambiguous. It does not, however, name or distinguish itself from lookalike siblings such as realestate.kr_transfer_tax or tax.kr_comprehensive_income_tax, so sibling differentiation is left to inference.

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?

The description implies when it applies by enumerating the tax paths it handles (1세대1주택 비과세, 고가주택 안분, 중과세율, 분양권, 비사업용 토지, 미등기) and flags that transfer_date is required for the multi-house surcharge exclusion test. It gives no explicit when-to-use/when-not guidance and never directs the agent to an alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_comprehensive_income_taxA
Read-onlyIdempotent

종합소득세 신고 흐름(소득금액 합산, 종합소득공제, 과세표준, 산출세액, 세액공제, 결정세액, 지방소득세 10%)을 계산한다. 금액은 원 단위 Decimal 문자열, year 필수, 원 미만 버림. 근로(총급여), 사업, 이자·배당(2천만원 초과 시 배당가산 10%, 제62조 비교과세, 배당세액공제), 연금(총연금액), 기타소득(60% 의제경비, 300만원 이하 분리과세)을 받는다. 결손금 통산, 중간예납·기납부세액, 외국납부세액공제는 계산하지 않고 특별공제는 합계로 넣는다. 근로소득만 있는 연말정산에는 payroll.kr_year_end_tax_settlement 를 쓴다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
dependentsNo
total_salaryNo0
elderly_countNo
pension_grossNo0
single_parentNo
children_countNo
disabled_countNo
dividend_otherNo0
business_incomeNo
interest_incomeNo0
woman_deductionNo
business_revenueNo0
include_proposedNo
business_expensesNo0
other_tax_creditsNo0
other_income_amountNo0
newborn_birth_ordersNo
other_income_aggregateNo
other_income_deductionsNo0
apply_standard_tax_creditNo
diligent_business_operatorNo
dividend_gross_up_eligibleNo0
other_income_deemed_revenueNo0
other_income_actual_expensesNo0

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
notesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
total_taxYes
decided_taxYes
computed_taxYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
taxable_incomeYes
basic_deductionYes
policy_audit_idYes
child_tax_creditYes
local_income_taxYes
policy_citationsYes정책의 근거 조문
dividend_gross_upYes
other_tax_creditsYes
total_tax_creditsYes
other_income_totalYes
personal_deductionYes
dividend_tax_creditYes
labor_income_amountYes
policy_effective_toYes
referenced_policiesYes
standard_tax_creditYes
additional_deductionYes
comprehensive_incomeYes
financial_comparisonNo
pension_income_amountYes
policy_effective_dateYes
business_income_amountYes
financial_income_totalYes
labor_income_deductionYes
financial_income_amountYes
labor_income_tax_creditYes
other_income_aggregatedYes
other_income_deductionsYes
pension_income_deductionYes
other_income_separate_taxYes
financial_income_aggregatedYes
financial_income_separate_taxYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses real behavioral constraints: amounts must be Decimal strings in won, sub-won truncation, year is mandatory, and — critically — that loss carryover, interim/withheld taxes, and foreign tax credits are NOT computed while special deductions must be passed as totals. A minor tension exists between 'special deductions as totals' and the presence of granular params like dependents/children_count, but this is scope nuance rather than a contradiction.

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?

Front-loaded with the verb and the calculation scope, then packed with high-density constraints in a single paragraph; nearly every clause adds actionable information (format, required param, exclusions, sibling routing). It is dense rather than padded, though the income-type enumeration is compressed to the point of being hard to parse.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. However, for a 26-parameter statutory tax computation, several parameters and the interaction between aggregate special-deduction input and the granular dependent/child/elderly parameters remain unresolved, leaving the agent unable to populate the full input confidently.

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?

With 26 parameters at 0% schema description coverage, the description carries the whole burden and only partly does so: it maps total_salary, business_income, interest/dividend, pension_gross, and other-income fields to their tax treatment, and specifies the Decimal-string/won format. Opaque parameters such as as_of, include_proposed, other_tax_credits, apply_standard_tax_credit, and diligent_business_operator receive no explanation at all, so an agent must guess their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (calculating the Korean comprehensive income tax filing flow) and enumerates the full pipeline: income aggregation, deductions, tax base, computed tax, tax credits, determined tax, and the 10% local income tax. It is immediately distinguishable from the named sibling payroll.kr_year_end_tax_settlement, which is explicitly routed elsewhere.

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?

It explicitly states the alternative for the employment-only year-end case (payroll.kr_year_end_tax_settlement) and lists scope exclusions (loss carryover, interim prepayment, foreign tax credit), which tells the agent when this tool is the wrong choice. It does not, however, position itself against other closely related siblings such as tax.kr_income or tax.kr_pension_income, leaving some selection ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_corporateA
Read-onlyIdempotent

한국 법인세를 계산한다(법인세법 제55조, 조세특례제한법 제132조). taxable_income 은 과세표준(원, Decimal 문자열)이고 누진 구간 산출세액(base_tax)에서 reductions 를 빼되 최저한세에 미달하는 감면은 배제해 tax 를 정한다. is_small_rental_corp 는 제55조제1항제2호 세율, is_small 과 sme_graduation_period 는 최저한세율을 바꾼다. 감면 전 과세표준이 다르면 pre_deduction_income 을 따로 넣어야 최저한세가 맞는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
is_smallNo
roundingNoHALF_UP
reductionsNo0
taxable_incomeYes
include_proposedNo
is_small_rental_corpNo
pre_deduction_incomeNo
sme_graduation_periodNonone

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
base_taxYes
breakdownYes
reductionsYes
minimum_taxYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes
minimum_tax_adjustmentYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the description is free to spend its words on domain behavior — progressive bracket base tax, subtraction of reductions, and the minimum-tax floor that can exclude reductions. That is genuinely useful context beyond structured fields, though it says nothing about supported year ranges or the shape/failure modes of the result.

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 dense sentences, front-loaded with purpose and statute citations before drifting into parameter edge cases. Efficient, though the middle sentence packs several conditions and could be split for scanability.

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?

An output schema exists, so return values need not be described, and the core computation chain is covered. Still, for an 11-parameter statutory calculator, the silent parameters (as_of, include_proposed, rounding, decimals) and the absence of any statement about effective-year/version behavior leave real gaps.

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?

With 11 parameters at 0% schema description coverage and no enums, the description must carry the parameter burden. It well explains taxable_income, pre_deduction_income, reductions, is_small_rental_corp, is_small, and sme_graduation_period, but leaves as_of, decimals, rounding, include_proposed, and the year range undocumented — roughly half the surface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('한국 법인세를 계산한다') and pins it to statutory articles (법인세법 제55조, 조세특례제한법 제132조), which unambiguously separates it from income tax, gift tax, and the other tax.* siblings.

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 context of use is clear from the statute-scoped framing, and the final sentence tells the caller the condition under which pre_deduction_income must be supplied. It stops short of naming alternatives or exclusions (e.g., personal income tax vs. corporate tax), so it misses the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_education_tax_addA
Read-onlyIdempotent

한국 지방교육세를 본세 x 부가세율로 계산한다(지방세법 제151조). base_tax 는 재산세·취득세·등록면허세 등 본세액(원, 0 이상 Decimal 문자열), rate 기본 0.20(0 이상 1 이하), rounding 기본 DOWN, decimals 기본 0이라 원 미만을 버린다. 본세마다 세율이 다르므로 rate 를 확인하지 않고 기본값을 쓰면 틀릴 수 있다.

NameRequiredDescriptionDefault
rateNo0.20
base_taxYes
decimalsNo
roundingNoDOWN

Output Schema

NameRequiredDescription
rateYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
base_taxYes
education_taxYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, closed-world, so the description correctly spends its words elsewhere: rounding default DOWN truncates sub-won amounts, decimals default 0, rate bounds 0–1, base_tax must be a non-negative Decimal string. It does not describe the response shape, but an output schema exists to carry that.

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 tight sentences: formula and legal basis first, then parameter semantics, then the risk warning. No filler, and the most decision-relevant point (rate varies by base tax) is placed last for emphasis rather than buried.

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 an output schema present and annotations covering the safety profile, the description only needs to nail inputs and caveats, which it does for all four parameters. The remaining gap is that it warns rates differ per base tax without indicating the actual per-tax rates, so an agent still cannot resolve the right rate on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (titles only), so the description must compensate and largely does: it documents all four parameters with units, types, defaults and bounds. The main gap is that rounding only says 'default DOWN' without listing the accepted values (UP/HALF_UP/etc.), leaving an enum-like choice undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (한국 지방교육세를 ... 계산한다) plus the exact formula (본세 x 부가세율) and the statutory basis (지방세법 제151조). The resource is distinct from siblings such as tax.kr_registration_license_tax or realestate.kr_local_property, so the agent can pick it out without ambiguity.

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?

The closing sentence gives real usage caution — do not blindly use the default rate because each base tax carries a different rate — which is decent context. However, it never names an alternative tool or states when to prefer a sibling (e.g. a full local-tax calculator vs. this add-on step), so tool-selection guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_eitcA
Read-onlyIdempotent

한국 근로장려금(조특법 §100의3·§100의5·§100의7) 산정. year 는 소득 귀속연도, 금액은 원 단위 숫자 문자열. 가구유형(single/one_earner/dual_earner)과 부부의 근로 총급여액, 사업 총수입금액(업종별 조정률 적용), 종교인소득, 재산 합계액으로 요건을 판정하고 시행령 별표 11 산정표 금액에 재산 1.7억원 이상 50%, 기한 후 95% 감액과 최소지급액 규칙을 적용한다. 산정표가 천원 단위라 별도 반올림은 없다. 자녀장려금, 반기 신청, 체납 충당, 국적·부양자녀·전문직 요건은 판정하지 않는다. 사업소득에 필요경비를 뺀 소득금액을 넣는 것은 오용이다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
other_incomeNo0
earned_incomeNo0
household_typeYes
property_totalYes
business_incomeNo
include_proposedNo
late_applicationNo
religious_incomeNo0
spouse_earned_incomeNo0
spouse_business_incomeNo
spouse_religious_incomeNo0

Output Schema

NameRequiredDescription
yearYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
sectionYes
eligibleYes
eitc_amountYes
late_reducedYes
minimum_ruleYes
table_amountYes
total_incomeYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
business_linesYes
household_typeYes
policy_versionYes적용된 정책 문서의 식별 정보
property_limitYes
property_totalYes
reduced_amountYes
total_earningsYes
policy_audit_idYes
spouse_earningsYes
policy_citationsYes정책의 근거 조문
property_reducedYes
applicant_earningsYes
ineligible_reasonsYes
total_income_limitYes
policy_effective_toYes
table_bracket_lowerNo
table_bracket_upperNo
policy_effective_dateYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare read-only/idempotent/closed-world; the description goes well beyond by disclosing the reduction rules actually applied (재산 1.7억원 이상 50%, 기한 후 95%, 최소지급액) and that no rounding occurs because the 표 is in 천원 단위. That is the kind of calculation behavior an agent cannot infer from structured fields.

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?

Dense but front-loaded: purpose and unit conventions first, then computation rules, then exclusions/misuse. Every clause contributes (legal basis, amount formatting, reduction rules, rounding note), though the sentence length makes it hard to scan.

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 13-param, rules-heavy calculator with an output schema, the description supplies the eligibility judgment logic, statutory basis, reduction percentages, and boundary exclusions. Gaps are the undocumented as_of and include_proposed parameters; return values needn't be explained since an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the burden and largely does: it defines year as 귀속연도, formats as 원 단위 숫자 문자열, enumerates household_type values, and explains what business_income (업종별 조정률), religious_income, property_total, and the spouse_* fields mean. It omits as_of and include_proposed, so not fully compensating for 13 params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('한국 근로장려금 … 산정') with the governing statute (§100의3/§100의5/§100의7). No sibling computes EITC, and the scope is unambiguous from the first clause.

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?

Explicitly lists what it does NOT judge (자녀장려금, 반기 신청, 체납 충당, 국적·부양자녀·전문직 요건) and flags a concrete misuse case (passing net-of-expense business income). Clear when-not guidance, though it doesn't route to a named alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_giftA
Read-onlyIdempotent

한국 증여세를 계산한다(상속세및증여세법 제53조·제53조의2·제56조·제57조·제69조). 금액은 원 단위 Decimal 문자열이다. 관계별 증여재산공제에서 10년 내 기공제액을 빼고, marriage_birth_gift=true 이면 직계존속 증여에 혼인·출산 공제 1억을 더하며, 10~50% 누진세율에 generation_skip=true 일 때 세대생략 할증(30%, 미성년 20억 초과 40%)과 기한 내 신고세액공제 3%를 반영한다. tax 는 신고세액공제 전 금액이고 공제 후는 tax_after_filing_credit 이다. 10년 내 기공제액은 prior_deduction_used_10y 로 직접 넣는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
roundingNoHALF_UP
gift_amountYes
relationshipYes
timely_filingNo
generation_skipNo
include_proposedNo
marriage_birth_giftNo
prior_deduction_used_10yNo0
prior_marriage_birth_deductionNo0

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
deductionYes
gift_amountYes
computed_taxYes
taxable_baseYes
filing_creditYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
total_deductionYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes
tax_after_filing_creditYes
marriage_birth_deductionYes
generation_skip_surchargeYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, idempotent, and closed-world behavior. The description adds useful behavioral context: amounts are Decimal strings in KRW, prior deductions are entered directly via prior_deduction_used_10y, and tax versus tax_after_filing_credit is distinguished.

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?

The description is dense but front-loads the purpose and then proceeds to calculation rules and output semantics. The legal citations and detailed calculation notes are relevant to a tax calculator, though the paragraph is packed and could be structured more cleanly.

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?

This is a complex 12-parameter calculator with an output schema, and the description covers the overall method and several critical flags. Still, important parameter semantics remain missing, especially allowed relationship values and the meaning of as_of and include_proposed, so it is only minimally complete for correct invocation.

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 must carry parameter meaning. It explains key domain-specific parameters such as marriage_birth_gift, generation_skip, prior_deduction_used_10y, and the Decimal-string amount convention, but leaves relationship values, year, as_of, include_proposed, rounding, decimals, and prior_marriage_birth_deduction undocumented.

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: '한국 증여세를 계산한다' (calculates Korean gift tax), and cites the governing tax law articles. It is clearly distinct in domain from the inheritance-tax sibling, but it does not explicitly name alternatives or route the agent between related tax tools.

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?

The description explains internal calculation conditions such as marriage_birth_gift and generation_skip, which implies when those options apply. However, it gives no explicit guidance on when to choose this tool versus tax.kr_inheritance or other tax calculators, so usage must be inferred from the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_incomeA
Read-onlyIdempotent

한국 종합소득세·근로소득세 산출세액을 소득세법 제55조 기본세율(6~45% 누진, 정책 YAML)로 계산한다. taxable_income 은 공제를 모두 뺀 과세표준(원, Decimal 문자열)이고 year 는 필수다. 구간별 세액과 실효·한계세율을 돌려주며 rounding(기본 HALF_UP)으로 decimals(기본 0)자리에 맞춘다. 근로소득공제와 세액공제는 반영하지 않으므로 총급여를 그대로 넣으면 안 된다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
roundingNoHALF_UP
taxable_incomeYes
include_proposedNo

Output Schema

NameRequiredDescription
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

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.

tax.kr_inheritanceA
Read-onlyIdempotent

한국 상속세를 계산한다(상속세및증여세법 제18조제21조·제24조·제26조·제69조). 금액은 원 단위 Decimal 문자열이다. 기초·인적공제와 일괄공제 5억 중 큰 금액, 배우자공제(법정상속분 한도와 30억 중 작은 값, 최소 5억), 공제 종합한도를 적용한 뒤 1050% 누진세율로 산출하고 세대생략 할증(제27조, 산출세액 x 받은 재산 비율 x 30%, 미성년 20억 초과 40%)을 더한 뒤 신고세액공제 3%를 따로 보여 준다. gross_estate 는 사전증여 가산 후 과세가액이며 할증 비율의 분모다. 배우자가 있으나 상속받지 않았으면 has_spouse=true 를 지정한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
roundingNoHALF_UP
has_spouseNo
gross_estateYes
use_lump_sumNo
elderly_countNo
timely_filingNo
children_countNo
pre_gift_addedNo0
include_proposedNo
spouse_sole_heirNo
minor_years_totalNo
spouse_inheritanceYes
bequest_to_non_heirsNo0
renounced_inheritanceNo0
spouse_legal_share_capNo
skipped_generation_minorNo
disabled_life_years_totalNo
skipped_generation_amountNo0

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
deductionsYes
computed_taxYes
gross_estateYes
taxable_baseYes
filing_creditYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes
tax_after_filing_creditYes
generation_skip_surchargeYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, so the safety profile is covered. Beyond that, the description discloses the actual computation pipeline — deduction ordering, the 5억 lump-sum vs basic/personal deduction max, spouse deduction caps (legal share, 30억, 5억 floor), the 10~50% progressive brackets, the generation-skipping surcharge formula, and that the 3% filing credit is reported separately.

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?

Front-loaded with purpose, then the calculation order, with no filler sentences — each clause maps to a rule actually applied. It is a dense single block though, and the statutory citations plus parenthetical conditions make it harder to scan than it needs to be.

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?

An output schema exists, so return values need not be described, and the description gives enough of the tax logic to trust the result. However, for a 21-parameter tool with zero schema descriptions, several behaviorally important inputs (notably year, which drives the statutory version, and flags like include_proposed and spouse_sole_heir) are left unexplained, so an agent can still misuse it.

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?

With 0% schema description coverage the description must carry parameter meaning, and it does explain the money convention (원 단위 Decimal 문자열), gross_estate (과세가액 after pre-gift addition, denominator for the surcharge ratio), has_spouse, and implicitly use_lump_sum and timely_filing. But roughly half of the 21 parameters — year, as_of, decimals, rounding, include_proposed, spouse_sole_heir, spouse_legal_share_cap, renounced_inheritance, bequest_to_non_heirs, disabled_life_years_total — receive no explanation, leaving material gaps in a 21-param tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: '한국 상속세를 계산한다' (calculates Korean inheritance tax), anchored to the statutory articles 제18조~제21조·제24조·제26조·제69조. It is unmistakably distinct from the sibling gift tax (tax.kr_gift) and income tax calculators without needing to open the schema.

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?

Usage is only implied by the tool name and the subject matter; there is no explicit 'use this when…'/ 'not for gift tax, use tax.kr_gift instead' routing. The one directive present ('배우자가 있으나 상속받지 않았으면 has_spouse=true 를 지정한다') is parameter guidance rather than when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_local_income_taxA
Read-onlyIdempotent

한국 개인 지방소득세를 소득세 본세의 10% 고정 비율로 계산한다(지방세법 제92조). income_tax 는 이미 산출된 소득세액(원, 0 이상 Decimal 문자열)이며 rounding 기본 DOWN, decimals 기본 0이라 원 미만을 버린다. 과세표준이나 소득금액을 넣으면 안 되고 소득세 산출 후 그 세액을 넣어야 한다.

NameRequiredDescriptionDefault
decimalsNo
roundingNoDOWN
income_taxYes

Output Schema

NameRequiredDescription
rateYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
income_taxYes
local_income_taxYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so safety is covered. The description adds genuinely non-obvious behavior: the fixed 10% rate, the legal article, and the default truncation of sub-won amounts (rounding DOWN, decimals 0). It does not mention any lower-bound/negative-input rejection beyond stating income_tax must be ≥ 0.

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?

Three sentences: formula first, then input semantics/defaults, then the anti-pattern warning. Every sentence carries information the agent cannot get from the schema or annotations; nothing is repeated from structured fields.

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?

An output schema exists, so return values need no explanation, and the description covers formula, input meaning, and default behavior adequately for a simple 3-param calculator. The only meaningful omission is the set of accepted rounding modes, which matters given the missing enum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and largely does: income_tax is defined as an already-computed tax amount in won as a Decimal string ≥ 0, and the defaults and effect of rounding/decimals are explained. The gap is that 'rounding' has no enum and the description never lists the permitted values (e.g. UP/HALF_UP), leaving the agent to guess valid strings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (계산한다 / 한국 개인 지방소득세) plus the exact formula (소득세 본세의 10% 고정 비율) and the statutory basis (지방세법 제92조). This makes it unambiguously distinct from tax.kr_income and tax.kr_comprehensive_income_tax, which produce the base tax this tool consumes.

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?

Explicitly says what NOT to pass ('과세표준이나 소득금액을 넣으면 안 되고 소득세 산출 후 그 세액을 넣어야 한다'), which is exactly the sequencing guidance an agent needs to avoid double-computing tax. It does not name the sibling tool (e.g. tax.kr_income) that should be called first, so routing is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_pension_incomeA
Read-onlyIdempotent

한국 사적연금(연금계좌) 인출 원천징수, 분리과세 판정, 연금소득공제를 계산한다(소득세법 제129조, 제14조, 제47조의2). 금액은 원 문자열이며 private_pension_amount 는 나이별 5·4·3%(종신 3%), deferred_retirement_amount 는 이연퇴직소득으로 연금외수령 세율의 70·60·50%, non_pension_withdrawal_amount 는 연금외수령 15%. 지방소득세 10% 별도, 원 미만 절사. 사적연금 연 1,500만원 이하 분리과세. 공적연금 간이세액표 원천징수는 계산하지 않으므로 공적연금 월 원천징수액 용도로 쓰면 오용이다.

NameRequiredDescriptionDefault
ageNo
yearYes
as_ofNo
include_proposedNo
lifetime_annuityNo
actual_receipt_yearsNo
public_pension_amountNo0
private_pension_amountNo0
deferred_retirement_amountNo0
annual_private_pension_totalNo
deferred_retirement_tax_rateNo
non_pension_withdrawal_amountNo0

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
notesYes
traceYes계산 근거(tool, formula, inputs, steps, output)
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
withholding_totalYes
policy_effective_toYes
private_pension_taxYes
private_pension_rateYes
total_pension_amountYes
pension_income_amountYes
policy_effective_dateYes
withholding_local_taxYes
private_pension_amountYes
withholding_income_taxYes
deferred_retirement_taxYes
deferred_retirement_rateYes
pension_income_deductionYes
deferred_retirement_ratioYes
deferred_retirement_amountYes
non_pension_withdrawal_taxYes
separate_taxation_eligibleYes
non_pension_withdrawal_rateYes
separate_taxation_thresholdYes
annual_private_pension_totalYes
separate_taxation_option_taxYes
non_pension_withdrawal_amountYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/idempotent/closed-world, so this is a safe calculator; the description goes well beyond that by disclosing local income tax at 10% separately, truncation below one won, the 15M KRW annual separate-taxation threshold, and the 5/4/3% age-tiered rates. It omits how the two rate sources (deferred_retirement_tax_rate vs. the 70/60/50% schedule) interact when both are supplied.

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?

Front-loads the purpose, then moves to amount semantics, then rates/rounding, then exclusions — a logical order with no filler sentences. It is a single dense block, and a short labeled segmentation would make the parameter rules easier to scan, but every clause carries information.

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?

An output schema exists, so return values need not be described, and the core rate mechanics are covered. For a 12-parameter domain tool, however, roughly half the inputs have no stated meaning anywhere, which leaves an agent guessing about as_of, include_proposed, and actual_receipt_years.

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 0% across 12 parameters, so the description must carry the load. It does explain the four amount fields and the string-amount convention, plus age tiers via '나이별 5·4·3%(종신 3%)', but leaves as_of, include_proposed, actual_receipt_years, annual_private_pension_total, deferred_retirement_tax_rate and public_pension_amount's role entirely undefined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource set: '한국 사적연금(연금계좌) 인출 원천징수, 분리과세 판정, 연금소득공제를 계산한다', backed by explicit statutory articles. It also names its boundary against public-pension withholding, which cleanly separates it from payroll.kr_national_pension_benefit and tax.kr_withholding_simple.

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 negative case is explicit and concrete: using it for 공적연금 월 원천징수액 is called an 오용 (misuse). It does not name the correct alternative tool by name, nor does it spell out preconditions such as which combination of inputs to supply, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_registration_license_taxA
Read-onlyIdempotent

부동산 등기의 등록면허세와 지방교육세(20%)를 계산한다(지방세법 제28조제1항제1호, 제151조). 저당권, 전세권, 지상권, 지역권, 임차권, 경매신청, 가압류, 가처분, 가등기는 과세표준(원 문자열) × 2/1000, 6천원 미만이면 6천원이고 other 는 건당 6천원이다. 세액은 10원 미만 버림. 소유권 보존과 이전 등기는 취득세로 과세되므로 다루지 않는다. 임차권 과세표준을 보증금으로 넣는 것은 오용이며 월 임대차금액을 넣는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
tax_baseNo
include_proposedNo
registration_typeYes

Output Schema

NameRequiredDescription
rateYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
tax_baseYes
total_taxYes
computed_taxYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
tax_base_kindYes
policy_versionYes적용된 정책 문서의 식별 정보
minimum_appliedYes
policy_audit_idYes
policy_citationsYes정책의 근거 조문
registration_taxYes
registration_typeYes
local_education_taxYes
policy_effective_toYes
policy_effective_dateYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/closed-world. The description adds substantial behavioral detail beyond that: the 2/1000 rate, the 6,000-won minimum, the 6,000-won-per-case 'other' rule, and 10-won truncation. It does not describe what the return payload looks like, but that is partly covered by the output schema.

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?

Front-loads the purpose and legal basis, then the rate rules, then the exclusions/misuse warning. Dense but efficient, with no filler sentences, though the run-on enumeration of transaction types is heavy.

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 5-parameter tax calculator with an output schema and full annotations, the description covers the core computation and exclusions well. Remaining gaps are the undocumented as_of and include_proposed parameters, which an agent cannot fully infer.

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 must carry parameter meaning. It does clarify tax_base (won-denominated string) and enumerates registration_type categories, but leaves year, as_of, and include_proposed completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (계산한다) and specific resources (등록면허세 and 지방교육세) with legal citations. It clearly distinguishes itself from the acquisition-tax siblings by explicitly excluding 소유권 보존 and 이전 등기.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states what it does NOT cover (ownership preservation and transfer registration, which are taxed as acquisition tax) and warns against a specific misuse (putting a deposit instead of monthly rent as the leasehold tax base). This routes the agent correctly versus realestate.kr_acquisition_tax.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_rural_special_taxA
Read-onlyIdempotent

한국 농어촌특별세를 계산한다(농어촌특별세법 제5조). mode=base 는 본세액 x 10%, mode=reduced 는 감면세액 x 20%이고 amount 는 해당 금액(원, 0 이상 Decimal 문자열)이다. rounding 기본 DOWN, decimals 기본 0이라 원 미만을 버린다. 과세표준이 아니라 본세 또는 감면액을 넣어야 하며 mode 를 바꾸면 세율이 달라진다.

NameRequiredDescriptionDefault
modeNobase
amountYes
decimalsNo
roundingNoDOWN

Output Schema

NameRequiredDescription
modeYes
rateYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
amountYes
rural_special_taxYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds real behavioral context beyond them: default rounding DOWN with decimals=0 means sub-won amounts are truncated, and switching mode changes the applicable rate. It does not flag which rounding tokens are accepted beyond the default.

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 dense sentences with no filler: purpose and statute first, then the mode rates, then input type constraint, then defaults. Every sentence supplies information an agent needs to call the tool correctly.

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?

Output schema exists, so return-value explanation is unnecessary, and the key correctness hazards (wrong base amount, mode changing the rate, truncation) are all covered. The missing piece is the accepted rounding vocabulary, which matters given zero schema description coverage on a free-form string parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and mostly does: amount is defined as a KRW Decimal string ≥ 0 that is NOT the tax base, mode's two values are given with their rates, and rounding/decimals defaults are stated. The only gap is that valid rounding values other than DOWN are never enumerated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('한국 농어촌특별세를 계산한다') and anchors it to Rural Special Tax Act Article 5. The two modes with their exact rates are laid out, so an agent can distinguish this from siblings like tax.kr_education_tax_add or realestate.kr_local_property without opening the schema.

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?

Explicitly states which mode to pick and what each one computes (base = 본세액 × 10%, reduced = 감면세액 × 20%), and adds a genuine misuse warning: pass the main tax or reduction amount, not the tax base. It does not name a sibling alternative or a when-not-to-use case, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_securities_transactionA
Read-onlyIdempotent

한국 주식 양도 시 증권거래세와 농어촌특별세를 계산한다(증권거래세법 제8조, 시행령 제5조 탄력세율, 농특세법 제5조). transfer_amount 는 양도가액(원), market 은 kospi, kosdaq, konex, k_otc(금융투자협회 장외), other(그 밖의 장외·비상장, 기본세율 0.35%). year 는 결제일 연도이며 2023~2026 을 지원한다. 세액은 원 미만 절사. 2026 코스피는 0.05%와 농특세 0.15%로 실효 0.20%. 대체거래소 거래와 비과세 양도는 반영하지 않는다. 체결일 연도로 year 를 넣는 것은 오용이다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
marketYes
transfer_amountYes
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
marketYes
total_taxYes
rate_basisYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
securities_taxYes
policy_audit_idYes
transfer_amountYes
policy_citationsYes정책의 근거 조문
rural_special_taxYes
policy_effective_toYes
securities_tax_rateYes
policy_effective_dateYes
rural_special_tax_rateYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only and idempotent behavior; the description adds substantive traits such as truncation below 1 won, supported years 2023–2026, a rate example, and unsupported transaction types. It does not explain how as_of or include_proposed change the calculation, leaving some behavioral ambiguity.

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?

Purpose is front-loaded and most sentences add useful constraints or parameter meaning. The paragraph is dense but not bloated; legal citations and the rate example are justified, though a parameter-list structure would be slightly clearer.

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?

Output schema handles return values and annotations cover safety, so the description appropriately focuses on calculation scope, inputs, and limitations. Completeness is reduced by the undocumented optional parameters and by not stating how proposed rates are included.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It defines transfer_amount units, market accepted values including OTC/unlisted, and year as settlement year with a 2023–2026 range, but omits as_of and include_proposed entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: computes Korean securities transaction tax and rural special tax on stock transfers, with legal citations. The stock-transfer and securities-transaction-tax focus distinguishes it from broader sibling tools such as tax.kr_rural_special_tax or tax.capital_gains_kr.

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 clear domain context and exclusions: it does not cover ATS trades or tax-exempt transfers, and warns that year must be the settlement year, not the trade execution year. It stops short of naming alternative sibling tools for capital-gains or standalone rural special tax cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_simplified_vatA
Read-onlyIdempotent

한국 간이과세자 부가가치세를 계산한다(부가가치세법 제46조·제61조·제63조·제69조). 금액은 원 단위 Decimal 문자열이다. 공급대가 x 업종별 부가가치율 x 10%에서 세금계산서등 수취분 0.5%와 신용카드 등 매출세액공제를 빼며, 공급대가가 4,800만원 미만이면 납부 면제로 0을 돌려준다. 모든 금액은 원 미만을 버리고 일반과세자 계산에는 쓸 수 없다. 간이과세 기준(1억4백만원) 초과여도 계산은 하며 threshold_exceeded 로만 표시하고, prior_year_supply 를 생략하면 당해 공급대가로 판정한다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
supply_valueYes
business_typeYes
include_proposedNo
input_tax_amountNo0
card_sales_amountNo0
prior_year_supplyNo
restricted_businessNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
net_payableYes
vat_payableYes
input_creditYes
supply_valueYes
business_typeYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
threshold_basisYes
policy_citationsYes정책의 근거 조문
value_added_rateYes
card_sales_creditYes
nonpayment_exemptYes
threshold_exceededYes
policy_effective_toYes
applicable_thresholdYes
policy_effective_dateYes

TDQS

A4.3/5.0
Behavior5/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 substantial behavior: the exact formula, 0.5% invoice deduction, card-sales credit, floor rounding, the 4,800만원 exemption returning 0, and the 1억4백만원 threshold flagging behavior. This is rich context beyond structured fields.

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?

Front-loads the purpose then packs formula, rounding, exemption, and threshold rules efficiently into a few dense sentences. Slightly dense but every sentence carries functional information.

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 statutory calculation, the description covers the core mechanics and edge cases, and since an output schema exists it needn't explain return values (though it helpfully explains threshold_exceeded). The main gap is the four undocumented input parameters.

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 0% (only titles), so the description must compensate. It explains supply_value (Decimal in won), input_tax_amount, card_sales_amount, and especially prior_year_supply's omission behavior, but leaves year, as_of, include_proposed, and restricted_business entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (계산한다) and resource (한국 간이과세자 부가가치세) with legal citations (Articles 46/61/63/69). It distinguishes itself from general-VAT siblings by explicitly saying it cannot be used for general taxpayer calculation.

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?

Explicit exclusions are present: '일반과세자 계산에는 쓸 수 없다' and the note that exceeding the 1억4백만원 threshold still computes, only flagging threshold_exceeded. It also clarifies the prior_year_supply omission fallback, though it does not name a specific alternative tool to route to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_vehicle_taxA
Read-onlyIdempotent

한국 승용자동차 자동차세 연세액과 지방교육세(비영업용 30%)를 계산한다(지방세법 제127조, 제128조, 제151조). 배기량은 cc 정수, 차령기산일은 YYYY-MM-DD(보통 최초 신규등록일)이다. 비영업용은 차령 3년부터 연 5%, 최대 50% 경감하고 annual_payment 로 1월, 3월, 6월, 9월 연납 공제(이자율 5%)를 적용한다. 세액은 기분마다 10원 미만 버림. 승합, 화물, 특수차, 신규등록 일할계산, 조례 세율 조정은 다루지 않으며, 차령을 연식 차이로 넣으면 기산일 규칙과 어긋난다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
business_useNo
vehicle_typeNopassenger
age_start_dateNo
annual_paymentNonone
displacement_ccNo
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
per_cc_rateNo
business_useYes
vehicle_typeYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
total_payableYes
annual_paymentYes
first_half_taxYes
policy_versionYes적용된 정책 문서의 식별 정보
base_annual_taxYes
displacement_ccNo
policy_audit_idYes
second_half_taxYes
policy_citationsYes정책의 근거 조문
annual_vehicle_taxYes
local_education_taxYes
policy_effective_toYes
vehicle_tax_payableYes
policy_effective_dateYes
vehicle_age_first_halfNo
vehicle_age_second_halfNo
annual_payment_deductionYes
local_education_tax_appliesYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the description's job is to add computation semantics — and it does: 5%/yr age reduction from year 3 capped at 50%, the Jan/Mar/Jun/Sep prepayment discount at 5% interest, and truncation below 10 won per installment. It does not say what the output payload contains, but an output schema exists so that burden is already met.

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?

Single paragraph, front-loaded with the one-line purpose before rules, and every clause carries real information (statute citations, rounding rule, misuse warning). It is dense and run-on rather than structured — a bulleted split of rules vs. exclusions would scan faster — but nothing is 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 calculation tool with an output schema, the description supplies the formula inputs, the reduction schedule, the rounding convention, and the exclusion list, which is close to everything an agent needs to call it correctly. The gap is the two undocumented parameters (as_of, include_proposed) plus a non-exhaustive vehicle_type value set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and largely does: displacement_cc (integer cc), age_start_date (YYYY-MM-DD, usually first registration, explicitly not model-year delta), annual_payment (which months, which interest rate), and business_use (drives the 30% education tax and reduction eligibility). as_of and include_proposed are never explained, leaving two of eight parameters uninterpretable from either source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (calculate Korean passenger-car annual vehicle tax + local education tax) plus the governing statute articles. It also enumerates the exact scope boundaries (non-business 30%, displacement, vehicle age), so an agent can distinguish this from the many other tax.* tools without opening the schema.

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?

Explicit exclusions are given: 승합/화물/특수차, pro-rated new registration, and municipal ordinance rate adjustments are out of scope, and entering age as model-year difference is called out as a misuse. It lacks one thing for a top score — naming the alternative tool an agent should reach for when the vehicle is a van/truck or when proration is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.kr_withholding_simpleA
Read-onlyIdempotent

근로소득 월 원천징수세액을 소득세법 시행령 별표 2 간이세액표로 구한다. monthly_salary 는 비과세·학자금을 뺀 월급여액(원, Decimal 문자열)이며 천원 미만을 버려 [이상, 미만) 행을 찾고, 10,000천원 초과 산식, 공제대상가족 11명 초과 규정, 8세 이상 20세 이하 자녀 차감을 적용한다. 세액은 원 단위이며 지방소득세 10%는 포함하지 않는다. dependents 는 본인 포함 인원이고 연간 정산(연말정산)에는 쓰지 않는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
dependentsYes
children_8_20No
monthly_salaryYes
include_proposedNo

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
lookupYes
table_taxYes
withheld_taxYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
child_reductionYes
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/closed-world, and the description adds real substance: the tax amount excludes the 10% local income tax, sub-1000 KRW is truncated to select the [inclusive, exclusive) row, the >10,000천원 formula path, the >11 dependents rule, and the child 8-20 deduction. It says nothing about how `year`, `as_of`, or `include_proposed` affect which table or rules are applied, which is a meaningful gap for a tax calculation.

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?

Dense but front-loaded: the tool's purpose and calculation method come first, followed by parameter semantics and exclusions. Every sentence carries information, though the parameter notes could be grouped more tightly rather than interleaved with the calculation rules.

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?

An output schema exists, so return values need not be explained, and the calculation method is well covered. However, with 0% schema description coverage and three parameters (year, as_of, include_proposed) undocumented anywhere, an agent cannot determine what `as_of` or `include_proposed` mean — a real ambiguity for a versioned tax table.

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 0%, so the description carries the burden. It gives strong semantics for monthly_salary (KRW Decimal string, excludes non-taxable pay and tuition), dependents (includes the taxpayer), and children_8_20 (the 8-20 age deduction), but leaves year, as_of, and include_proposed entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+method: computes monthly wage withholding tax using the Enforcement Decree's simplified tax table (별표 2 간이세액표). This is clearly distinguishable from siblings like payroll.kr_year_end_tax_settlement or payroll.kr_salary, and the computational basis is named explicitly.

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?

Explicitly excludes the annual settlement case ("연간 정산(연말정산)에는 쓰지 않는다"), which routes the agent away from this tool for year-end work. It does not name the alternative tool directly, so the agent must infer that kr_year_end_tax_settlement handles that case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax.progressiveA
Read-onlyIdempotent

임의의 누진세율 구간표로 세액을 계산한다. taxable_income 은 0 이상의 Decimal 문자열, brackets 는 오름차순 {upper, rate} 목록이며 마지막 upper 는 null, rate 는 0.1 처럼 소수다. 구간은 하한 초과 상한 이하이고 구간별 세액 합계를 rounding(기본 HALF_UP)으로 decimals(기본 0)자리에 맞춘다. 법정 세율표를 직접 입력해 쓰면 개정을 반영하지 못하므로 정책을 읽는 kr_income 등을 우선 쓴다.

NameRequiredDescriptionDefault
bracketsYes
decimalsNo
roundingNoHALF_UP
taxable_incomeYes

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
marginal_rateYes
effective_rateYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: it discloses the bracket boundary convention (lower exclusive, upper inclusive), that per-bracket amounts are summed then rounded, and the defaults for rounding mode and decimals. It doesn't discuss edge cases like zero income or invalid bracket ordering, which keeps it short of a 5.

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?

Front-loaded with purpose, then input conventions, then rounding behavior, then the sibling warning — a logical order with no filler. It is dense, packing several rules into long clauses, which costs a bit of readability but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation; what an agent still needs — input formats, bracket semantics, rounding control, and a warning about policy drift — is all present. Nothing required to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and nested bracket items are untyped objects, so the description carries the full burden — and it does: income format, bracket item shape ({upper, rate}), ordering and terminal null rule, rate format, plus defaults for rounding and decimals. This is exactly the compensation the schema gap requires.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('임의의 누진세율 구간표로 세액을 계산한다') and immediately contrasts itself with the policy-driven siblings (kr_income). An agent can tell this is the generic/arbitrary-bracket engine versus the statutory Korean tax tools without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-not guidance: hand-entering statutory tables fails to reflect amendments, so prefer kr_income and similar policy-reading tools. It also states the input conventions that make the tool usable (non-negative Decimal string, ascending brackets, last upper null).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_us.capital_gainsA
Read-onlyIdempotent

미국 연방 자본이득세를 계산한다. 장기(long)는 0%/15%/20% 구간을 신고 유형별로 적용하며 ordinary_taxable_income 위에 양도소득을 쌓아 과세하고, 단기(short)는 그 증가분에 일반 소득세율을 쓴다. apply_niit=true 이면 순투자소득세 3.8%를 더한다. 금액은 USD Decimal 문자열이고 기본은 소수 둘째 자리 HALF_UP이다. ordinary_taxable_income 을 생략하면 0으로 보므로 다른 소득이 있으면 반드시 넣어야 한다.

NameRequiredDescriptionDefault
gainYes
magiNo
termNolong
yearYes
as_ofNo
decimalsNo
roundingNoHALF_UP
apply_niitNo
filing_statusYes
include_proposedNo
ordinary_taxable_incomeNo

Output Schema

NameRequiredDescription
taxYes
niitYes
termYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
methodYes
ltcg_taxYes
breakdownYes
niit_baseYes
filing_statusYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
policy_versionYes적용된 정책 문서의 식별 정보
taxable_incomeYes
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
policy_effective_dateYes
ordinary_policy_versionYes
ordinary_taxable_incomeYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/closed-world, and the description adds real behavioral detail beyond them: gains are stacked on top of ordinary income, NIIT adds 3.8% when apply_niit=true, and rounding defaults to 2 decimals HALF_UP. It stops short of noting any limits or how year/as_of affect bracket selection.

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?

Five sentences, each front-loaded with distinct information (purpose, bracket mechanics, NIIT, numeric format, defaulting trap). No filler or repetition.

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?

An output schema exists so return values need no explanation, but for an 11-parameter, zero-coverage tax tool the description omits critical semantics for magi (NIIT threshold input), as_of (law version) and include_proposed (proposed legislation), which an agent cannot infer from the schema alone.

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 0% across 11 parameters, so the description must carry the load. It explains term, apply_niit, ordinary_taxable_income, decimals/rounding and filing_status indirectly, but leaves magi, as_of, include_proposed and year entirely undefined—meaningful gaps for a tax calculator.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (미국 연방 자본이득세를 계산한다) and immediately details the two regimes (long-term 0/15/20% brackets vs short-term ordinary rates), which cleanly separates it from tax_us.federal_income and tax.capital_gains_kr.

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 a concrete usage rule that an agent could easily get wrong: omitting ordinary_taxable_income defaults to 0, so it must be supplied when other income exists. It does not, however, explicitly route the agent away from the KR capital-gains or federal-income siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_us.federal_incomeA
Read-onlyIdempotent

미국 연방 소득세(일반 세율)를 계산한다. IRS 2025·2026 tax year, 7개 누진 구간, 4개 신고 유형이며 qualifying_surviving_spouse 는 공동 신고 표를 쓴다. 금액은 USD Decimal 문자열이고 기본은 소수 둘째 자리 HALF_UP이다. apply_standard_deduction=true 이면 taxable_income 을 AGI 로 보고 표준공제를 뺀다. 이미 공제를 뺀 과세표준에 true 를 주면 공제가 두 번 빠지고, 장기 양도소득이나 FICA 는 반영하지 않는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
decimalsNo
roundingNoHALF_UP
filing_statusYes
taxable_incomeYes
include_proposedNo
apply_standard_deductionNo

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
filing_statusYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
standard_deductionYes
policy_effective_toYes
policy_effective_dateYes
taxable_income_after_deductionYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds real substance beyond them: the bracket structure, the QSS-uses-joint-table rule, the USD Decimal input convention, the default HALF_UP/two-decimal rounding, and a concrete double-deduction failure mode. The scope exclusions further prevent silent misuse.

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?

Front-loaded with purpose and scope, then parameter-relevant rules and caveats; each sentence contributes a distinct constraint. It is dense for a single paragraph but not padded, with only minor redundancy between the deduction rule and the double-deduction warning.

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?

An output schema exists, so return formatting need not be described, and the description covers the tax logic, unit/rounding conventions, and misuse traps well. The only shortfall is the two undocumented optional parameters, which slightly under-equips the agent for a full-fidelity call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 8 parameters, so the description carries the load, and it explains year, decimals, rounding, filing_status (including QSS mapping), taxable_income format, and apply_standard_deduction in detail. Two parameters, as_of and include_proposed, are never mentioned, leaving a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('미국 연방 소득세(일반 세율)를 계산한다') and bounds it by year (2025·2026), bracket count, and filing types. The final clause explicitly excludes long-term capital gains and FICA, which maps onto siblings tax_us.capital_gains and tax_us.fica, so an agent can separate it from the other US tax tools without opening a schema.

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?

It gives clear context (ordinary-rate federal income tax, ordinary income only) and says what is out of scope (capital gains, FICA), plus a specific warning about when apply_standard_deduction should and should not be true. It stops short of naming the alternative tools by exact name, so routing depends on inference from the domain exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_us.ficaA
Read-onlyIdempotent

미국 FICA 급여세(IRC 3101, 3111) 근로자·고용주 부담분과 자영업세 SECA(IRC 1401, 순이익의 92.35%)를 과세연도 정책으로 계산한다. 금액은 USD 연간 합계 문자열, 세목별로 decimals 자리 반올림(기본 HALF_UP 2자리). 추가 Medicare 0.9%는 고용주 원천징수(20만 달러 초과)와 filing_status 별 신고 정산(25만/12.5만/20만)을 나눠 낸다. 사회보장 기준액은 고용주 한 곳 기준이며 복수 고용주 초과징수 환급, 선택적 계산법, RRTA, 배우자 자영업 소득 합산은 다루지 않는다. 오용 예: 급여 1회분을 연간 임금으로 넣기.

NameRequiredDescriptionDefault
modeNoemployee
yearYes
as_ofNo
wagesNo0
decimalsNo
roundingNoHALF_UP
net_profitNo0
filing_statusNo
include_proposedNo
other_medicare_wagesNo0

Output Schema

NameRequiredDescription
modeYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
employeeNo
employerNo
medicare_taxNo
net_earningsNo
below_minimumNo
filing_statusYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
medicare_wagesNo
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
policy_effective_toYes
self_employment_taxNo
social_security_taxNo
policy_effective_dateYes
self_employment_totalNo
additional_medicare_taxNo
social_security_wage_baseYes
additional_medicare_liabilityNo
self_employment_tax_deductionNo
social_security_taxable_wagesNo
social_security_taxable_earningsNo
additional_medicare_liability_baseNo
additional_medicare_filing_thresholdNo
additional_medicare_withholding_baseNo
additional_medicare_withholding_thresholdNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, deterministic, and closed-world. The description adds substantial domain-specific behavior: it explains how additional Medicare 0.9% is split between employer withholding and filing_status-based settlement, clarifies that social security base is per-employer, and states the output format (USD annual total strings) and rounding policy. This goes well beyond the safety profile in 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?

The description is dense but front-loaded, starting with the core purpose and then layering rounding rules, Medicare nuances, limitations, and a misuse example. Every sentence adds necessary information without redundancy, making it efficient for a complex calculation tool.

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?

Given the tool's complexity (10 parameters, no schema descriptions), the description provides strong context on tax logic, rounding, and limitations, and an output schema exists so return values need not be detailed. However, it omits explanations for several parameters (mode, as_of, include_proposed, other_medicare_wages), leaving some gaps for an agent to infer.

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?

With 0% schema description coverage, the description compensates for several parameters: year (tax-year policy), wages (annual total), net_profit (92.35% of net profit for SECA), decimals/rounding (rounding behavior and default HALF_UP), and filing_status (thresholds for additional Medicare). However, it leaves mode, as_of, include_proposed, and other_medicare_wages undocumented, so it only partially fills the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the exact taxes calculated (FICA under IRC 3101/3111 and SECA under IRC 1401) and distinguishes the tool from siblings like federal_income by focusing solely on payroll and self-employment taxes. It also clarifies the scope as a tax-year policy calculation, leaving no ambiguity about what the tool does.

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 description explicitly lists what the tool does not cover (multiple employer over-withholding refunds, optional calculation methods, RRTA, spouse self-employment income aggregation) and provides a concrete misuse example ('putting a single pay period's salary as annual wages'). It does not name alternative tools to use instead, but the exclusions and misuse guidance give clear context for when to use or avoid this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_us.state_taxA
Read-onlyIdempotent

미국 주 소득세를 계산한다(CA, NY, TX). 신고 유형별 누진 구간과 주별 표준공제를 반영하고 TX 는 소득세가 없어 0이다. NY 는 조정총소득(state_agi)이 107,650 을 넘으면 세액 환수(recapture) 워크시트를, CA 는 과세표준 1,000,000 초과분에 1% 가산세를 적용한다. 금액은 USD Decimal 문자열이고 기본은 소수 둘째 자리 HALF_UP이다. 연도별 지원 범위가 다르고(CA 2025), 지방세나 FICA 는 포함하지 않는다.

NameRequiredDescriptionDefault
yearYes
as_ofNo
stateYes
decimalsNo
roundingNoHALF_UP
state_agiNo
filing_statusYes
taxable_incomeYes
include_proposedNo
apply_standard_deductionNo

Output Schema

NameRequiredDescription
taxYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
stateYes
traceYes계산 근거(tool, formula, inputs, steps, output)
breakdownYes
recaptureNo
surchargeNo
filing_statusYes
marginal_rateYes
policy_sha256Yes
policy_sourceYes
policy_statusYes
effective_rateYes
has_income_taxYes
policy_versionYes적용된 정책 문서의 식별 정보
policy_audit_idYes
policy_citationsYes정책의 근거 조문
standard_deductionYes
policy_effective_toYes
policy_effective_dateYes
taxable_income_after_deductionYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description discloses meaningful behavior: TX returns 0, NY uses a recapture worksheet above a state_agi threshold, CA applies an extra 1% above 1,000,000, and rounding defaults to HALF_UP. These details materially affect how an agent should interpret and trust the result.

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?

The description is compact and front-loaded: it starts with the core calculation, then adds state-specific rules, formatting, and exclusions. Every sentence carries useful domain information.

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?

Given the output schema and read-only annotations, the description covers the main calculation rules, supported states, formatting, and exclusions. It is not fully complete because year support ranges are only partially specified and some optional parameters remain ambiguous.

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% across 10 parameters, and the description compensates for only some of them: state, year, filing status, state_agi, taxable income, decimals, and rounding are at least implied. It leaves optional parameters such as as_of, include_proposed, and the exact role of apply_standard_deduction unexplained, so clear gaps remain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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: calculates US state income tax for CA, NY, and TX. It also distinguishes the scope from neighboring tax tools by saying local taxes and FICA are not included.

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?

It clearly establishes when the tool applies: state income tax for CA, NY, or TX, with special notes for TX zero tax, NY recapture, and CA additional tax. It does not explicitly name sibling alternatives such as tax_us.federal_income or tax_us.fica, but the exclusion of FICA and local taxes gives useful routing context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.convertA
Read-onlyIdempotent

pint 로 물리 단위를 변환한다. magnitude 는 Decimal 문자열, from_unit 과 to_unit 은 pint 단위 이름(meter, foot, km 등)이고 차원이 다르거나 모르는 단위는 오류이다. 결과 magnitude 는 문자열이며 1E+3 같은 지수 표기가 나올 수 있다. 섭씨·화씨는 끝자리 오차가 생기므로 units.temperature 를 쓴다.

NameRequiredDescriptionDefault
to_unitYes
from_unitYes
magnitudeYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
magnitudeYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations the description discloses real behavioral traits: dimensional mismatch or unknown units raise an error, and the output magnitude is a string that may use exponent notation such as 1E+3. It stops short of describing any rounding behaviour for the general case, but given an output schema exists this is solid disclosure.

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 compact sentences, each contributing something distinct: purpose, parameter formats, error condition, output format, and the temperature reroute. Nothing is repeated and the most decision-relevant content comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter read-only converter with an output schema, the description covers input formats, failure modes, output quirks, and the one dangerous alternative. Nothing an agent needs in order to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description carries the full burden and does so: magnitude is a Decimal string, from_unit and to_unit are pint unit names with concrete examples (meter, foot, km). All three parameters gain meaning not present in the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (physical unit conversion via pint) and explicitly distinguishes itself from units.temperature for Celsius/Fahrenheit. An agent can tell exactly what this tool does and which sibling handles the temperature edge case.

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 description gives one explicit exclusion: use units.temperature for Celsius/Fahrenheit because of trailing-digit rounding. It does not address the other unit-specific siblings (units.pressure_convert, units.energy_convert, units.data_size_convert, units.time_small_convert), leaving the agent to infer which converter handles which dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.data_size_convertA
Read-onlyIdempotent

데이터 크기 단위를 바이트 기준으로 변환한다. mode 'si'(b, B, kB, MB, GB, TB, PB, 1000 배, b 는 비트, 기본)와 'iec'(B, KiB, MiB, GiB, TiB, PiB, 1024 배)는 각 표의 단위만, 'mixed' 는 두 표를 함께 허용한다. magnitude 는 0 이상 Decimal 문자열이고 단위는 대소문자를 구분한다(KB 는 오류, kB 만 유효).

NameRequiredDescriptionDefault
modeNosi
to_unitYes
from_unitYes
magnitudeYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
magnitudeYes

TDQS

A4/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 description focuses on domain behavior and adds genuinely useful facts: strict case sensitivity with 'KB' being an error, which unit tables each mode accepts, and that magnitude must be a non-negative Decimal string. It does not describe output shape, but an output schema exists so that burden is covered.

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 no filler, front-loaded on the core action before drilling into mode and validation rules. The unit lists are long but each item earns its place because the schema offers no enums.

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?

Given four parameters with zero schema documentation, a read-only/idempotent annotation profile, and an existing output schema, the description covers everything needed to call it correctly. A brief note on what the returned value looks like or how invalid from_unit/to_unit combinations are reported would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all four parameters, and it does: 'mode' is enumerated with its default and per-mode unit tables, 'from_unit'/'to_unit' are constrained by case sensitivity and table membership, and 'magnitude' is constrained to a non-negative Decimal string. This adds far more meaning than the bare string-typed schema fields.

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 ('데이터 크기 단위를 바이트 기준으로 변환한다') that clearly identifies a data-size unit conversion. It is distinguishable from generic siblings like units.convert or engineering.si_prefix_convert in practice, but never names or contrasts them, leaving the agent to infer the boundary.

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?

Usage is implied by the unit tables and default mode, and the description explains how to pick between 'si'/'iec'/'mixed', which is real routing guidance. However, there is no statement of when this tool should be chosen over units.convert or si_prefix_convert, and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.energy_convertA
Read-onlyIdempotent

에너지 단위를 J 기준 Decimal 계수로 변환한다. 지원 단위는 J, kJ, cal, kcal, eV, BTU, Wh, kWh 이며 대소문자를 구분하고 magnitude 는 Decimal 문자열이다. cal 은 열화학 칼로리(4.184 J)이고 결과는 magnitude 와 unit 이다. 목록에 없는 단위(MJ, 국제표 칼로리 등)는 오류이다.

NameRequiredDescriptionDefault
to_unitYes
from_unitYes
magnitudeYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
magnitudeYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds real operational context on top: case sensitivity, Decimal-string magnitude, the thermochemical definition of cal (4.184 J), and that out-of-list units raise an error. It does not discuss precision/rounding of the Decimal coefficient, which is the one remaining behavioral unknown.

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 tight sentences, each earning its place: unit set, case sensitivity plus input encoding, the cal conversion factor, and the error condition. Constraints are front-loaded before edge cases.

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?

An output schema exists, and the description still names the return shape (magnitude and unit) while covering error behavior and encoding requirements. The only missing piece is routing for cases outside the supported set, where an agent must guess to fall back to units.convert.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with three undocumented required params, so the description carries the burden and does compensate: magnitude must be a Decimal string, from_unit/to_unit must be drawn from the case-sensitive unit list. It stops short of stating explicitly which parameter is the source versus target unit or the accepted magnitude syntax (sign/exponent form).

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 the exact supported unit set (J, kJ, cal, kcal, eV, BTU, Wh, kWh), so an agent knows precisely the domain. It does not, however, reference the closest sibling units.convert for non-energy units, so sibling disambiguation is left implicit.

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?

Usage boundaries are implied through the supported-unit list and the explicit statement that unlisted units (MJ, international-table calorie) produce an error. That tells the agent what inputs are valid but never states when to prefer this tool over units.convert or units.pressure_convert.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.fx_convertA
Read-onlyIdempotent

amount * rate 를 to_ccy 의 소수 자릿수로 반올림해 amount(문자열)와 currency 를 반환한다. 자릿수는 JPY, KRW 등 0, USD 등 2, KWD 등 3 이고 표에 없는 통화는 2 이다. rounding 은 HALF_EVEN(기본), HALF_UP, DOWN, UP, FLOOR, CEIL. rate 는 from_ccy 에서 to_ccy 방향의 양수이며 환율을 조회하지는 않는다.

NameRequiredDescriptionDefault
rateYes
amountYes
to_ccyYes
from_ccyYes
roundingNoHALF_EVEN

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
amountYes
currencyYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely non-obvious behavior: the half-even default rounding mode, the full alternate-rounding list, the per-currency decimal table (JPY/KRW=0, USD=2, KWD=3, others=2), and that rate is a positive from→to directional value with no lookup. It stops short of stating error conditions (e.g. non-positive rate, unknown currency handling), so not a 5.

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 tight sentences with the computation and return shape front-loaded, followed by precision rules, rounding options, and the rate caveat. Dense but every sentence carries information; nothing is 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 pure-function tool with an output schema and safety annotations, this covers the semantics an agent needs: what is computed, how it is rounded, what precision applies, and that no rate lookup happens. Only the absence of sibling routing and error-case notes keeps it from full marks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there are no enums, so the description carries the full burden, and it largely does: rounding's six legal values plus default, rate's direction and positivity, to_ccy's role in determining precision, and amount's string output form. The one gap is the expected string format/precision of the input amount.

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 first sentence gives a specific verb-chain and output: multiply amount by rate, round to to_ccy's minor units, return an amount string plus currency. It is unmistakably a currency conversion, but it never distinguishes itself from sibling units.convert or units.fx_triangulate, which an agent could easily confuse it with.

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?

The closing clause 'rate 는 ... 환율을 조회하지는 않는다' usefully tells the agent it must supply its own rate rather than expecting a lookup, which implies usage context. However, there is no explicit statement of when to pick this over units.convert or units.fx_triangulate, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.fx_triangulateA
Read-onlyIdempotent

중간 통화를 거치는 삼각 환산 amount * rate1 * rate2 를 to_ccy 의 소수 자릿수로 한 번만 반올림해 amount(문자열)와 currency 를 반환한다. rate1 은 from_ccy 에서 via_ccy, rate2 는 via_ccy 에서 to_ccy 방향의 양수이며 중간 금액은 반올림하지 않는다. rounding 기본값은 HALF_EVEN 이다.

NameRequiredDescriptionDefault
rate1Yes
rate2Yes
amountYes
to_ccyYes
via_ccyYes
from_ccyYes
roundingNoHALF_EVEN

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
amountYes
currencyYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the bar is lower, and the description still adds real behavior: rounding happens exactly once at the target currency's scale, intermediate amounts are not rounded, and the default mode is HALF_EVEN. That is exactly the kind of precision an agent needs to predict output.

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 formula and return value front-loaded, followed by rate direction semantics and rounding. No filler, though the Korean phrasing packs multiple clauses per sentence.

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?

An output schema exists, so return values need not be re-explained, and the description covers the non-obvious rounding contract. Only minor gaps remain (currency code format, amount sign handling) for a simple arithmetic tool.

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 0%, so the description must carry the load. It defines rate1's direction (from_ccy to via_ccy), rate2's direction (via_ccy to to_ccy), their positivity, and the rounding default, but says nothing about amount formatting, currency code conventions, or the allowed rounding values beyond the default.

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 precise operation: a triangular FX conversion through an intermediate currency (amount * rate1 * rate2), returning amount and currency. The 'via_ccy' framing distinguishes it from the direct-conversion sibling units.fx_convert, though that sibling is never named explicitly.

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?

Usage is implied by the mechanics: you need two rates chained through a via currency. There is no explicit statement of when to prefer this over units.fx_convert, nor any prerequisite or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.pressure_convertA
Read-onlyIdempotent

압력 단위를 Pa 기준 Decimal 계수로 변환한다. 지원 단위는 Pa, kPa, MPa, atm, bar, mbar, psi, mmHg, torr 이며 대소문자를 구분하고 magnitude 는 Decimal 문자열이다. 단순 배율 변환이라 게이지압과 절대압의 차이는 반영하지 않는다. 결과는 magnitude 와 unit 이다.

NameRequiredDescriptionDefault
to_unitYes
from_unitYes
magnitudeYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
magnitudeYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, and the description adds non-obvious traits beyond them: units are case-sensitive, magnitude must be a Decimal string, and gauge/absolute pressure semantics are ignored. That is meaningful context the annotations cannot convey.

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 short sentences, purpose front-loaded, then the unit vocabulary, then the precision caveat, then the return shape. Every sentence supplies information the schema or annotations do not.

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 an output schema present, the return-value sentence is slightly redundant, but the description fully equips an agent to call a simple 3-param converter: valid units, case rules, numeric type, and the semantic limitation. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 burden, and it does: it documents all three parameters by specifying the magnitude type (Decimal string) and the full valid unit vocabulary for from_unit/to_unit plus case sensitivity. Minor gaps remain (no explicit alias or default handling).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (convert) and resource (pressure units) and enumerates the exact supported unit set, which effectively scopes it away from generic siblings like units.convert or units.energy_convert without needing to name them.

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?

Usage context is clear from the unit list, and it adds a genuine boundary condition: this is a pure scale conversion that does not account for gauge vs absolute pressure, which tells the agent when the tool is inappropriate. No explicit alternative tool is named, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.temperatureA
Read-onlyIdempotent

섭씨(C), 화씨(F), 켈빈(K), 랭킨(R) 사이에서 온도를 변환한다. value 는 Decimal 문자열, from_scale 과 to_scale 은 대소문자 구분 없는 한 글자이며 결과는 value 와 대문자 scale 이다. 절대영도 미만 입력은 오류이다. 온도 차이(Δ)가 아닌 절대 온도 값 변환용이고, 5/9 계수는 유효 50자리로 근사한다.

NameRequiredDescriptionDefault
valueYes
to_scaleYes
from_scaleYes

Output Schema

NameRequiredDescription
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
scaleYes
traceYes계산 근거(tool, formula, inputs, steps, output)
valueYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, yet the description still adds real value: an error is raised for inputs below absolute zero, and 5/9 is approximated to 50 significant digits, which matters for precision-sensitive callers. It also defines the return shape (value plus uppercase scale), none of which is in 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 tight sentences: scope first, then parameter contract, then error rule, then the precision/exclusion caveat. No filler, and each sentence adds information an agent would otherwise have to guess.

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 an output schema present, the description needn't explain return values, yet it does anyway; combined with the absolute-zero error rule and precision note, a caller has everything needed for correct invocation. The only gap is not pointing to the generic units.convert sibling for non-temperature conversions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are no enums, so the description carries the full burden — and does: value is a Decimal string, from_scale and to_scale are case-insensitive single letters. This covers all three required parameters with format and validation semantics the bare schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (temperature conversion) and enumerates every supported scale (C, F, K, R), so an agent can tell instantly this is the temperature-specific converter rather than the generic units.convert sibling. It also scopes the tool to absolute temperatures, not deltas.

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 exclusion: it is for absolute temperature values, not temperature differences (Δ). It does not name a sibling alternative (e.g. units.convert) for other cases, so context is clear but routing advice is not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units.time_small_convertA
Read-onlyIdempotent

짧은 시간 단위 s, ms, us, ns, ps, min, hour, day 사이를 pint 로 변환한다. magnitude 는 Decimal 문자열이고 단위는 대소문자를 구분하며 1 day 는 86400 s 이다. 월과 연은 길이가 일정하지 않아 지원하지 않으므로 날짜 간격에는 datetime.diff 를 쓴다.

NameRequiredDescriptionDefault
to_unitYes
from_unitYes
magnitudeYes

Output Schema

NameRequiredDescription
unitYes
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
magnitudeYes

TDQS

A4.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 real context beyond them: case-sensitive unit strings, a Decimal-string magnitude, and the fixed 1 day = 86400 s convention. It stops short of saying what happens on an unknown unit (error vs. fallback) or whether results are rounded, which are the remaining behavioral gaps.

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?

Three sentences, front-loaded with the capability, then the input conventions, then the exclusion. Every sentence supplies a fact an agent needs; nothing is restated from the schema or annotations.

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 an output schema present, return values need no explanation, and the description covers the input contract and the unsupported-unit edge case. The only shortfall is error behavior for invalid or out-of-range input, which an agent would still have to discover at call time.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% — all three parameters are bare 'string' fields with no enum — so the description carries the full burden. It does compensate well by supplying the accepted unit domain for from_unit/to_unit and specifying magnitude's expected format (Decimal string) and case sensitivity, though it does not state whether magnitude must be positive or what an out-of-domain unit yields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('시간 단위 ... 사이를 pint 로 변환한다') and enumerates the exact unit set (s, ms, us, ns, ps, min, hour, day). It also carves out the cases it does not handle (월/연), which makes it distinguishable from the datetime.* siblings at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says months and years are unsupported because their length is not fixed, and routes the agent to datetime.diff for date intervals. That is a concrete when-not plus a named alternative, not implied usage.

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.

  1. 286 tool updatesv0.3.0
    • First observedaccounting.balance
    • First observedaccounting.break_even
    • First observedaccounting.cashflow_operating
    • First observedaccounting.depreciation_declining_balance
    • First observedaccounting.depreciation_straight_line
    • First observedaccounting.depreciation_units_of_production
    • First observedaccounting.dupont_3
    • First observedaccounting.dupont_5
    • First observedaccounting.income_statement
    • First observedaccounting.ratios
    • First observedaccounting.vat_add
    • First observedaccounting.vat_extract
    • First observedcore.add
    • First observedcore.batch
    • First observedcore.calc
    • First observedcore.compare
    • First observedcore.div
    • First observedcore.explain
    • First observedcore.mul
    • First observedcore.pipeline
    • First observedcore.pipeline_resume
    • First observedcore.solve_for
    • First observedcore.sub
    • First observedcrypto.carmichael_lambda
    • First observedcrypto.crt
    • First observedcrypto.egcd
    • First observedcrypto.euler_totient
    • First observedcrypto.gcd
    • First observedcrypto.hash
    • First observedcrypto.is_prime
    • First observedcrypto.lcm
    • First observedcrypto.modinv
    • First observedcrypto.modpow
    • First observeddatetime.add_business_days
    • First observeddatetime.age
    • First observeddatetime.count_business_days
    • First observeddatetime.day_count
    • First observeddatetime.diff
    • First observeddatetime.fiscal_quarter
    • First observeddatetime.fiscal_year
    • First observeddatetime.lunar_holiday
    • First observeddatetime.lunar_to_solar
    • First observeddatetime.payroll_period
    • First observeddatetime.solar_terms
    • First observeddatetime.solar_to_lunar
    • First observeddatetime.tax_period_kr
    • First observeddatetime.tz_convert
    • First observedengineering.ac_impedance
    • First observedengineering.beam_deflection
    • First observedengineering.bearing_equivalent_load
    • First observedengineering.bearing_life_l10
    • First observedengineering.bending_stress
    • First observedengineering.bernoulli
    • First observedengineering.bode_magnitude_phase
    • First observedengineering.capacitor_combine
    • First observedengineering.convective_heat_transfer
    • First observedengineering.darcy_weisbach
    • First observedengineering.db_convert
    • First observedengineering.elastic_modulus_relate
    • First observedengineering.electrical_ohm
    • First observedengineering.electrical_power
    • First observedengineering.euler_buckling
    • First observedengineering.exponential_reliability
    • First observedengineering.first_order_response
    • First observedengineering.fluid_reynolds
    • First observedengineering.fourier_heat_conduction
    • First observedengineering.gear_ratio
    • First observedengineering.gear_torque_transmission
    • First observedengineering.hardness_convert
    • First observedengineering.hazen_williams_flow
    • First observedengineering.inductor_combine
    • First observedengineering.lc_resonant_frequency
    • First observedengineering.lmtd
    • First observedengineering.max_power_transfer
    • First observedengineering.mech_strain
    • First observedengineering.mech_stress
    • First observedengineering.moment_of_inertia
    • First observedengineering.moody_friction_factor
    • First observedengineering.norton_equivalent
    • First observedengineering.opamp_gain
    • First observedengineering.parallel_reliability
    • First observedengineering.pid_discrete_output
    • First observedengineering.power_factor_correction
    • First observedengineering.pump_hydraulic_power
    • First observedengineering.rc_filter_cutoff
    • First observedengineering.resistor_color_code
    • First observedengineering.resistor_parallel
    • First observedengineering.resistor_series
    • First observedengineering.rlc_time_constant
    • First observedengineering.safety_factor
    • First observedengineering.second_order_response
    • First observedengineering.section_moment_inertia
    • First observedengineering.series_reliability
    • First observedengineering.shear_stress
    • First observedengineering.si_prefix_convert
    • First observedengineering.sn_fatigue_life
    • First observedengineering.stefan_boltzmann
    • First observedengineering.thermal_expansion_strain
    • First observedengineering.thermal_resistance
    • First observedengineering.thevenin_equivalent
    • First observedengineering.three_phase_power
    • First observedengineering.torque_rotational_power
    • First observedengineering.weibull_reliability
    • First observedfinance.black_scholes
    • First observedfinance.bond_duration
    • First observedfinance.bond_ytm
    • First observedfinance.cagr
    • First observedfinance.forward_price
    • First observedfinance.futures_price
    • First observedfinance.fv
    • First observedfinance.irr
    • First observedfinance.loan_schedule
    • First observedfinance.npv
    • First observedfinance.option_payoff
    • First observedfinance.payback_period
    • First observedfinance.pv
    • First observedfinance.roi
    • First observedfinance.sharpe_ratio
    • First observedfinance.sortino_ratio
    • First observedfinance.var_historical
    • First observedfinance.var_parametric
    • First observedgeometry.area_circle
    • First observedgeometry.area_polygon
    • First observedgeometry.area_rectangle
    • First observedgeometry.area_triangle
    • First observedgeometry.haversine
    • First observedgeometry.matrix_determinant
    • First observedgeometry.matrix_inverse
    • First observedgeometry.matrix_multiply
    • First observedgeometry.matrix_solve
    • First observedgeometry.vector_cross
    • First observedgeometry.vector_dot
    • First observedgeometry.vector_norm
    • First observedgeometry.volume_cuboid
    • First observedgeometry.volume_cylinder
    • First observedgeometry.volume_sphere
    • First observedmath.diff_central
    • First observedmath.diff_five_point
    • First observedmath.fft
    • First observedmath.ifft
    • First observedmath.integrate_gauss_legendre
    • First observedmath.integrate_simpson
    • First observedmath.interpolate_cubic_spline
    • First observedmath.interpolate_linear
    • First observedmath.polynomial_horner
    • First observedmath.polynomial_roots
    • First observedmedical.bmi
    • First observedmedical.bsa
    • First observedmedical.cha2ds2_vasc
    • First observedmedical.dose_weight_based
    • First observedmedical.egfr
    • First observedmedical.framingham_cvd_10y
    • First observedmedical.has_bled
    • First observedmedical.pregnancy_weeks
    • First observedmedical.qtc_bazett
    • First observedmedical.qtc_framingham
    • First observedmedical.qtc_fridericia
    • First observedmedical.qtc_hodges
    • First observedpayroll.hourly_to_monthly_net
    • First observedpayroll.kr_bonus_tax
    • First observedpayroll.kr_donation_deduction
    • First observedpayroll.kr_education_deduction
    • First observedpayroll.kr_gross_from_net
    • First observedpayroll.kr_health_income_premium
    • First observedpayroll.kr_housing_loan_deduction
    • First observedpayroll.kr_medical_deduction
    • First observedpayroll.kr_minimum_wage_check
    • First observedpayroll.kr_national_pension_benefit
    • First observedpayroll.kr_overtime_pay
    • First observedpayroll.kr_salary
    • First observedpayroll.kr_severance_pay
    • First observedpayroll.kr_weekly_holiday_pay
    • First observedpayroll.kr_year_end_tax_settlement
    • First observedpm.critical_path
    • First observedpm.earned_schedule
    • First observedpm.evm
    • First observedpm.monte_carlo_schedule
    • First observedpm.pert
    • First observedprobability.bayes
    • First observedprobability.beta_cdf
    • First observedprobability.beta_pdf
    • First observedprobability.beta_ppf
    • First observedprobability.binomial_cdf
    • First observedprobability.binomial_pmf
    • First observedprobability.chi_square_cdf
    • First observedprobability.chi_square_pdf
    • First observedprobability.chi_square_ppf
    • First observedprobability.expected_value
    • First observedprobability.exponential_cdf
    • First observedprobability.exponential_pdf
    • First observedprobability.exponential_ppf
    • First observedprobability.f_cdf
    • First observedprobability.f_pdf
    • First observedprobability.f_ppf
    • First observedprobability.factorial
    • First observedprobability.gamma_cdf
    • First observedprobability.gamma_pdf
    • First observedprobability.gamma_ppf
    • First observedprobability.lognormal_cdf
    • First observedprobability.lognormal_pdf
    • First observedprobability.lognormal_ppf
    • First observedprobability.nCr
    • First observedprobability.normal_cdf
    • First observedprobability.normal_pdf
    • First observedprobability.normal_ppf
    • First observedprobability.nPr
    • First observedprobability.poisson_cdf
    • First observedprobability.poisson_pmf
    • First observedrealestate.kr_acquisition_tax
    • First observedrealestate.kr_comprehensive
    • First observedrealestate.kr_dsr
    • First observedrealestate.kr_dti
    • First observedrealestate.kr_local_property
    • First observedrealestate.kr_ltv
    • First observedrealestate.kr_property_tax
    • First observedrealestate.kr_subscription_score
    • First observedrealestate.kr_transfer_tax
    • First observedrealestate.rental_yield
    • First observedscience.battery_capacity
    • First observedscience.bragg
    • First observedscience.faraday_electrolysis
    • First observedscience.half_life
    • First observedscience.ideal_gas
    • First observedscience.intensity
    • First observedscience.molar_mass
    • First observedscience.nernst
    • First observedscience.snell_law
    • First observedscience.stoichiometry
    • First observedscience.thin_lens
    • First observedsootool.policy_activate
    • First observedsootool.policy_diff
    • First observedsootool.policy_export
    • First observedsootool.policy_get
    • First observedsootool.policy_history
    • First observedsootool.policy_import
    • First observedsootool.policy_list
    • First observedsootool.policy_propose
    • First observedsootool.policy_rollback
    • First observedsootool.policy_validate
    • First observedsootool.skill_guide
    • First observedsootool.verify_receipt
    • First observedstats.anova_oneway
    • First observedstats.bootstrap_ci
    • First observedstats.chi_square_independence
    • First observedstats.ci_mean
    • First observedstats.cohens_d
    • First observedstats.descriptive
    • First observedstats.eta_squared
    • First observedstats.kruskal_wallis
    • First observedstats.mann_whitney_u
    • First observedstats.regression_linear
    • First observedstats.ttest_one_sample
    • First observedstats.ttest_paired
    • First observedstats.ttest_two_sample
    • First observedstats.wilcoxon
    • First observedsymbolic.diff
    • First observedsymbolic.solve
    • First observedtax_us.capital_gains
    • First observedtax_us.federal_income
    • First observedtax_us.fica
    • First observedtax_us.state_tax
    • First observedtax.capital_gains_kr
    • First observedtax.kr_comprehensive_income_tax
    • First observedtax.kr_corporate
    • First observedtax.kr_education_tax_add
    • First observedtax.kr_eitc
    • First observedtax.kr_gift
    • First observedtax.kr_income
    • First observedtax.kr_inheritance
    • First observedtax.kr_local_income_tax
    • First observedtax.kr_pension_income
    • First observedtax.kr_registration_license_tax
    • First observedtax.kr_rural_special_tax
    • First observedtax.kr_securities_transaction
    • First observedtax.kr_simplified_vat
    • First observedtax.kr_vehicle_tax
    • First observedtax.kr_withholding_simple
    • First observedtax.progressive
    • First observedunits.convert
    • First observedunits.data_size_convert
    • First observedunits.energy_convert
    • First observedunits.fx_convert
    • First observedunits.fx_triangulate
    • First observedunits.pressure_convert
    • First observedunits.temperature
    • First observedunits.time_small_convert

TDQS

A3.6/5.0

Scored across 286 tools

Disambiguation2/5

The 286-tool surface contains many closely related calculators across tax, finance, payroll, and math, so an agent faces frequent misselection risk. Examples include forward_price vs futures_price, tax.kr_income vs tax.progressive vs tax.kr_comprehensive_income_tax, and core.calc vs the dedicated arithmetic tools. Descriptions help within domains, but the overall set has too many overlapping boundaries.

Naming Consistency5/5

Tool names consistently use a domain-prefixed snake_case convention such as finance.bond_ytm, engineering.beam_deflection, tax.kr_gift, and units.fx_convert. The verb/noun pattern varies between actions and noun phrases, but the namespace and casing pattern are highly predictable throughout the server.

Tool Count1/5

286 tools is far beyond an appropriate scope for a single MCP server, even for a broad multi-domain calculator. The sheer size makes discovery, selection, and maintenance impractical, and strongly suggests the surface should be split into smaller focused servers.

Completeness3/5

The server covers many domains broadly, including arithmetic, finance, tax, statistics, units, engineering, and policy management, but coverage is uneven. There are notable gaps such as t-distribution density/CDF tools despite t-tests, limited tax jurisdictions, and incomplete lifecycle support in several specialist domains. Agents can complete many tasks but will encounter dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides exact, deterministic tools for math, dates, units, validation, and more to AI agents, returning precise answers with explicit assumptions and warnings instead of model guesses.
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to perform accurate local computations including arbitrary-precision math, date handling, unit conversion, subnet calculations, encoding, hashing, and text analysis, all without network calls or API keys.
    27
    0
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables LLMs to run arbitrary-precision integer and bitwise operations, endianness swaps, IEEE 754 float decomposition, hashing/checksum/modular math, data codecs, statistics, and trigonometry through 29 specialized tools. Its chained batch execution engine lets multiple dependent steps run in one call, eliminating multi-turn round-trip overhead.
    29
    6 npm
    17
    MIT