Skip to main content
Glama

Jp Bonus Net

jp_bonus_net
Idempotent

Bonus net pay: social insurance and withholding tax (official rate table, based on previous month salary). $0.01/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Choose this for ONE bonus payment: its social insurance and withholding tax (the tax rate depends on the previous month's salary after social insurance). For annual totals use jp_payroll_net.

Input Schema

NameRequiredDescriptionDefault
ageNoAge in years (selects care-insurance and other age-gated rules)
as_ofNoCalculation reference date YYYY-MM-DD (default today); selects the rules version
bonus_yenYesBonus amount in yen
x_paymentNoOptional: base64 X-PAYMENT header value (x402 exact scheme, USDC on Base mainnet). Omit it to receive the payment requirements (accepts[] + docs) for this call without being charged.
dependentsNoDependents object (see /catalog input spec)
prefectureYesPrefecture (romaji or Japanese), e.g. 'Tokyo'
ytd_bonus_yenNoBonus paid so far in the fiscal year (health-insurance annual cap check)
previous_month_after_si_yenNoPrevious month's pay after social insurance (withholding table lookup)

Output Schema

NameRequiredDescriptionDefault
bodyYesJSON body of the underlying call (see /samples/{product} for each product's shape)
statusYesHTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)
how_to_payNo
receipt_idNoset on paid results; free re-fetch via get_receipt
payment_requiredNotrue when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / how_to_pay
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / payment_required
      Added value: +{
      +  "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / receipt_id
      Added value: +{
      +  "description": "set on paid results; free re-fetch via get_receipt",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "body": {
      +      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
      +    },
      +    "status": {
      +      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "body"
      +  ],
      +  "type": "object"
      +}
  3. Changed5 schema fields changed
    • addedInput schema / properties / age / default
      Added value: +30
    • addedInput schema / properties / as_of / format
      Added value: +"date"
    • addedInput schema / properties / dependents / default
      Added value: +0
    • addedInput schema / properties / ytd_bonus_yen / default
      Added value: +0
    • changedInput schema / properties / ytd_bonus_yen / description
      Previous value: -"See the product's input spec in /catalog"New value: +"Bonus paid so far in the fiscal year (health-insurance annual cap check)"
  4. Changed7 schema fields changed
    • addedInput schema / properties / age / description
      Added value: +"Age in years (selects care-insurance and other age-gated rules)"
    • addedInput schema / properties / as_of / description
      Added value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    • addedInput schema / properties / bonus_yen / description
      Added value: +"Bonus amount in yen"
    • addedInput schema / properties / dependents / description
      Added value: +"Dependents object (see /catalog input spec)"
    • addedInput schema / properties / prefecture / description
      Added value: +"Prefecture (romaji or Japanese), e.g. 'Tokyo'"
    • addedInput schema / properties / previous_month_after_si_yen / description
      Added value: +"Previous month's pay after social insurance (withholding table lookup)"
    • addedInput schema / properties / ytd_bonus_yen / description
      Added value: +"See the product's input spec in /catalog"
  5. Added

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (idempotentHint=true, openWorldHint=true), it adds cost ($0.01/call), the billing guarantee (errors and unverified rules are never billed), determinism, and that sources are cited. The schema's x_payment note plus the description's framing make the payment handshake clear. Nothing here 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?

Front-loaded with the core definition, then cost, then the sibling routing rule. Slightly repetitive — the social-insurance/withholding-tax scope is restated in the 'Choose this...' sentence — but no sentence 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?

An output schema exists so return values needn't be explained, and the payment/pricing behavior is fully covered. The one gap is that previous_month_after_si_yen is optional yet described as determining the tax rate, without saying how the calculation proceeds when it 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?

With 100% schema coverage the baseline is 3, but the description adds a real semantic linkage the schema only hints at: the withholding rate is looked up from the previous month's salary after social insurance, explaining why previous_month_after_si_yen matters and why ytd_bonus_yen feeds the annual cap. It does not clarify what happens when that non-required parameter is omitted.

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 (net bonus pay = social insurance + withholding tax) with the governing rule (official rate table, keyed to previous month's salary). It explicitly distinguishes itself from the sibling jp_payroll_net by scope (single bonus vs annual totals), so 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?

Explicit selection guidance: 'Choose this for ONE bonus payment' and 'For annual totals use jp_payroll_net.' Both the when-to-use condition and the named alternative are given, 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources