Skip to main content
Glama

지체상금 산정

estimate_delay_penalty
Read-onlyIdempotent

지체상금(국가·공기업)·지연배상금(지방) 산정 — 법정 요율·기준금액·30% 한도를 결정론 적용.

**국가와 지방은 요율이 다르다**(물품 0.75/1000 ↔ 0.8/1000, 용역 1.25/1000 ↔ 1.3/1000)
— org_type을 반드시 사용자에게 확인해서 넣어라. 법정 용어도 다르다(국가=지체상금,
지방=지연배상금).

**이 도구는 지체일수를 정하지 않는다.** 준공검사 소요기간·검사 불합격 재검사 기간·
발주기관 귀책 일수 같은 것은 사실 판단이다 — delay_days/excluded_days는 사용자가
선언한 값으로 계산에 그대로 쓰이고, 응답의 counted_days.disclaimer가 이 사실을 밝힌다.
면책 사유 해당 여부가 쟁점이면 search_references로 예규·감사원 실무가이드를 찾아라.

응답 필드:
  term/counterpart_term  기관유형에 따른 법정 용어(+반대편 용어)
  rate                   적용 요율·근거 조문(호까지). inferred=true면 법문이 아니라 우리 해석
  base_amount            계약금액 − 인수분 산출 내역
  counted_days           선언 지체일수 − 선언 면책일수
  amount_raw / cap / amount   한도 적용 전 금액 / 30% 한도 / 최종(한도 적용 후)
  warnings               미선언 항목·한도 적용·용어 비대칭 등 실토
  legal_basis            근거 조문 — get_law_article로 원문 확인 가능

Args:
    contract_kind: 요율 호와 1:1. "construction"(공사) | "product_manufacture"(물품
        제조·구매) | "product_repair"(물품 수리·가공·대여) | "service"(용역·기타) |
        "military_food"(군용 음·식료품) | "transport_storage"(운송·보관·양곡가공)
    org_type: "national"(국가기관) | "local"(지자체) | "public_corp"(공기업·준정부).
        **추측 금지** — 요율이 달라 틀린 금액이 된다
    contract_amount: 계약금액(원). **장기계속계약이면 총액이 아니라 연차별 계약금액**
    delay_days: 지체일수(총 지체일수 — 면책일수를 포함해서 넣고, 면책분은 아래에 따로)
    excluded_days: 계약상대자 책임 없는 사유 일수. 모르면 **빼라**(0으로 계산하고 '미선언'
        경고가 붙는다 — 그 경고를 전달하라). 없다고 확인됐으면 0을 명시하라(경고 없음).
        정수 또는 **0.5일 단위** — 소프트웨어사업 요구사항 변경처럼 '그 일수의 1/2만' 빼는 사유는
        홀수 일수면 .5가 된다(예: 3일 → 1.5). 그 밖의 소수는 거절한다(반올림·절사하지 않는다)
    accepted_portion_amount: 검사를 거쳐 인수한 기성·기납 부분 금액(원). 생략=미선언, 0=인수분 없음
    design_build_approved: 설계·제조 일괄 + 발주기관 승인이 필요한 물품인지(요율 예외)
    contract_end_date: 계약기간 만료일(이행기한) "YYYY-MM-DD"(선택). 30% 한도는 국가 2018-12-04·지방
        2019-06-25 시행 **이후 만료**분부터라, 그 전 만료면 한도를 빼고 계산한다. 생략하면 현행 기준으로
        계산하고 time_basis에 그 사실을 적는다(요율은 현행 값 — 옛 계약은 계약서 요율 확인)

Input Schema

NameRequiredDescriptionDefault
org_typeYes
delay_daysYes
contract_kindYes
excluded_daysNo
contract_amountYes
contract_end_dateNo
include_footnotesNotrue면 계산값 근거 전문(산식·모집단·기간·원천)을 footnotes에 싣는다. 기본은 행마다 한 줄 요지
design_build_approvedNo
accepted_portion_amountNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / excluded_days / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • addedInput schema / properties / contract_end_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Contract End Date"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / include_footnotes
      Added value: +{
      +  "default": false,
      +  "description": "true면 계산값 근거 전문(산식·모집단·기간·원천)을 footnotes에 싣는다. 기본은 행마다 한 줄 요지",
      +  "title": "Include Footnotes",
      +  "type": "boolean"
      +}
  4. Changed6 schema fields changed
    • addedInput schema / properties / accepted_portion_amount / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / accepted_portion_amount / default
      Previous value: -0New value: +null
    • removedInput schema / properties / accepted_portion_amount / type
      Removed value: -"integer"
    • addedInput schema / properties / excluded_days / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / excluded_days / default
      Previous value: -0New value: +null
    • removedInput schema / properties / excluded_days / type
      Removed value: -"integer"
  5. Added

TDQS

A4.5/5.0
Behavior4/5

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

Far beyond the annotations: it reveals deterministic application, that undeclared excluded_days produces a '미선언' warning (vs. explicit 0 producing none), that counted_days carries a disclaimer, that the 30% cap is date-gated by contract_end_date, and that inferred rates are flagged. With readOnlyHint/idempotent already covered, this is substantial added context, though the openWorldHint implications are not discussed.

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 headline, then bolded pitfalls, then a response-field list, then Args — a sensible reading order with no filler. It is long, and the response-field block is dense, but with no output schema each line carries real information rather than 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?

Nine parameters, an 11%-covered schema, and no output schema — the description fills all three gaps by documenting arguments, enumerating return fields (term, rate, base_amount, cap, amount, warnings, legal_basis), and flagging the disclaimer behavior. An agent can call this correctly without further lookup.

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 only 11%, but the Args section compensates for nearly every parameter: conduct_kind maps 1:1 to rate rows, org_type forbids guessing because rates differ, contract_amount must be per-year for long-term contracts, excluded_days accepts halves only in 0.5 increments with an explicit 3일→1.5 example and rejects other decimals, and contract_end_date explains the cap's effective dates. This is exactly what a low-coverage schema needs.

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 opening sentence names a specific verb (산정/calculate) plus the exact resource (지체상금/지연배상금), and immediately states the governing rule set — statutory rate, base amount, 30% cap. It even distinguishes the national vs. local terminology split, which no sibling could be confused 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?

Explicit exclusions are given: the tool does not fix delay days, and disputed exemption grounds are routed to search_references. It also mandates confirming org_type with the user before calling. It stops short of naming the closest sibling (delay_exemption_guide), which would have made the routing unambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.