Mart402
Server Details
Every Mart402 tool in one endpoint: PDF parsing and OCR (Japanese-strong), web extraction, invoice checks, Japan statutory calculations and calibrated vision. x402 (USDC on Base), no API key; failed calls are never charged. Focused endpoints: Mart402 Documents & Web, Japan Statutory, Vision and Free tools.
- Status
- Healthy
- Uptime
- 100.0% over 78 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 35 tools
Several clusters overlap substantially: jp_payroll_suite supersets jp_payroll_net/jp_social_insurance/jp_dependent_threshold, style_report renders style_profile, and document_pipeline combines parse_document with verify_invoice. The long 'choose this when...' descriptions do a good job routing an agent, but selection often requires careful reading rather than being obvious from the tool name alone.
All names use snake_case, and domain prefixes such as jp_*, pdf_*, style_*, and portrait_* create useful grouping. However, conventions are mixed: some tools are verb_noun (extract_url, verify_invoice), others are noun phrases or product names (document_pipeline, jp_bonus_net, meal_vision, report_pack), so there is no single predictable pattern.
The 35 tools correspond to many genuinely distinct product families (document parsing, Japanese payroll/tax, vision, styling, marketplace search), so most earn their place. Still, 35 is well above the ideal 3-15 range and creates a heavy surface that an agent must navigate with catalog and search tools.
The surface is unusually complete for a paid API marketplace: it includes catalog, samples, receipts, quotes, prechecks, search, and operational coverage across documents, Japanese payroll/tax, OCR/vision, styling, and company enrichment. Minor gaps exist around account/balance or broader batch/job management, but agents can work around them.
Available Tools
35 toolsdocument_pipelineDocument PipelineAIdempotentInspect
One call: PDF invoice to parse (hallucination-guarded OCR) + field extraction + arithmetic verification (+optional issuer enrich). Flat $0.05/document; inputs validated before payment. Choose this when a PDF is an invoice/receipt and you want parse + field extraction + arithmetic verification in one paid call; for text only use parse_document.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the input (web page or PDF, per tool) | |
| enrich | No | Also run issuer enrichment on the parsed invoice | |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond annotations by disclosing cost ($0.05/document), that inputs are validated before payment (no charge on invalid input), and that OCR is hallucination-guarded. Annotations already cover idempotency and non-destructiveness, so this adds real value; it could say more about failure modes or what the enrich step returns, but the paid-call semantics are unusually 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the pipeline summary, then cost, then selection guidance. Dense but every clause carries information; the parenthetical asides make it slightly busier than necessary, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 values need no explanation, and annotations cover the safety profile. The description supplies purpose, cost, selection rule, and alternative, so 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters (url, enrich, x_payment) are already documented. The description echoes the optional enrich step but adds no syntax, format, or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource chain (parse PDF invoice, extract fields, verify arithmetic, optional enrich) and explicitly distinguishes itself from the sibling parse_document by input type ('for text only use parse_document'). An agent can select it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use condition ('when a PDF is an invoice/receipt and you want parse + field extraction + arithmetic verification in one paid call') plus a named alternative (parse_document) for the text-only case. Both the selection rule and the exclusion are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enrich_companyEnrich CompanyAIdempotentInspect
Company name/domain/URL to a verified profile from primary sources + GLEIF LEI and Japan NTA corporate-number registries. Per-field evidence + confidence, honest nulls; unresolved lookups never charged. $0.03/company. Choose this when you have a company NAME or DOMAIN and need a registry-grounded profile (GLEIF LEI / Japan NTA) with per-field evidence; pass country_hint 'jp' for Japanese companies.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Company name, domain or URL | |
| x_payment | No | Optional: 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. | |
| country_hint | No | ISO country hint for registry lookups, e.g. 'jp' |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the annotations: $0.03/company pricing, "unresolved lookups never charged", per-field evidence with confidence scores, and honest nulls. These are exactly the cost/quality characteristics annotations cannot express. It doesn't restate the idempotent/openWorld hints, and there is no contradiction with readOnlyHint=false (a paid call is reasonably non-read-only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded enough that the core purpose lands early, but it opens with a sentence fragment ("Company name/domain/URL to a verified profile...") and repeats "per-field evidence + confidence" in two separate places, wasting one of its few sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies the sources, pricing, null/charge policy, and the country_hint trigger. The x402 payment flow is delegated to the x_payment schema field, which is acceptable but leaves the payment round-trip implicit in the prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates that the input is a name/domain/URL and adds the reason for country_hint ('jp' for Japanese companies), but that value-add is marginal over the schema's own "ISO country hint for registry lookups, e.g. 'jp'". The x_payment mechanism is left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete transformation (company name/domain/URL into a verified profile) and names the actual primary sources (GLEIF LEI, Japan NTA corporate-number registries). This is far more specific than a generic 'look up company', though it never explicitly contrasts itself with the sibling jp_company_profile, leaving some ambiguity for an agent choosing between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Choose this when you have a company NAME or DOMAIN and need a registry-grounded profile" gives a clear triggering condition, and it tells the agent to pass country_hint 'jp' for Japanese companies. It lacks an explicit when-not or a named alternative (e.g. jp_company_profile), 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.
extract_urlExtract UrlAIdempotentInspect
Extract a web page to clean Markdown + metadata (auto JS rendering, robots.txt respected). $0.005 fast / $0.01 rendered; cached results half price. Choose this when you need a web PAGE as clean Markdown to read yourself; to fill a schema use structured_extract, for a PDF use pdf_info then parse_document.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | cache seconds (0 = no cache) | |
| url | Yes | Absolute http(s) URL of the input (web page or PDF, per tool) | |
| mode | No | Extraction mode: auto (fast with rendered fallback), fast, heavy | auto |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, idempotentHint=true, destructiveHint=false, so the burden is partly lifted. The description adds genuinely non-structured behavior: automatic JS rendering, robots.txt compliance, and tiered pricing with a cache discount. It does not explain the x402 payment handshake beyond what the schema says, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, zero filler: purpose first, cost/behavior second, routing last. Every clause carries information an agent uses for selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Given the tool's complexity (payment, modes, caching), the description covers purpose, cost, behavioral traits, and sibling routing, leaving nothing critical to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds economic meaning to mode selection ('$0.005 fast / $0.01 rendered; cached results half price') and ties caching to cost, which the schema's ttl description does not. Minor friction: it says 'rendered' while the enum value is 'heavy', leaving the mapping implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract a web page to clean Markdown + metadata') with the output artifact named. It explicitly carves itself out from structured_extract (schema filling) and pdf_info/parse_document (PDFs), so an agent can route without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit selection rules: 'Choose this when you need a web PAGE as clean Markdown to read yourself', with named alternatives for the two nearest competing intents. Both the use case and the when-not conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalogMart402 catalog (products, prices, policies)BRead-onlyIdempotentInspect
Mart402 product catalog: all products, prices, payment config, error codes, rate limits. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered without the description. The description adds genuinely non-structured context: the call is free, and it returns payment config, error codes, and rate limits — useful in an x402/pay-per-call ecosystem. It stops short of saying whether the catalog is cached or how often it changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single telegraphic sentence with the resource front-loaded and the cost signal last; nothing is wasted. The fragment style ('Free.') is slightly clipped but still unambiguous and appropriately sized for a zero-arg tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, rich annotations, and an output schema that already documents return values, the description needs only to identify the resource and its scope — which it does. Enumerating the returned categories (prices, payment config, error codes, rate limits) is a helpful bonus rather than a requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4 and there is nothing for the description to disambiguate. No parameter detail is required or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Mart402 product catalog) and enumerates what it contains: products, prices, payment config, error codes, rate limits. An agent can tell this is a discovery/metadata endpoint rather than a data-processing tool. It does not distinguish itself from the one plausible sibling, search_x402_services, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the trailing word 'Free,' which implies a cost advantage over paid x402 siblings but never states when to call this versus search_x402_services. There is no statement of prerequisites, ordering, or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiptRe-fetch a paid result by receiptARead-onlyIdempotentInspect
Re-fetch a previously paid result for free by receipt id (every paid response carries receipt_id).
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | receipt_id from a paid response (rcpt_...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds a genuinely behavioral fact not present in annotations: the call is free and requires a receipt_id issued by a prior paid response. It omits whether receipts expire or whether the re-fetched payload is identical, but with annotations carrying safety this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, with the clarifying parenthetical placed after the essential information. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the safety semantics. The description supplies purpose, parameter provenance and cost behavior; only minor operational details (receipt lifetime, pagination/error behavior on an invalid id) are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents the single parameter including its 'rcpt_...' format. The description's provenance note ('from a paid response') largely restates the schema's own wording, so it adds little beyond the structured field. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Re-fetch a previously paid result') plus the selection key ('by receipt id'), and adds the key differentiator that this path is free. No sibling tool overlaps, so an agent can identify this as the free retrieval path for a paid result 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent the precondition (you must hold a receipt_id) and where that id comes from ('every paid response carries receipt_id'), which implies the when-to-use condition: retrieving a result already paid for rather than paying again. It does not explicitly name an alternative or a when-not-to-use case, 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.
get_sampleMart402 sample outputARead-onlyIdempotentInspect
Free recorded sample response for a paid product (from real production runs, marked sample:true) - see the exact response shape before paying anything. Available: document-pipeline, enrich, extract, jp-bonus-net, jp-business-days, jp-company, jp-consumption-tax, jp-crypto-tax, jp-dependent-threshold, jp-mortgage, jp-overtime-wage, jp-payroll-net, jp-payroll-suite, jp-payslip-audit, jp-retirement-tax, jp-social-insurance, meal-vision, ocr, parse, pdf-info, pdf-merge, pdf-pages, portrait-analysis, report-pack, structured, style-profile, style-report, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | One of: document-pipeline, enrich, extract, jp-bonus-net, jp-business-days, jp-company, jp-consumption-tax, jp-crypto-tax, jp-dependent-threshold, jp-mortgage, jp-overtime-wage, jp-payroll-net, jp-payroll-suite, jp-payslip-audit, jp-retirement-tax, jp-social-insurance, meal-vision, ocr, parse, pdf-info, pdf-merge, pdf-pages, portrait-analysis, report-pack, structured, style-profile, style-report, verify. Product id (see the enum) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description adds genuinely useful behavioral context beyond that: the payload is a *recorded* production response, it is free, and it is flagged with sample:true, which tells the agent the data is illustrative and not live processing of its own input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded and earns its place, but the trailing 'Available: ...' clause reprints all 28 enum members that already appear in the schema, roughly doubling the length with zero added information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 single parameter is fully documented. The description covers what the sample is, where it comes from, and how it is flagged, leaving only minor gaps (e.g. whether the sample corresponds to the same shape as the live paid call).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'product' parameter is a fully enumerated, documented string, so the schema carries the semantics. The description's product list simply restates the same enum values verbatim and adds no syntax, format, or selection meaning beyond it — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Free recorded sample response for a paid product') and makes the scope explicit: it returns a preview of the exact response shape rather than doing the work. This cleanly separates it from the paid sibling tools (document_pipeline, enrich_company, ocr_image, etc.), which an agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear selection context: 'see the exact response shape before paying anything', i.e. call this when previewing a paid product's output rather than invoking the paid tool. It does not name an explicit alternative or a when-not-to-use condition, so it falls short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_bonus_netJp Bonus NetAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age in years (selects care-insurance and other age-gated rules) | |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| bonus_yen | Yes | Bonus amount in yen | |
| x_payment | No | Optional: 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. | |
| dependents | No | Dependents object (see /catalog input spec) | |
| prefecture | Yes | Prefecture (romaji or Japanese), e.g. 'Tokyo' | |
| ytd_bonus_yen | No | Bonus paid so far in the fiscal year (health-insurance annual cap check) | |
| previous_month_after_si_yen | No | Previous month's pay after social insurance (withholding table lookup) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
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.
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.
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.
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.
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.
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.
jp_business_daysJp Business DaysAIdempotentInspect
Japanese holidays, business-day arithmetic, statutory filing deadlines with holiday shift, wareki conversion. $0.003/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Required by mode (default add): add -> from, days; between -> from, to; holidays -> year; deadline -> kind, base_date; wareki -> date.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD | |
| date | No | Date YYYY-MM-DD | |
| days | No | Number of business days to add | |
| from | No | Start date YYYY-MM-DD | |
| kind | No | One of: withholding_tax_monthly, social_insurance_monthly, corporate_tax, consumption_tax_corporate, income_tax_final, consumption_tax_individual, depreciable_assets, legal_records. Statutory deadline kind (see enum) | |
| mode | No | Required by mode (default add): add -> from, days; between -> from, to; holidays -> year; deadline -> kind, base_date; wareki -> date. | add |
| year | No | Calendar year | |
| base_date | No | Base date YYYY-MM-DD for deadline calculation | |
| x_payment | No | Optional: 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. | |
| saturday_off | No | Treat Saturdays as non-business days (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses pricing ($0.003/call), determinism, primary-source citation, and a billing policy that errors and unverified rules are never charged. That is meaningful behavioral context for a paid endpoint. It does not explain the readOnlyHint=false flag or payment handshake flow, which the schema's x_payment field covers instead.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Capabilities are front-loaded, followed by price, guarantees, and the mode contract — a sensible priority order. The mode mapping duplicates text already present in the schema's mode description, which is minor redundancy rather than noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full schema coverage, the description need not explain return values, and it covers all five modes and their required inputs. Only the optional x_payment flow and defaults like saturday_off are left entirely to the schema, which is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 10 parameters, so the schema already documents each field including the mode enum. The description's mode-to-param mapping adds orientation but is largely a repeat of the mode parameter's own schema description, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names specific capabilities: Japanese holidays, business-day arithmetic, statutory filing deadlines with holiday shift, and wareki conversion. No sibling (jp_payroll_net, jp_consumption_tax, jp_social_insurance, etc.) covers holiday calendars or day arithmetic, so an agent can route here unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mode-to-parameter contract ('add -> from, days; between -> from, to; holidays -> year; deadline -> kind, base_date; wareki -> date') tells the agent exactly how to configure a call for each use case. It gives clear context but no explicit when-not or alternative-tool guidance, since no sibling offers overlapping functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_company_profileJp Company ProfileAIdempotentInspect
Japanese company site to a standard profile JSON (name, address, representative, capital, contact). $0.03/site. Choose this when you have the URL of a Japanese company's OWN site and want its standard profile fields read from the page; for name/domain lookups use enrich_company (country_hint: jp).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the input (web page or PDF, per tool) | |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is partly covered; the description adds the per-call cost ($0.03/site) and the source constraint (page must be the company's own site, not a directory/lookup). It does not state in prose that a payment header is required for actual execution, though the price mention and the x_payment schema field imply the paid flow. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler: cost, capability, and routing rule all front-loaded. The opening fragment ('Japanese company site to a standard profile JSON') is grammatically elliptical, which costs a point but does not obscure meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is not obligated to explain return values, and annotations cover the safety hints; the field list and the enrich_company routing make it sufficient for correct invocation. The only minor gap is that the prose never says the call is payment-gated, leaving that entirely to the x_payment schema description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 applies, but the description adds real selection semantics for the url parameter — it must be the company's OWN site, not a name or domain query — which the schema's generic 'Absolute http(s) URL of the input' does not convey. The x_payment parameter is left entirely to the schema, which is acceptable given its detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific transformation (page -> standard profile JSON) and enumerates the exact output fields (name, address, representative, capital, contact), so the agent knows precisely what it gets. It also explicitly contrasts itself with the sibling enrich_company, making the two tools distinguishable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the selecting condition ('when you have the URL of a Japanese company's OWN site') and the negative case with the alternative to use instead ('for name/domain lookups use enrich_company (country_hint: jp)'). This is explicit when-to-use / when-not-to-use routing that most definitions lack.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_consumption_taxJp Consumption TaxAIdempotentInspect
Consumption tax: per-rate invoice rounding, qualified-invoice validation, simplified taxation, 20% special. $0.01/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Required by mode (default invoice_totals): invoice_totals -> lines; validate_invoice -> document; simplified -> taxable_sales_excl_yen, category; two_percent -> taxable_sales_excl_yen, taxable_period_start, taxable_period_end.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Required by mode (default invoice_totals): invoice_totals -> lines; validate_invoice -> document; simplified -> taxable_sales_excl_yen, category; two_percent -> taxable_sales_excl_yen, taxable_period_start, taxable_period_end. | invoice_totals |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| lines | No | Invoice lines [{amount_yen, qty, rate_key: standard|reduced}] | |
| category | No | Simplified-taxation business class 1-6 | |
| document | No | Qualified-invoice fields to validate (registration_number etc.) | |
| x_payment | No | Optional: 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. | |
| taxable_period_end | No | Taxable period last day YYYY-MM-DD (two_percent) | |
| taxable_period_start | No | Taxable period first day YYYY-MM-DD (two_percent) | |
| taxable_sales_excl_yen | No | Taxable sales excluding tax, in yen |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (idempotentHint=true, destructiveHint=false), the description discloses cost ($0.01/call), the billing guarantee that errors and unverified rules are never billed, and that output is deterministic and cites primary sources. Those are meaningful behavioral traits an agent cannot get from the annotation block; only the x402 payment mechanics are left to 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose, pricing, guarantees, and mode routing are front-loaded and the whole thing is compact. The only waste is the long 'Required by mode...' clause, which duplicates the schema's mode description almost word-for-word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nine parameters, nested objects, an output schema, and annotations, the description supplies the missing commercial context (price, billing rules, deterministic sourcing) plus mode routing. It is nearly complete; a hint about as_of selecting the rules version and the uncharged x_payment discovery flow would close the gap, though the latter is covered in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter, including the mode->parameter mapping. The description reproduces that mapping verbatim rather than adding syntax, formats, or defaults that the schema lacks, so this is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific domain (Japanese consumption tax) and enumerates concrete capabilities: per-rate invoice rounding, qualified-invoice validation, simplified taxation, and the 20% special case. That scope cleanly separates it from neighbors like jp_crypto_tax, jp_retirement_tax, and verify_invoice, so an agent can pick 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mode->parameter mapping implicitly tells the agent which mode fits which input shape (invoice lines vs. document vs. taxable sales), which is real routing guidance. However, it never states when to prefer this tool over alternatives such as verify_invoice or quote_parse, nor any prerequisites, so usage 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.
jp_crypto_taxJp Crypto TaxAIdempotentInspect
Japan crypto-asset tax: realized income under the NTA total-average or moving-average method (sell/spend/exchange as disposals, fees deductible), verified against the official NTA FAQ examples. $0.05/call. Deterministic, cites primary sources; errors and unverified rules are never billed.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year | |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| method | No | One of: total_average, moving_average. Cost method: total_average or moving_average | total_average |
| opening | No | Carried-over holdings [{asset, qty, cost_jpy}] | |
| x_payment | No | Optional: 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. | |
| transactions | Yes | Crypto transactions list (max 300) - see /catalog input spec | |
| other_taxable_income_yen | No | Other taxable income in yen (returns incremental income tax as reference) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (idempotent, non-destructive, openWorld), and the description adds genuinely useful behavioral context beyond them: per-call cost ($0.05/call), determinism, primary-source citation, and the billing guarantee that errors and unverified rules are never charged. It stops short of describing rate limits or the output shape, but the pricing/billing disclosure is the key unknown for a paid call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the purpose before cost and correctness claims. Every clause carries information, though the closing billing/guarantee language leans slightly promotional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema fully documents all parameters. Combined with annotations covering safety and the description covering cost, determinism, and verification basis, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters, including the x_payment header and its unpaid-requirements behavior. The description adds method-level semantics (fees deductible, what counts as a disposal) but no per-parameter syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific computation (Japan crypto-asset realized income) with the two supported cost methods (total_average, moving_average) and defines what counts as a disposal (sell/spend/exchange). This clearly distinguishes it from the other jp_* tax calculators in the sibling list 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the two available methods but gives no guidance on when to pick total_average vs moving_average, nor any prerequisite or when-not-to-use condition relative to siblings like jp_consumption_tax or jp_retirement_tax. Usage is only implied by the tool's domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_dependent_thresholdJp Dependent ThresholdAIdempotentInspect
Income-wall analysis: tax, social insurance (1.06M/1.30M), spousal and student-dependent walls. $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Choose this for 'how much can be earned before ...' questions: it locates the income walls (tax, social insurance, spousal, student dependent) for an annual income. It does not compute take-home pay (use jp_payroll_net).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year | |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| x_payment | No | Optional: 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. | |
| annual_income_yen | Yes | Expected annual income in yen |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: per-call price ($0.02), billing policy (errors and unverified rules are never billed), determinism, and source citation behavior — none of which appear in the annotation block. It also implies the payment/auth path that explains why readOnlyHint is false, since the call is billed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and pricing, and the routing sentence comes before the exclusion. The list of wall types is repeated twice (opening line and 'Choose this for' sentence), a minor redundancy that keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, annotations cover idempotency and world-openness, and the schema fully documents params — the description supplies the remaining decision-relevant facts (cost, billing, determinism, alternative tool). Nothing an agent needs to select and call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so year, as_of, x_payment, and annual_income_yen are already documented in the schema. The description only reinforces the annual-income input implicitly and adds no format or constraint detail beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it 'locates the income walls (tax, social insurance, spousal, student dependent) for an annual income.' It explicitly names the sibling it is not (jp_payroll_net) and what that sibling does instead, so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger phrase ('how much can be earned before ...' questions) and an explicit exclusion with a named alternative ('does not compute take-home pay (use jp_payroll_net)'). Both the when and the when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_mortgageJp MortgageAIdempotentInspect
Mortgage schedules (level payment/principal), total interest, prepayment effect. $0.005/call. Deterministic, cites primary sources; errors and unverified rules are never billed.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | One of: level_payment, level_principal. Cost method: total_average or moving_average | level_payment |
| months | Yes | Loan term in months | |
| x_payment | No | Optional: 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. | |
| prepayment | No | Optional prepayment {at_month, amount_yen, mode: reduce_term|reduce_payment} | |
| annual_rate | Yes | Annual interest rate as a decimal, e.g. 0.01 | |
| principal_yen | Yes | Loan principal in yen |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is idempotent and non-destructive, but the description adds genuinely useful behavioral facts the annotations cannot: a $0.005 per-call cost, deterministic output, primary-source citation, and a billing policy that errors/unverified rules are never charged. That pricing and billing behavior is material for a pay-per-call service; it stops short of describing result format or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the computed outputs, with the cost and billing guarantee packed economically into the second. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and an output schema exist, so return values need not be explained. The description covers purpose, cost, and billing policy, but is silent on what distinguishes the two payment methods or how prepayment interacts with them, which is the kind of nuance an agent would benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description echoes the two enumeration values (level payment/principal) and mentions prepayment effect, but adds no format or semantic detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (mortgage) and its outputs: schedules under level payment/principal methods, total interest, and prepayment effects. This clearly separates it from the adjacent Japanese-finance siblings (jp_payroll_net, jp_consumption_tax), though it never explicitly names 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus siblings, nor any prerequisite or exclusion. The agent can infer the domain from 'mortgage schedules', but no routing guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_overtime_wageJp Overtime WageAIdempotentInspect
Overtime premium pay (Labor Standards Act Art.37, official rounding notice) and Article-36 limit check. $0.015/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Required by mode (default pay): pay -> monthly_salary_yen, monthly_scheduled_hours, hours; check36 -> monthly_overtime_hours.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Required by mode (default pay): pay -> monthly_salary_yen, monthly_scheduled_hours, hours; check36 -> monthly_overtime_hours. | pay |
| hours | No | Hours worked | |
| x_payment | No | Optional: 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. | |
| monthly_salary_yen | No | Monthly base salary in yen | |
| monthly_overtime_hours | No | List of monthly overtime hours (36-agreement check) | |
| monthly_scheduled_hours | No | Scheduled working hours per month |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations covering safety hints, the description still adds real behavioral context: a concrete price ($0.015/call), a determinism guarantee, primary-source citation, and a billing policy that errors and unverified rules are never charged. The schema's x_payment field covers the payment handshake. It loses a point for not clarifying that this is a side-effect-free calculator while readOnlyHint=false, which could make an agent wonder whether calling it mutates anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Pricing and the two modes are front-loaded ahead of the parameter requirements, and the whole thing is compact. The final clause restates the `mode` enum description word-for-word, which is dead weight in an otherwise efficient definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a present output schema (no need to explain returns), full schema coverage, and annotations covering hints, the description supplies the remaining essentials: cost, billing policy, mode selection, and the statutory basis. The only residual gap is the internal structure of the `hours` object, which is minor for a paid, deterministic calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description's mode sentence is a near-verbatim duplicate of the `mode` property description rather than added meaning. Crucially it does not explain the shape of the nested `hours` object or how regular vs. overtime hours are distinguished, which is the one place the schema ('Hours worked') is genuinely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific computation (overtime premium pay under Labor Standards Act Art.37, plus Article-36 limit check) with the legal basis, which is an unusually concrete verb+resource statement. It even enumerates the two internal capabilities. It stops short of 5 because it never distinguishes itself from payroll-adjacent siblings such as jp_payroll_net or jp_payslip_audit, leaving the agent to infer which tool owns overtime math.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mode breakdown ('pay' vs 'check36') tells the agent which parameters each path needs, which is functional routing. However, that is parameter guidance rather than use-case guidance: there is no statement of when to pick this tool over a sibling, no prerequisites, and no exclusions. Usage is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_payroll_netJp Payroll NetAIdempotentInspect
Annual gross salary to net take-home (social insurance + income tax + resident tax). Exact NTA Beppyo-5 table. $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Choose this for a whole YEAR: annual gross salary to annual take-home after social insurance, income tax and resident tax. For one bonus use jp_bonus_net; for one month's premiums only use jp_social_insurance; to check an actual payslip use jp_payslip_audit.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age in years (selects care-insurance and other age-gated rules) | |
| year | No | Calendar year | |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| x_payment | No | Optional: 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. | |
| dependents | No | Dependents object (see /catalog input spec) | |
| prefecture | Yes | Prefecture (romaji or Japanese), e.g. 'Tokyo' | |
| annual_bonus_yen | No | Annual bonus total in yen | |
| annual_gross_yen | Yes | Annual gross salary in yen |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the cost model ($0.02/call), the billing guarantee (errors and unverified rules are never billed), determinism, and the primary-source citation claim. The 'exact NTA Beppyo-5 table' note and the paid nature of the call are consistent with readOnlyHint=false and openWorldHint=true, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core transformation and the sibling routing, which is the right ordering. However the same phrase is substantially restated twice ('Annual gross salary to net take-home (social insurance + income tax + resident tax)' then 'annual gross salary to annual take-home after social insurance, income tax and resident tax'), so one sentence could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a paid calculation tool: cost, billing exceptions, determinism, scope and sibling alternatives are all covered, and an output schema exists so return shape needn't be described. The payment handshake is only covered by the schema's x_payment field rather than the description, which is a minor gap given this is a chargeable call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains annual_gross_yen, prefecture, age, year, as_of, dependents and the x_payment flow. The description adds no parameter-level detail beyond restating 'annual gross salary' and the deduction categories, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific transformation (annual gross salary → net take-home) and enumerates the deduction components: social insurance, income tax, resident tax. It explicitly stakes out the annual scope and names the sibling tools that cover the adjacent cases, so an agent can distinguish it from jp_bonus_net, jp_social_insurance and jp_payslip_audit immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to choose this 'for a whole YEAR' and then routes three concrete alternative intents: one bonus → jp_bonus_net, one month's premiums only → jp_social_insurance, verify a real payslip → jp_payslip_audit. Both the when and the when-not are stated with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_payroll_suiteJp Payroll SuiteAIdempotentInspect
Japan payroll suite: net salary + social insurance + income walls (+bonus) in one call. Flat $0.05. Choose this when you want take-home pay, social insurance and the income walls (and the bonus, if given) together from one annual figure in one call; if you only need the take-home amount, jp_payroll_net is cheaper.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age in years (selects care-insurance and other age-gated rules) | |
| x_payment | No | Optional: 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. | |
| dependents | No | Dependents object (see /catalog input spec) | |
| prefecture | Yes | Prefecture (romaji or Japanese), e.g. 'Tokyo' | |
| annual_bonus_yen | No | Annual bonus total in yen | |
| annual_gross_yen | Yes | Annual gross salary in yen | |
| previous_month_after_si_yen | No | Previous month's pay after social insurance (withholding table lookup) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the one genuinely new behavioral fact, the flat $0.05 charge, but says nothing about how the x402 payment flow behaves or what happens when required inputs are missing. Useful addition, not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the composite scope and cost, then the routing rule. Slightly wasteful: 'in one call' is repeated twice and 'Flat $0.05' could be merged into the selection sentence, but the whole thing is short and every part is functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 idempotency and safety. What remains thin is the payment path: the x_payment parameter's charge-avoidance behavior is only in the schema, not reinforced against the advertised $0.05. Adequate for a 7-parameter composite calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description only restates that the calculation derives from 'one annual figure' and 'the bonus, if given'; it adds no meaning about prefecture, age, dependents or previous_month_after_si_yen beyond what the schema documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific composite resource: net salary, social insurance and income walls computed from one annual gross figure, optionally with bonus. It explicitly names the sibling it is not (jp_payroll_net) and the difference between them, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('when you want take-home pay, social insurance and the income walls... in one call') and when-not ('if you only need the take-home amount, jp_payroll_net is cheaper'), with a cost-based selection criterion. 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.
jp_payslip_auditJp Payslip AuditAIdempotentInspect
Audit a Japanese payslip: recompute statutory premiums and withholding tax from official tables and diff against the actual amounts, with per-item verdicts (match/explainable/mismatch). $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Choose this when you HAVE an actual payslip and want each deduction checked against the official tables (match/explainable/mismatch); to compute expected amounts from a salary alone use jp_payroll_net or jp_social_insurance.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age in years (selects care-insurance and other age-gated rules) | |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| payslip | Yes | Payslip fields to audit - see /catalog input spec | |
| x_payment | No | Optional: 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. | |
| prefecture | Yes | Prefecture (romaji or Japanese), e.g. 'Tokyo' | |
| standard_monthly_yen | No | Standard monthly remuneration if known (else estimated from salary) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by disclosing cost ($0.02/call), billing exclusions (errors and unverified rules never billed), determinism, and source citation behavior. The x_payment parameter note completes the payment flow: omitting it returns accepts[]/docs without a charge, which resolves the main operational risk for a paid tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and result, then pricing, then the routing rule; no sentence is filler. It is dense – three distinct concerns packed into one block – but each earns its place for a paid, deterministic audit tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the description still summarizes the verdict taxonomy. Payment mechanics, billing guarantees, determinism, and sibling routing are all covered, so an agent has everything needed to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns a 4 by tying parameters to behavior: 'as_of' selects the rules version and 'age' gates care-insurance and age-dependent rules, which is genuinely useful model context. It does not, however, explain the nested 'payslip' payload beyond pointing to '/catalog input spec', leaving the required payload shape off-tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Audit a Japanese payslip') plus the method: recompute statutory premiums and withholding tax from official tables and diff against actual amounts. The output artifact (per-item match/explainable/mismatch verdicts) is named, so an agent knows exactly what it gets back, and the tool is distinguishable from the calculation siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit selection rule: 'Choose this when you HAVE an actual payslip'. It also names the contrasting condition and the specific alternatives ('to compute expected amounts from a salary alone use jp_payroll_net or jp_social_insurance'), so the boundary against the two closest siblings is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_retirement_taxJp Retirement TaxAIdempotentInspect
Retirement income tax: deduction by years of service, half-taxation rules, exact withholding rounding. $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed.
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional: 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. | |
| disability | No | True if retirement is due to disability (extra deduction) | |
| is_officer | No | True for an officer/executive (short-service officer rules) | |
| payout_yen | Yes | Retirement allowance paid, in yen | |
| years_of_service | Yes | Years of service (retirement income deduction) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent=true, destructive=false and openWorld=true, so safety is partly covered. The description still adds real behavioral value beyond the schema: per-call pricing ($0.02), determinism, primary-source citation, and a no-charge-on-error policy, plus the x_payment parameter documents a dry-run payment-requirements flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight, front-loaded fragments with no filler; the core computation leads and pricing/behavioral caveats follow. Every sentence earns its place, though the terse fragment style slightly reduces readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100%-covered schema and an output schema present, return values need no explanation and the description wisely omits them. It covers rules and billing behavior adequately; the only notable gap is routing guidance relative to sibling tax tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all five parameters including the payment header, disability and officer flags. The description references years-of-service deduction logic but adds no syntax, format, or edge-case detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely (retirement income tax) and the specific computation enclosed (deduction by years of service, half-taxation rules, withholding rounding), so an agent knows exactly what output to expect. It does not, however, differentiate itself from the dense cluster of jp_* payroll/tax siblings (e.g. jp_payroll_net, jp_consumption_tax), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative among the many sibling tools that also compute Japanese income taxes. The agent must guess whether this is the right tool versus jp_payroll_net or jp_payslip_audit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_social_insuranceJp Social InsuranceAIdempotentInspect
Monthly social insurance premiums from the official Kyokai-Kenpo grade table (FY2026). $0.01/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Choose this when you only need the monthly social insurance premiums for a given monthly remuneration (official grade table); no tax is computed - for take-home pay use jp_payroll_net.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age in years (selects care-insurance and other age-gated rules) | |
| as_of | No | Calculation reference date YYYY-MM-DD (default today); selects the rules version | |
| x_payment | No | Optional: 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. | |
| prefecture | Yes | Prefecture (romaji or Japanese), e.g. 'Tokyo' | |
| monthly_remuneration_yen | Yes | Monthly remuneration in yen (grade table lookup) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing per-call pricing ($0.01/call), the billing guarantee (errors and unverified rules are never billed), determinism, and primary-source citation behavior. This also contextualizes the readOnlyHint=false annotation, which would otherwise look surprising for a pure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the what and the data source, then pricing, then the sibling routing rule — no wasted sentences. Slightly dense with parentheticals, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic, output-schema-backed calculation tool, the description covers source, scope, cost model, and alternative routing; return values need not be explained given the output schema. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including the x_payment payment flow and age-gated rules) are already documented in the schema. The description adds only the framing that remuneration is a grade-table lookup, which the schema already says; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (monthly social insurance premiums) with a specific source (official Kyokai-Kenpo grade table, FY2026), and explicitly bounds the scope to premiums only, excluding tax. An agent can distinguish it from jp_payroll_net 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Choose this when you only need...' condition plus a named alternative and its selection rule ('for take-home pay use jp_payroll_net'). Both the when and the when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_visionMeal VisionAIdempotentInspect
Analyze a meal photo to itemized nutrition JSON: dishes, portions, kcal, macros with per-item confidence, reference-object scale calibration, scene-complexity detection, a disclosed calibrated kcal range, PFC balance ratios and alcohol-aware 4/4/9 cross-checks. Calibrated on 30 weighed meals (range contained truth in 26/30). Every call is a 3-run consensus with disclosed spread + item agreement. $0.05/image.
| Name | Required | Description | Default |
|---|---|---|---|
| hints | No | cuisine/context hint, e.g. 'Japanese teishoku, small diet portions' - measurably improves accuracy on regional home-style meals | |
| image_url | No | Absolute http(s) URL of the image (JPEG/PNG/WebP) | |
| pack_code | No | retry credit issued after an unbilled failed call (replaces payment) | |
| x_payment | No | Optional: 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. | |
| image_base64 | No | Base64-encoded image bytes (alternative to image_url) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile, and the description adds genuinely useful behavior the annotations cannot convey: every call is a 3-run consensus with disclosed spread and item agreement, the calibrated range contained truth in 26/30 weighed meals, and the cost is $0.05/image. Missing is any statement of what happens on failure/retry beyond the pack_code note 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first clause, followed by output contents, calibration evidence, consensus behavior and price. Three of the five sentences earn their place; the dense feature list ('PFC balance ratios and alcohol-aware 4/4/9 cross-checks') drifts toward marketing padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 re-explained, and the description still covers cost, consensus methodology and calibration honesty. The main gap is routing guidance relative to the many sibling extraction/OCR tools, which is not addressed at all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the five parameters (hints, image_url, image_base64, x_payment, pack_code) are already fully documented in the schema. The description adds almost no parameter-level meaning beyond echoing that nutrition output is produced, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Analyze a meal photo to itemized nutrition JSON') plus an enumerated scope of outputs (dishes, portions, kcal, macros, confidence). That is clearly distinguishable from siblings like ocr_image, portrait_analysis and document_pipeline 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the output description and the hints note ('measurably improves accuracy on regional home-style meals'). It never says when to pick this over ocr_image or structured_extract, and gives no exclusions or prerequisites beyond the payment mechanics that live in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ocr_imageOcr ImageAIdempotentInspect
OCR one image to text with dual-engine consensus, calibrated confidence and per-segment corroboration. Japanese-strong. Flat $0.05/image. Choose this when the input is an IMAGE (photo, screenshot, receipt); for PDFs use parse_document.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | One of: japanese, latin. Expected script for OCR: japanese or latin | japanese |
| image_url | No | Absolute http(s) URL of the image (JPEG/PNG/WebP) | |
| x_payment | No | Optional: 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. | |
| image_base64 | No | Base64-encoded image bytes (alternative to image_url) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=true, openWorldHint=true, destructiveHint=false. The description adds real operational context beyond that: dual-engine consensus, calibrated confidence, per-segment corroboration, and a flat $0.05/image cost, which matters because this call is billed. It does not mention the x402 payment handshake, though the schema covers it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, front-loaded with the capability and cost, then the routing rule. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema documents the one-of input and payment header. The routing rule and cost complete the picture; only the payment-requirement flow 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so lang, image_url, image_base64 and x_payment are already documented in the schema. 'Japanese-strong' hints at the lang default but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (OCR) plus resource (one image) plus the differentiating capabilities (dual-engine consensus, calibrated confidence, per-segment corroboration) and the language specialty. It explicitly names the sibling it is not: parse_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the selection condition directly: 'Choose this when the input is an IMAGE (photo, screenshot, receipt); for PDFs use parse_document.' Both the when and the when-not are given, with the alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator_historyx402 operator track record (Market402)ARead-onlyIdempotentInspect
Free 12-week measured score history for any x402 operator from the Market402 index (weekly series, trend, volatility, badge). Check a seller's record before your agent pays an unfamiliar endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| operator | Yes | operator domain, e.g. mart402.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, openWorld, and non-destructive behavior. The description adds meaningful context beyond those: the data is free, spans a 12-week window, and includes weekly series, trend, volatility, and badge, which helps the agent understand the payload without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core resource and data content, followed immediately by the usage condition. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with an output schema and complete annotations, the description supplies what is needed: what the tool returns, what the 12-week window means, and when to invoke it. Parameter requirements are fully documented in the schema, so no critical gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has one parameter with 100% schema description coverage, including an example domain. The description adds no syntax or format details beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource — 12-week measured score history for an x402 operator from the Market402 index — with the key returned dimensions (weekly series, trend, volatility, badge). It does not explicitly differentiate from sibling tools such as search_x402_services, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear use condition: 'Check a seller's record before your agent pays an unfamiliar endpoint.' It gives context but does not name alternatives or when-not-to-use cases, 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.
parse_documentParse DocumentAIdempotentInspect
Parse a PDF to structured Markdown (hallucination-guarded OCR for scanned pages, Japanese-strong). Pass url (one step: the 402 quotes the exact price for that PDF) or quote_id from quote_parse (price fixed by the quote). One of the two is required. Choose this when the input is a PDF and you want its full text as Markdown; call pdf_info first if you do not know whether it is scanned, and use document_pipeline instead for invoices you also want verified.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Absolute http(s) URL of the PDF (one-step form) | |
| quote_id | No | quote_id returned by quote_parse (price is fixed by the quote) | |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false, but the description adds the substantive behavioral detail those annotations omit: the 402 response quotes an exact price, omitting x_payment returns payment requirements without being charged, and quote_id locks the price. This is real value beyond structured fields, though limits such as document size or failure handling are unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, all load-bearing, with the core capability front-loaded before routing and payment mechanics. The stacked parentheticals in sentence one are slightly packed, but nothing is padding or repetition of the name/title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. For a 3-parameter paid tool with no required fields, the description covers capability, output form, parameter choice, prerequisites (pdf_info), alternatives (document_pipeline), and the payment lifecycle an agent must navigate to invoke it successfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description goes further by explaining the semantic relationship declared only structurally in x-required-one-of: 'One of the two is required', plus the tradeoff that url is the one-step form while quote_id carries a pre-fixed price. That interpretation is not derivable from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource with the exact output form: 'Parse a PDF to structured Markdown'. The parentheticals add distinguishing traits (hallucination-guarded OCR, Japanese-strong) that separate it from the many other PDF siblings. An agent can identify this 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: choose this when the input is a PDF and full text as Markdown is wanted; call pdf_info first if scanning status is unknown; use document_pipeline for invoices needing verification. It also states how to choose between url and quote_id (one-step vs. fixed price). Both when-to-use and alternatives are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_infoPdf InfoAIdempotentInspect
PDF facts before you pay for parsing: pages, metadata, per-page text volume, scanned-or-not estimate. $0.001. Choose this first for any unknown PDF (cheapest real call); then parse_document, pdf_pages or document_pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the input (web page or PDF, per tool) | |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (destructive=false, idempotent=true, openWorld=true), and the description adds the cost dimension ('$0.001', 'cheapest real call') plus the cheap-probe-before-parsing workflow, which is genuine context not in the structured fields. It does not contradict readOnlyHint=false (the paid call is a real side effect), though it never explicitly frames itself as a metered x402 call — that detail lives only in the x_payment schema field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler; the value proposition and cost come first, then the routing instruction. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 previews the payload (pages, metadata, text volume, scan estimate). Purpose, cost, and downstream routing are all covered for a 2-param read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both url and x_payment are already documented in the schema, including the omit-to-get-payment-requirements behavior. The description adds no parameter-level syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('PDF facts') and enumerates the exact outputs: pages, metadata, per-page text volume, scanned-or-not estimate. It explicitly positions itself against siblings parse_document, pdf_pages and document_pipeline, so an agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Choose this first for any unknown PDF (cheapest real call); then parse_document, pdf_pages or document_pipeline' gives an explicit ordering rule and names the alternatives that follow. When-to-use and which-sibling-next are both spelled out rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_mergePdf MergeAIdempotentInspect
Merge 2-10 PDFs into one, in order. Deterministic, $0.003.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | List of absolute PDF URLs, in order (2-10) | |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=true). The description adds two facts those annotations do not: the operation is deterministic and it costs $0.003, which is genuinely useful for a paid tool. It still says nothing about failure behavior or turnaround, hence 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, front-loaded with the operation and its cardinality limit, and each clause carries information: ordering, bound, determinism, price. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the payment mechanics are documented in the x_payment parameter. The description signals that the call is paid ($0.003), covering the main non-schema concern; only error/latency expectations are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the two parameters are fully documented there, including the ordering constraint and the x_payment flow, so the baseline of 3 applies. "In order" echoes the schema's own wording rather than adding syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ("Merge 2-10 PDFs into one, in order"), which is unambiguous and inherently distinguishes it from the read-oriented siblings pdf_info and pdf_pages. It stops short of explicitly contrasting itself with any sibling, so it lands at clear-but-undifferentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the constraint (combine 2-10 PDFs) plus the cost note, but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative such as pdf_pages or document_pipeline. The price signal gives a decision-relevant cue but no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_pagesPdf PagesAIdempotentInspect
Extract pages from a PDF by 1-based ranges (e.g. 1-3,7) into a new PDF. Deterministic, $0.002.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the input (web page or PDF, per tool) | |
| pages | Yes | 1-based page ranges, e.g. '1-3,7' | |
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description adds genuinely new behavioral context: a fixed $0.002 cost and the fact that output goes 'into a new PDF' (input is not mutated). It does not disclose error behavior for invalid ranges or payment-flow details beyond what the x_payment schema param already says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and scope, followed by the differentiators (deterministic, cost). No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, cost, and non-destructive output. It is slightly incomplete on error handling for malformed ranges and on how it relates to sibling PDF tools, but adequate for a simple, well-annotated extraction tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents url, pages, and x_payment. The description's '1-based ranges (e.g. 1-3,7)' merely restates the pages schema description, adding no syntax or edge-case meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Extract), resource (pages from a PDF), input format (1-based ranges), and output (a new PDF), which lets an agent separate it from siblings like pdf_merge or pdf_info by function. It stops short of naming those siblings explicitly, so there is no direct differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when the tool applies (you have a PDF and want a subset of pages), but there is no explicit when-to-use vs alternatives guidance and no mention of when to prefer pdf_merge or pdf_info. Usage is left to inference from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portrait_analysisPortrait AnalysisAIdempotentInspect
Personal color analysis from 1-3 portraits: measured pixel colorimetry (CIELAB/ITA) cross-checked against vision-model attributes, cross-photo lighting consistency, then a published deterministic rule table gives the 4-season verdict with palette and style advice. No identification; images not stored. Flat $0.05/call. Choose this when you need only the seasonal color verdict and palette as JSON. For the fuller styling verdict (face impression, body frame, silhouette) use style_profile; for a finished PDF for a human client use style_report.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral | neutral |
| images | No | up to 3 of {image_url|image_base64}; different lighting recommended | |
| image_url | No | Absolute http(s) URL of the image (JPEG/PNG/WebP) | |
| pack_code | No | retry credit issued after an unbilled failed call (replaces payment) | |
| x_payment | No | Optional: 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. | |
| image_base64 | No | Base64-encoded image bytes (alternative to image_url) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing cost ($0.05/call), the x402 payment handshake (omitting x_payment returns payment requirements without being charged), retry-credit behavior via pack_code, and privacy guarantees ('no identification; images not stored'). It also flags cross-photo lighting consistency as part of processing, which an agent needs in order to submit valid inputs. Nothing here contradicts the readOnlyHint/openWorldHint/idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The method, cost, and privacy caveats are front-loaded before the routing sentence, and every sentence carries information. It is dense — the first sentence packs method, pipeline, and output into one clause — but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be restated, and the description still names the verdict and palette contents. Combined with the payment mechanics, privacy statement, input-count guidance, and sibling routing, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter, and the description only echoes the '1-3 portraits' shape and the purpose of multi-image input. It adds marginal semantics (why multiple photos help) but no format or validation detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('personal color analysis from 1-3 portraits') and explains the mechanism (CIELAB/ITA colorimetry cross-checked with vision-model attributes, deterministic rule table). It also explicitly names the sibling tools it is not, so an agent can distinguish it from style_profile and style_report 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit selection rule: 'Choose this when you need only the seasonal color verdict and palette as JSON,' then routes the two alternative needs to style_profile (fuller styling verdict) and style_report (PDF for a human client). When-to-use, when-not-to-use, and alternatives are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portrait_precheckCheck a portrait photo (free)ARead-onlyIdempotentInspect
FREE analyzability check before paying for portrait_analysis: is a face detectable, is the photo quality good enough (clipping/color cast)? Deterministic, no LLM. 10/hour/IP.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | No | Absolute http(s) URL of the image (JPEG/PNG/WebP) | |
| image_base64 | No | Base64-encoded image bytes (alternative to image_url) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond annotations by disclosing that the check is deterministic and uses no LLM, and by stating a concrete rate limit of 10/hour/IP. Annotations already cover safety traits like read-only and idempotent, and the description adds useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the free pre-check purpose, then tightly lists the checks, deterministic nature, and rate limit. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter pre-check tool with full schema coverage and an output schema, the description covers purpose, usage routing, determinism, and rate limit. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are fully documented there, so the description is not required to add parameter meaning. It does not add syntax or format details beyond the schema, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: a free analyzability check on a portrait photo, including what it verifies (face detection, quality issues like clipping/color cast). It explicitly positions itself as distinct from portrait_analysis by being the pre-check before paying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool portrait_analysis and states the condition for using this one: before paying for the full analysis. This gives an agent a clear routing rule without needing to inspect either schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_parseQuote a PDF parse (free, exact price)ARead-onlyIdempotentInspect
Free quote for PDF parsing: page count, route (text/scan-OCR) and the exact final price, before any payment. Use the returned quote_id with parse_document (on /mcp or /mcp/docs).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | PDF URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive, so the safety profile is done. The description adds genuinely new context the annotations don't carry: the operation is free, no payment occurs, and the returned quote_id is the credential for the follow-up parse_document call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the value proposition ('free', 'exact final price', 'before any payment') is front-loaded where the agent needs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 isn't required, and the description still previews the key return fields and the quote_id handoff. The only gap is any precondition on the input URL, which is minor for this simple one-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage ('PDF URL'), so the schema handles the semantics. The description adds nothing about URL constraints (public accessibility, size limits), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (quote a PDF parse) plus what the quote contains: page count, route, and exact price. It clearly distinguishes itself from parse_document by framing itself as the free pre-payment step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly positions the tool as coming 'before any payment' and tells the agent to use the returned quote_id with parse_document. It doesn't spell out when to skip this tool (e.g., if a quote is already held), so it stops short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_packReport PackAIdempotentInspect
Volume pricing for style_report: one $19.90 payment returns 10 single-use credit codes ($1.99/unit vs $2.99 single, en or ja, no expiry). Treat codes like cash. Not an analysis: it buys prepaid style_report credits. Choose this only when you expect to produce several style_report PDFs; pass each code as pack_code to style_report.
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional: 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so they already establish the safety profile. The description adds behavioral substance beyond them: the exact price, the fact that 10 single-use codes are returned, that the codes do not expire, that the codes should be treated like cash, and that each code must be passed to style_report as pack_code. It does not explain whether retrying after a charge could charge again, which is a minor gap against idempotentHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The pricing and what-you-get information comes first, followed by the anti-confusion clarification and then the when-to-use guidance. The pricing parentheses are dense but carry real decision value; no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return shape. It covers pricing, what is delivered, code lifetime, and the handoff to style_report. It omits only the payment-requirements probe, which the schema's x_payment description already documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, and schema coverage is 100%; the schema already explains the optional x_payment header and the flow for receiving payment requirements without being charged. The description adds no detail about x_payment itself, so the baseline 3 applies. The downstream integration note ('pass each code as pack_code to style_report') is helpful but describes the output codes, not this tool's input parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states clearly that this is a volume-pricing purchase: one $19.90 payment yields 10 single-use style_report credit codes. It also explicitly distinguishes itself from its siblings, saying 'Not an analysis: it buys prepaid style_report credits' and pointing to style_report as the consumer of the codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete condition for choosing this tool: 'Choose this only when you expect to produce several style_report PDFs.' It also implies the alternative by citing the $2.99 single-unit price. The condition that selects this tool is stated, not left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_x402_servicesSearch x402 services (Market402 index)ARead-onlyIdempotentInspect
Search the Market402 verified index of the whole x402 economy by capability (e.g. 'ocr', 'market-data'). Every result is a real, probed resource with a measured 402 Score. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Capability keyword, e.g. 'ocr', 'market-data', 'weather' | |
| limit | No | Maximum results (default 10) |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds genuinely useful behavioral context beyond that: results are real probed resources, each carries a measured 402 Score, and the call is free — none of which the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and index identity, then the differentiator (verified/probed, scored) and the cost note. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be explained, and the description covers scope, result trust, and cost. It could say slightly more about query semantics (multi-word, matching behavior) but is essentially complete for a two-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (q, limit) are already documented in the schema, including defaults and example keywords. The description's mention of 'by capability' and examples largely duplicates the schema rather than adding syntax or validation detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (the Market402 verified index of x402 services) with the query dimension (by capability) called out. An agent immediately knows this is a capability-keyword search over a curated service catalog, distinct from every sibling tool listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Search ... by capability' implies when to use it, and the examples ('ocr', 'market-data') guide query construction, but there is no explicit when-to-use/when-not statement and no named alternative among the many unrelated siblings. Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
structured_extractStructured ExtractAIdempotentInspect
Fill YOUR JSON schema from any URL (hybrid LLM + deterministic canonicalization). $0.03/call. Choose this when you have your OWN JSON schema to fill from any page; for company profiles use enrich_company or jp_company_profile.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the input (web page or PDF, per tool) | |
| schema | Yes | {key: description} pairs | |
| x_payment | No | Optional: 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. | |
| instructions | No | optional extra guidance for filling the schema |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true and idempotentHint=true, and the description adds genuinely useful context the schema doesn't: the $0.03/call cost and the hybrid LLM+deterministic execution model. It doesn't explain the unexpected readOnlyHint=false or any rate/latency behavior, but the pricing disclosure is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core purpose and cost front-loaded before the routing guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 payment path is covered in the x_payment schema. Cost and sibling routing are provided, though the description could say more about input limits (page/PDF size, schema complexity) for a service with a per-call fee.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents url, schema, x_payment, and instructions fully. The description reinforces 'your own schema' and 'any URL/PDF' but adds no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Fill YOUR JSON schema from any URL') and adds the mechanism ('hybrid LLM + deterministic canonicalization'). It also names the sibling tools it is not (enrich_company, jp_company_profile), so an agent can distinguish it without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to choose it ('when you have your OWN JSON schema to fill from any page') and names the alternatives for the company-profile case. The routing condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
style_profileStyle ProfileAIdempotentInspect
Integrated styling verdict: seasonal color (measured colorimetry consensus) + face-impression zone (published geometry rules) + body frame + integration rules (palette subset, taste, silhouette, modifiers). 1-3 face photos, optional full-body + questionnaire. Flat $0.05/call. Choose this when you want the integrated styling analysis as JSON to use or render yourself; it is the same analysis that style_report turns into a PDF. For color only use portrait_analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral | neutral |
| images | No | Up to 3 objects {image_url | image_base64} | |
| image_url | No | Absolute http(s) URL of the image (JPEG/PNG/WebP) | |
| x_payment | No | Optional: 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. | |
| image_base64 | No | Base64-encoded image bytes (alternative to image_url) | |
| questionnaire | No | Optional frame questionnaire answers (see /catalog input spec) | |
| body_image_url | No | Optional full-body photo URL for frame estimation | |
| body_image_base64 | No | See the product's input spec in /catalog |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is partly covered. The description adds genuinely new behavior: a flat $0.05/call charge (non-read-only compute), input cardinality (1-3 face photos), and the exact analytical equivalence to style_report. It does not discuss failure modes for poor photos or image retention, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The value proposition and component list are front-loaded, and the routing guidance comes last where it is needed. It is dense with domain jargon (colorimetry consensus, geometry rules) but no sentence is filler; a slightly tighter break into sentences would improve scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and cost, inputs, and sibling relationships are all covered. The questionnaire and body_image_base64 params defer to '/catalog input spec', an external reference the agent may not have loaded, which is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains every parameter, including the x_payment flow and image formats. The description only adds the '1-3 face photos, optional full-body + questionnaire' constraint, which is marginal over the schema's 'Up to 3 objects' note; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Integrated styling verdict') and enumerates its components (seasonal color, face-impression zone, body frame, integration rules). It explicitly distinguishes itself from both style_report (PDF) and portrait_analysis (color only), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Choose this when you want the integrated styling analysis as JSON to use or render yourself' gives an explicit selection condition, and 'For color only use portrait_analysis' names the alternative and the case that selects it. The style_report relationship is also clarified as output-format-only, not analytical difference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
style_reportStyle ReportAIdempotentInspect
Client-ready deliverable: the style-profile analysis rendered as a finished PDF report in English or Japanese (palette with color names, style-aware outfit formulas, virtual draping boards with disclosed candidate conflicts, honest confidence) returned as report_pdf_base64 + full profile JSON. For agents serving human end-clients. Flat $2.99/call, or $1.99/unit with a prepaid report_pack credit (pass pack_code). Choose this when the result goes to a HUMAN end-client as a finished document; if you will present the result yourself, style_profile returns the same analysis as JSON for less.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | client name printed on the report (same field as REST; client_name is accepted as an alias) | |
| style | No | One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral | neutral |
| images | No | 1-3 face photos | |
| language | No | report language | en |
| image_url | No | Absolute http(s) URL of the image (JPEG/PNG/WebP) | |
| pack_code | No | prepaid credit from report_pack (replaces payment) | |
| x_payment | No | Optional: 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. | |
| image_base64 | No | Base64-encoded image bytes (alternative to image_url) | |
| questionnaire | No | optional answers (see /catalog style-report input) | |
| body_image_url | No | optional full-body photo URL (body-shape layer) | |
| body_image_base64 | No | optional full-body photo as base64 |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations cannot carry: flat $2.99/call pricing, $1.99 with a prepaid report_pack credit, and the x_payment behavior where omitting the header returns payment requirements without being charged. It does not address whether a retried/duplicate call re-charges or how idempotency interacts with billing, which matters for a paid tool even though idempotentHint is set — that omission keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the deliverable in the first clause, then the audience, then pricing, then the sibling comparison — a sensible priority order with no filler sentences. It is dense but slightly over-packed, with the report-contents parenthetical competing for attention in the opening sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerate return values (though it names report_pdf_base64 and profile JSON), and the payment and pack-credit story is fully explained. The gap is the 11-parameter input surface: the description never mentions that at least one of image_url/image_base64/images is required, leaving that constraint entirely to the schema for a complex, nested-object call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces two parameters (language en/ja, pack_code as prepaid credit replacing payment) but adds no syntax or format meaning beyond what the schema already documents, and says nothing about the at-least-one-image requirement encoded as x-required-one-of.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact: renders a style-profile analysis as a finished PDF report in English or Japanese, returned as report_pdf_base64 plus profile JSON. It enumerates the report contents (palette with color names, outfit formulas, draping boards, confidence) and explicitly names the sibling style_profile as the JSON-only alternative, so the agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit decision rule: 'Choose this when the result goes to a HUMAN end-client as a finished document; if you will present the result yourself, style_profile returns the same analysis as JSON for less.' It also names the audience condition ('for agents serving human end-clients') and the cheaper path via pack_code, so 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.
verify_invoiceVerify InvoiceAIdempotentInspect
Verify extracted invoice fields: arithmetic consistency, line-item totals, JP registration number check-digit + corporate-number existence observation (official Japan NTA registry), accounting-ready JSON. $0.015/call. Choose this when you already HAVE invoice fields (from your own extraction) and only need them checked; to start from a PDF use document_pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Extracted invoice fields: total_jpy, tax_jpy, reg_no, invoice_no, issue_date, due_date, vendor, customer | |
| x_payment | No | Optional: 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. | |
| line_items | No | Optional line items [{description, amount_jpy}] to reconcile against the subtotal |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | JSON body of the underlying call (see /samples/{product} for each product's shape) |
| status | Yes | HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error) |
| how_to_pay | No | |
| receipt_id | No | set on paid results; free re-fetch via get_receipt |
| payment_required | No | true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (destructiveHint=false, idempotentHint=true, openWorldHint=true for the NTA lookup), so the description's added value is the per-call price ($0.015/call) and the specific external check performed. It does not explain how the x_payment charge/accepts flow interacts with a failed verification, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what gets checked, then price, then routing guidance in a single compact block. Dense but each clause carries information; the only mild redundancy is restating 'invoice' across the check list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 re-explained, and the mention of 'accounting-ready JSON' plus the precise check list, cost, and sibling routing covers everything an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself documents fields, x_payment, and line_items, so baseline is 3. The description only lightly reinforces this by naming 'line-item totals' and the per-call fee; it adds no format, enum, or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify) plus resource (extracted invoice fields) and enumerates the actual checks performed: arithmetic consistency, line-item totals, JP registration check-digit, and NTA registry lookup. It also explicitly separates itself from document_pipeline, so an agent can pick it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('when you already HAVE invoice fields from your own extraction') and an explicit when-not with the named alternative ('to start from a PDF use document_pipeline'). Routing is unambiguous.
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.
35 tool updates
- Changed
document_pipeline3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
enrich_company3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
extract_url4 fields changed- added
Input schema / properties / ttlAdded value: +{ + "default": 86400, + "description": "cache seconds (0 = no cache)", + "type": "integer" +} - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
get_catalog3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
get_receipt3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
get_sample3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_bonus_net3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_business_days3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_company_profile3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_consumption_tax3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_crypto_tax3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_dependent_threshold3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_mortgage3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_overtime_wage3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_payroll_net3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_payroll_suite3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_payslip_audit3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_retirement_tax3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
jp_social_insurance3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
meal_vision5 fields changed- added
Input schema / properties / pack_codeAdded value: +{ + "description": "retry credit issued after an unbilled failed call (replaces payment)", + "type": "string" +} - added
Input schema / x-required-one-ofAdded value: +[ + "image_url", + "image_base64" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
ocr_image4 fields changed- added
Input schema / x-required-one-ofAdded value: +[ + "image_url", + "image_base64" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
operator_history3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
parse_document4 fields changed- added
Input schema / x-required-one-ofAdded value: +[ + "url", + "quote_id" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
pdf_info3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
pdf_merge3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
pdf_pages3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
portrait_analysis5 fields changed- added
Input schema / properties / pack_codeAdded value: +{ + "description": "retry credit issued after an unbilled failed call (replaces payment)", + "type": "string" +} - added
Input schema / x-required-one-ofAdded value: +[ + "image_url", + "image_base64", + "images" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
portrait_precheck4 fields changed- added
Input schema / x-required-one-ofAdded value: +[ + "image_url", + "image_base64" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
quote_parse3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
report_pack3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
search_x402_services3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
structured_extract4 fields changed- added
Input schema / properties / instructionsAdded value: +{ + "description": "optional extra guidance for filling the schema", + "type": "string" +} - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
style_profile5 fields changed- added
Input schema / properties / body_image_base64Added value: +{ + "description": "See the product's input spec in /catalog", + "type": "string" +} - added
Input schema / x-required-one-ofAdded value: +[ + "image_url", + "image_base64", + "images" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
style_report9 fields changed- added
Input schema / properties / body_image_base64Added value: +{ + "description": "optional full-body photo as base64", + "type": "string" +} - added
Input schema / properties / body_image_urlAdded value: +{ + "description": "optional full-body photo URL (body-shape layer)", + "type": "string" +} - removed
Input schema / properties / client_nameRemoved value: -{ - "description": "name printed on the report", - "type": "string" -} - added
Input schema / properties / nameAdded value: +{ + "description": "client name printed on the report (same field as REST; client_name is accepted as an alias)", + "type": "string" +} - added
Input schema / properties / questionnaireAdded value: +{ + "description": "optional answers (see /catalog style-report input)", + "type": "object" +} - added
Input schema / x-required-one-ofAdded value: +[ + "image_url", + "image_base64", + "images" +] - added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
- Changed
verify_invoice3 fields changed- added
Output schema / properties / how_to_payAdded value: +{ + "type": "string" +} - added
Output schema / properties / payment_requiredAdded value: +{ + "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment", + "type": "boolean" +} - added
Output schema / properties / receipt_idAdded value: +{ + "description": "set on paid results; free re-fetch via get_receipt", + "type": "string" +}
5 tool updates
- Changed
jp_business_days3 fields changed- added
Input schema / properties / mode / defaultAdded value: +"add" - changed
Input schema / properties / mode / descriptionPrevious value: -"One of: add, between, holidays, deadline, wareki"New value: +"Required by mode (default add): add -> from, days; between -> from, to; holidays -> year; deadline -> kind, base_date; wareki -> date." - changed
Input schema / requiredPrevious value: -[ - "mode" -]New value: +[]
- Changed
jp_consumption_tax3 fields changed- added
Input schema / properties / mode / defaultAdded value: +"invoice_totals" - changed
Input schema / properties / mode / descriptionPrevious value: -"One of: invoice_totals, validate_invoice, simplified, two_percent"New value: +"Required by mode (default invoice_totals): invoice_totals -> lines; validate_invoice -> document; simplified -> taxable_sales_excl_yen, category; two_percent -> taxable_sales_excl_yen, taxable_period_start, taxable_period_end." - changed
Input schema / requiredPrevious value: -[ - "mode" -]New value: +[]
- Changed
jp_overtime_wage3 fields changed- added
Input schema / properties / mode / defaultAdded value: +"pay" - changed
Input schema / properties / mode / descriptionPrevious value: -"One of: pay, check36"New value: +"Required by mode (default pay): pay -> monthly_salary_yen, monthly_scheduled_hours, hours; check36 -> monthly_overtime_hours." - changed
Input schema / requiredPrevious value: -[ - "mode" -]New value: +[]
- Changed
jp_payslip_audit2 fields changed- added
Input schema / properties / payslip / propertiesAdded value: +{ + "monthly_gross_yen": { + "type": "integer" + } +} - added
Input schema / properties / payslip / requiredAdded value: +[ + "monthly_gross_yen" +]
- Changed
parse_document2 fields changed- added
Input schema / properties / urlAdded value: +{ + "description": "Absolute http(s) URL of the PDF (one-step form)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "quote_id" -]New value: +[]
35 tool updates
- Changed
document_pipeline1 field changed- changed
Output 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" +}
- Changed
enrich_company1 field changed- changed
Output 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" +}
- Changed
extract_url1 field changed- changed
Output 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" +}
- Changed
get_catalog1 field changed- changed
Output 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" +}
- Changed
get_receipt1 field changed- changed
Output 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" +}
- Changed
get_sample1 field changed- changed
Output 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" +}
- Changed
jp_bonus_net1 field changed- changed
Output 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" +}
- Changed
jp_business_days1 field changed- changed
Output 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" +}
- Changed
jp_company_profile1 field changed- changed
Output 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" +}
- Changed
jp_consumption_tax1 field changed- changed
Output 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" +}
- Changed
jp_crypto_tax1 field changed- changed
Output 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" +}
- Changed
jp_dependent_threshold1 field changed- changed
Output 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" +}
- Changed
jp_mortgage1 field changed- changed
Output 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" +}
- Changed
jp_overtime_wage1 field changed- changed
Output 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" +}
- Changed
jp_payroll_net1 field changed- changed
Output 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" +}
- Changed
jp_payroll_suite1 field changed- changed
Output 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" +}
- Changed
jp_payslip_audit1 field changed- changed
Output 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" +}
- Changed
jp_retirement_tax1 field changed- changed
Output 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" +}
- Changed
jp_social_insurance1 field changed- changed
Output 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" +}
- Changed
meal_vision1 field changed- changed
Output 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" +}
- Changed
ocr_image1 field changed- changed
Output 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" +}
- Changed
operator_history1 field changed- changed
Output 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" +}
- Changed
parse_document1 field changed- changed
Output 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" +}
- Changed
pdf_info1 field changed- changed
Output 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" +}
- Changed
pdf_merge1 field changed- changed
Output 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" +}
- Changed
pdf_pages1 field changed- changed
Output 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" +}
- Changed
portrait_analysis1 field changed- changed
Output 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" +}
- Changed
portrait_precheck1 field changed- changed
Output 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" +}
- Changed
quote_parse1 field changed- changed
Output 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" +}
- Changed
report_pack1 field changed- changed
Output 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" +}
- Changed
search_x402_services1 field changed- changed
Output 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" +}
- Changed
structured_extract1 field changed- changed
Output 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" +}
- Changed
style_profile1 field changed- changed
Output 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" +}
- Changed
style_report1 field changed- changed
Output 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" +}
- Changed
verify_invoice1 field changed- changed
Output 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" +}
16 tool updates
- Changed
get_sample1 field changed- changed
Input schema / properties / product / descriptionPrevious value: -"Product id (see the enum)"New value: +"One of: document-pipeline, enrich, extract, jp-bonus-net, jp-business-days, jp-company, jp-consumption-tax, jp-crypto-tax, jp-dependent-threshold, jp-mortgage, jp-overtime-wage, jp-payroll-net, jp-payroll-suite, jp-payslip-audit, jp-retirement-tax, jp-social-insurance, meal-vision, ocr, parse, pdf-info, pdf-merge, pdf-pages, portrait-analysis, report-pack, structured, style-profile, style-report, verify. Product id (see the enum)"
- Changed
jp_bonus_net5 fields changed- added
Input schema / properties / age / defaultAdded value: +30 - added
Input schema / properties / as_of / formatAdded value: +"date" - added
Input schema / properties / dependents / defaultAdded value: +0 - added
Input schema / properties / ytd_bonus_yen / defaultAdded value: +0 - changed
Input schema / properties / ytd_bonus_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Bonus paid so far in the fiscal year (health-insurance annual cap check)"
- Changed
jp_business_days12 fields changed- changed
Input schema / properties / base_date / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Base date YYYY-MM-DD for deadline calculation" - added
Input schema / properties / base_date / formatAdded value: +"date" - changed
Input schema / properties / date / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Date YYYY-MM-DD" - added
Input schema / properties / date / formatAdded value: +"date" - added
Input schema / properties / from / formatAdded value: +"date" - changed
Input schema / properties / kind / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"One of: withholding_tax_monthly, social_insurance_monthly, corporate_tax, consumption_tax_corporate, income_tax_final, consumption_tax_individual, depreciable_assets, legal_records. Statutory deadline kind (see enum)" - added
Input schema / properties / kind / enumAdded value: +[ + "withholding_tax_monthly", + "social_insurance_monthly", + "corporate_tax", + "consumption_tax_corporate", + "income_tax_final", + "consumption_tax_individual", + "depreciable_assets", + "legal_records" +] - changed
Input schema / properties / mode / descriptionPrevious value: -"Extraction mode: auto (fast with rendered fallback), fast, heavy"New value: +"One of: add, between, holidays, deadline, wareki" - added
Input schema / properties / mode / enumAdded value: +[ + "add", + "between", + "holidays", + "deadline", + "wareki" +] - added
Input schema / properties / saturday_off / defaultAdded value: +true - changed
Input schema / properties / saturday_off / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Treat Saturdays as non-business days (default true)" - added
Input schema / properties / to / formatAdded value: +"date"
- Changed
jp_consumption_tax5 fields changed- added
Input schema / properties / as_of / formatAdded value: +"date" - changed
Input schema / properties / mode / descriptionPrevious value: -"Extraction mode: auto (fast with rendered fallback), fast, heavy"New value: +"One of: invoice_totals, validate_invoice, simplified, two_percent" - added
Input schema / properties / mode / enumAdded value: +[ + "invoice_totals", + "validate_invoice", + "simplified", + "two_percent" +] - added
Input schema / properties / taxable_period_end / formatAdded value: +"date" - added
Input schema / properties / taxable_period_start / formatAdded value: +"date"
- Changed
jp_crypto_tax7 fields changed- added
Input schema / properties / as_of / formatAdded value: +"date" - added
Input schema / properties / method / defaultAdded value: +"total_average" - changed
Input schema / properties / method / descriptionPrevious value: -"Cost method: total_average or moving_average"New value: +"One of: total_average, moving_average. Cost method: total_average or moving_average" - added
Input schema / properties / method / enumAdded value: +[ + "total_average", + "moving_average" +] - changed
Input schema / properties / opening / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Carried-over holdings [{asset, qty, cost_jpy}]" - changed
Input schema / properties / other_taxable_income_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Other taxable income in yen (returns incremental income tax as reference)" - added
Input schema / properties / year / defaultAdded value: +2026
- Changed
jp_dependent_threshold3 fields changed- changed
Input schema / properties / annual_income_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Expected annual income in yen" - added
Input schema / properties / as_of / formatAdded value: +"date" - added
Input schema / properties / year / defaultAdded value: +2026
- Changed
jp_mortgage5 fields changed- added
Input schema / properties / method / defaultAdded value: +"level_payment" - changed
Input schema / properties / method / descriptionPrevious value: -"Cost method: total_average or moving_average"New value: +"One of: level_payment, level_principal. Cost method: total_average or moving_average" - added
Input schema / properties / method / enumAdded value: +[ + "level_payment", + "level_principal" +] - changed
Input schema / properties / months / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Loan term in months" - changed
Input schema / properties / prepayment / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Optional prepayment {at_month, amount_yen, mode: reduce_term|reduce_payment}"
- Changed
jp_overtime_wage5 fields changed- changed
Input schema / properties / mode / descriptionPrevious value: -"Extraction mode: auto (fast with rendered fallback), fast, heavy"New value: +"One of: pay, check36" - added
Input schema / properties / mode / enumAdded value: +[ + "pay", + "check36" +] - changed
Input schema / properties / monthly_overtime_hours / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"List of monthly overtime hours (36-agreement check)" - changed
Input schema / properties / monthly_salary_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Monthly base salary in yen" - changed
Input schema / properties / monthly_scheduled_hours / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Scheduled working hours per month"
- Changed
jp_payroll_net4 fields changed- added
Input schema / properties / age / defaultAdded value: +30 - added
Input schema / properties / annual_bonus_yen / defaultAdded value: +0 - added
Input schema / properties / as_of / formatAdded value: +"date" - added
Input schema / properties / year / defaultAdded value: +2026
- Changed
jp_payslip_audit3 fields changed- added
Input schema / properties / age / defaultAdded value: +30 - added
Input schema / properties / as_of / formatAdded value: +"date" - changed
Input schema / properties / standard_monthly_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Standard monthly remuneration if known (else estimated from salary)"
- Changed
jp_retirement_tax5 fields changed- added
Input schema / properties / disability / defaultAdded value: +false - changed
Input schema / properties / disability / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"True if retirement is due to disability (extra deduction)" - added
Input schema / properties / is_officer / defaultAdded value: +false - changed
Input schema / properties / is_officer / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"True for an officer/executive (short-service officer rules)" - changed
Input schema / properties / payout_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Retirement allowance paid, in yen"
- Changed
jp_social_insurance3 fields changed- added
Input schema / properties / age / defaultAdded value: +30 - added
Input schema / properties / as_of / formatAdded value: +"date" - changed
Input schema / properties / monthly_remuneration_yen / descriptionPrevious value: -"See the product's input spec in /catalog"New value: +"Monthly remuneration in yen (grade table lookup)"
- Changed
ocr_image1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Expected script for OCR: japanese or latin"New value: +"One of: japanese, latin. Expected script for OCR: japanese or latin"
- Changed
portrait_analysis1 field changed- changed
Input schema / properties / style / descriptionPrevious value: -"Styling context: feminine, masculine or neutral"New value: +"One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral"
- Changed
style_profile1 field changed- changed
Input schema / properties / style / descriptionPrevious value: -"Styling context: feminine, masculine or neutral"New value: +"One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral"
- Changed
style_report1 field changed- changed
Input schema / properties / style / descriptionPrevious value: -"Styling context: feminine, masculine or neutral"New value: +"One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral"
31 tool updates
- Changed
document_pipeline2 fields changed- added
Input schema / properties / enrich / descriptionAdded value: +"Also run issuer enrichment on the parsed invoice" - added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the input (web page or PDF, per tool)"
- Changed
enrich_company2 fields changed- added
Input schema / properties / company / descriptionAdded value: +"Company name, domain or URL" - added
Input schema / properties / country_hint / descriptionAdded value: +"ISO country hint for registry lookups, e.g. 'jp'"
- Changed
extract_url2 fields changed- added
Input schema / properties / mode / descriptionAdded value: +"Extraction mode: auto (fast with rendered fallback), fast, heavy" - added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the input (web page or PDF, per tool)"
- Changed
get_receipt1 field changed- added
Input schema / properties / receipt_id / descriptionAdded value: +"receipt_id from a paid response (rcpt_...)"
- Changed
get_sample2 fields changed- added
Input schema / properties / product / descriptionAdded value: +"Product id (see the enum)" - added
Input schema / properties / product / enumAdded value: +[ + "document-pipeline", + "enrich", + "extract", + "jp-bonus-net", + "jp-business-days", + "jp-company", + "jp-consumption-tax", + "jp-crypto-tax", + "jp-dependent-threshold", + "jp-mortgage", + "jp-overtime-wage", + "jp-payroll-net", + "jp-payroll-suite", + "jp-payslip-audit", + "jp-retirement-tax", + "jp-social-insurance", + "meal-vision", + "ocr", + "parse", + "pdf-info", + "pdf-merge", + "pdf-pages", + "portrait-analysis", + "report-pack", + "structured", + "style-profile", + "style-report", + "verify" +]
- Changed
jp_bonus_net7 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Age in years (selects care-insurance and other age-gated rules)" - added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / bonus_yen / descriptionAdded value: +"Bonus amount in yen" - added
Input schema / properties / dependents / descriptionAdded value: +"Dependents object (see /catalog input spec)" - added
Input schema / properties / prefecture / descriptionAdded value: +"Prefecture (romaji or Japanese), e.g. 'Tokyo'" - added
Input schema / properties / previous_month_after_si_yen / descriptionAdded value: +"Previous month's pay after social insurance (withholding table lookup)" - added
Input schema / properties / ytd_bonus_yen / descriptionAdded value: +"See the product's input spec in /catalog"
- Changed
jp_business_days9 fields changed- added
Input schema / properties / base_date / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / date / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / days / descriptionAdded value: +"Number of business days to add" - added
Input schema / properties / from / descriptionAdded value: +"Start date YYYY-MM-DD" - added
Input schema / properties / kind / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / mode / descriptionAdded value: +"Extraction mode: auto (fast with rendered fallback), fast, heavy" - added
Input schema / properties / saturday_off / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / to / descriptionAdded value: +"End date YYYY-MM-DD" - added
Input schema / properties / year / descriptionAdded value: +"Calendar year"
- Changed
jp_company_profile1 field changed- added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the input (web page or PDF, per tool)"
- Changed
jp_consumption_tax8 fields changed- added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / category / descriptionAdded value: +"Simplified-taxation business class 1-6" - added
Input schema / properties / document / descriptionAdded value: +"Qualified-invoice fields to validate (registration_number etc.)" - added
Input schema / properties / lines / descriptionAdded value: +"Invoice lines [{amount_yen, qty, rate_key: standard|reduced}]" - added
Input schema / properties / mode / descriptionAdded value: +"Extraction mode: auto (fast with rendered fallback), fast, heavy" - added
Input schema / properties / taxable_period_end / descriptionAdded value: +"Taxable period last day YYYY-MM-DD (two_percent)" - added
Input schema / properties / taxable_period_start / descriptionAdded value: +"Taxable period first day YYYY-MM-DD (two_percent)" - added
Input schema / properties / taxable_sales_excl_yen / descriptionAdded value: +"Taxable sales excluding tax, in yen"
- Changed
jp_crypto_tax6 fields changed- added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / method / descriptionAdded value: +"Cost method: total_average or moving_average" - added
Input schema / properties / opening / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / other_taxable_income_yen / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / transactions / descriptionAdded value: +"Crypto transactions list (max 300) - see /catalog input spec" - added
Input schema / properties / year / descriptionAdded value: +"Calendar year"
- Changed
jp_dependent_threshold3 fields changed- added
Input schema / properties / annual_income_yen / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / year / descriptionAdded value: +"Calendar year"
- Changed
jp_mortgage5 fields changed- added
Input schema / properties / annual_rate / descriptionAdded value: +"Annual interest rate as a decimal, e.g. 0.01" - added
Input schema / properties / method / descriptionAdded value: +"Cost method: total_average or moving_average" - added
Input schema / properties / months / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / prepayment / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / principal_yen / descriptionAdded value: +"Loan principal in yen"
- Changed
jp_overtime_wage5 fields changed- added
Input schema / properties / hours / descriptionAdded value: +"Hours worked" - added
Input schema / properties / mode / descriptionAdded value: +"Extraction mode: auto (fast with rendered fallback), fast, heavy" - added
Input schema / properties / monthly_overtime_hours / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / monthly_salary_yen / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / monthly_scheduled_hours / descriptionAdded value: +"See the product's input spec in /catalog"
- Changed
jp_payroll_net7 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Age in years (selects care-insurance and other age-gated rules)" - added
Input schema / properties / annual_bonus_yen / descriptionAdded value: +"Annual bonus total in yen" - added
Input schema / properties / annual_gross_yen / descriptionAdded value: +"Annual gross salary in yen" - added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / dependents / descriptionAdded value: +"Dependents object (see /catalog input spec)" - added
Input schema / properties / prefecture / descriptionAdded value: +"Prefecture (romaji or Japanese), e.g. 'Tokyo'" - added
Input schema / properties / year / descriptionAdded value: +"Calendar year"
- Changed
jp_payroll_suite6 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Age in years (selects care-insurance and other age-gated rules)" - added
Input schema / properties / annual_bonus_yen / descriptionAdded value: +"Annual bonus total in yen" - added
Input schema / properties / annual_gross_yen / descriptionAdded value: +"Annual gross salary in yen" - added
Input schema / properties / dependents / descriptionAdded value: +"Dependents object (see /catalog input spec)" - added
Input schema / properties / prefecture / descriptionAdded value: +"Prefecture (romaji or Japanese), e.g. 'Tokyo'" - added
Input schema / properties / previous_month_after_si_yen / descriptionAdded value: +"Previous month's pay after social insurance (withholding table lookup)"
- Changed
jp_payslip_audit5 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Age in years (selects care-insurance and other age-gated rules)" - added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / payslip / descriptionAdded value: +"Payslip fields to audit - see /catalog input spec" - added
Input schema / properties / prefecture / descriptionAdded value: +"Prefecture (romaji or Japanese), e.g. 'Tokyo'" - added
Input schema / properties / standard_monthly_yen / descriptionAdded value: +"See the product's input spec in /catalog"
- Changed
jp_retirement_tax4 fields changed- added
Input schema / properties / disability / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / is_officer / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / payout_yen / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / years_of_service / descriptionAdded value: +"Years of service (retirement income deduction)"
- Changed
jp_social_insurance4 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Age in years (selects care-insurance and other age-gated rules)" - added
Input schema / properties / as_of / descriptionAdded value: +"Calculation reference date YYYY-MM-DD (default today); selects the rules version" - added
Input schema / properties / monthly_remuneration_yen / descriptionAdded value: +"See the product's input spec in /catalog" - added
Input schema / properties / prefecture / descriptionAdded value: +"Prefecture (romaji or Japanese), e.g. 'Tokyo'"
- Changed
meal_vision2 fields changed- added
Input schema / properties / image_base64 / descriptionAdded value: +"Base64-encoded image bytes (alternative to image_url)" - added
Input schema / properties / image_url / descriptionAdded value: +"Absolute http(s) URL of the image (JPEG/PNG/WebP)"
- Changed
ocr_image3 fields changed- added
Input schema / properties / image_base64 / descriptionAdded value: +"Base64-encoded image bytes (alternative to image_url)" - added
Input schema / properties / image_url / descriptionAdded value: +"Absolute http(s) URL of the image (JPEG/PNG/WebP)" - added
Input schema / properties / lang / descriptionAdded value: +"Expected script for OCR: japanese or latin"
- Changed
parse_document1 field changed- added
Input schema / properties / quote_id / descriptionAdded value: +"quote_id returned by quote_parse (price is fixed by the quote)"
- Changed
pdf_info1 field changed- added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the input (web page or PDF, per tool)"
- Changed
pdf_merge1 field changed- added
Input schema / properties / urls / descriptionAdded value: +"List of absolute PDF URLs, in order (2-10)"
- Changed
pdf_pages2 fields changed- added
Input schema / properties / pages / descriptionAdded value: +"1-based page ranges, e.g. '1-3,7'" - added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the input (web page or PDF, per tool)"
- Changed
portrait_analysis3 fields changed- added
Input schema / properties / image_base64 / descriptionAdded value: +"Base64-encoded image bytes (alternative to image_url)" - added
Input schema / properties / image_url / descriptionAdded value: +"Absolute http(s) URL of the image (JPEG/PNG/WebP)" - added
Input schema / properties / style / descriptionAdded value: +"Styling context: feminine, masculine or neutral"
- Changed
portrait_precheck2 fields changed- added
Input schema / properties / image_base64 / descriptionAdded value: +"Base64-encoded image bytes (alternative to image_url)" - added
Input schema / properties / image_url / descriptionAdded value: +"Absolute http(s) URL of the image (JPEG/PNG/WebP)"
- Changed
search_x402_services2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default 10)" - added
Input schema / properties / q / descriptionAdded value: +"Capability keyword, e.g. 'ocr', 'market-data', 'weather'"
- Changed
structured_extract1 field changed- added
Input schema / properties / url / descriptionAdded value: +"Absolute http(s) URL of the input (web page or PDF, per tool)"
- Changed
style_profile6 fields changed- added
Input schema / properties / body_image_url / descriptionAdded value: +"Optional full-body photo URL for frame estimation" - added
Input schema / properties / image_base64 / descriptionAdded value: +"Base64-encoded image bytes (alternative to image_url)" - added
Input schema / properties / image_url / descriptionAdded value: +"Absolute http(s) URL of the image (JPEG/PNG/WebP)" - added
Input schema / properties / images / descriptionAdded value: +"Up to 3 objects {image_url | image_base64}" - added
Input schema / properties / questionnaire / descriptionAdded value: +"Optional frame questionnaire answers (see /catalog input spec)" - added
Input schema / properties / style / descriptionAdded value: +"Styling context: feminine, masculine or neutral"
- Changed
style_report3 fields changed- added
Input schema / properties / image_base64 / descriptionAdded value: +"Base64-encoded image bytes (alternative to image_url)" - added
Input schema / properties / image_url / descriptionAdded value: +"Absolute http(s) URL of the image (JPEG/PNG/WebP)" - added
Input schema / properties / style / descriptionAdded value: +"Styling context: feminine, masculine or neutral"
- Changed
verify_invoice2 fields changed- added
Input schema / properties / fields / descriptionAdded value: +"Extracted invoice fields: total_jpy, tax_jpy, reg_no, invoice_no, issue_date, due_date, vendor, customer" - added
Input schema / properties / line_items / descriptionAdded value: +"Optional line items [{description, amount_jpy}] to reconcile against the subtotal"
1 tool update
- Changed
jp_consumption_tax2 fields changed- added
Input schema / properties / taxable_period_endAdded value: +{ + "type": "string" +} - added
Input schema / properties / taxable_period_startAdded value: +{ + "type": "string" +}
2 tool updates
- Added
jp_crypto_tax - Added
jp_payslip_audit
10 tool updates
- Added
jp_bonus_net - Added
jp_business_days - Added
jp_consumption_tax - Added
jp_dependent_threshold - Added
jp_mortgage - Added
jp_overtime_wage - Added
jp_payroll_net - Added
jp_payroll_suite - Added
jp_retirement_tax - Added
jp_social_insurance
1 tool update
- Changed
meal_vision1 field changed- changed
Input schema / properties / hints / descriptionPrevious value: -"optional context, e.g. cuisine or menu"New value: +"cuisine/context hint, e.g. 'Japanese teishoku, small diet portions' - measurably improves accuracy on regional home-style meals"
6 tool updates
- Added
meal_vision - Added
portrait_analysis - Added
portrait_precheck - Added
report_pack - Added
style_profile - Added
style_report
2 tool updates
- Added
get_sample - Added
operator_history
4 tool updates
- Added
document_pipeline - Added
pdf_info - Added
pdf_merge - Added
pdf_pages
Publisher details
- Operator
- Mart402 · Publisher source
- Operator website
- https://mart402.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://mart402.com/agents.md · Publisher source
- Trust center
- Not available
- Restrictions
- No account, API key or OAuth. Free tools work immediately. Each paid tool call requires an x402 payment in USDC on Base; calls without payment return the exact price and are never charged. · Publisher source
Related MCP Connectors
Pay-per-call document and web tools for AI agents: PDF parsing and OCR (Japanese-strong), web and structured extraction, invoice verification, company profiles and PDF utilities. x402 (USDC on Base), no API key; failed calls are never charged.
Pay-per-call AI and media tools over x402. USDC on Base, no signup, no API key.
16117 pay-per-call web, finance, legal and onchain tools for AI agents. USDC on Base via x402/MPP.
Pay-per-call web extraction, SEO audits and text analysis. USDC on Base via x402, no API keys.
Related MCP Servers
- AlicenseAqualityDmaintenanceConvert PDFs to structured JSON. Extract invoices, bank statements, contracts, and more. Pay per call via x402 USDC.58MIT
- AlicenseAqualityCmaintenanceMCP server for document intelligence via x402 micropayments. 6 tools: document analysis, invoice extraction, screenshot data, alt text, PII detection, sentiment analysis. Pay-per-use with USDC on Base — no API keys needed.61 npmMIT
- AlicenseAqualityCmaintenanceEnables agents to extract multi-page financial tables from complex PDFs, rasterize vector pages into crisp 300 DPI images for vision LLMs, flatten interactive AcroForm/XFA forms, and dewarp skewed OCR bounding boxes from photographed or scanned paper documents. Tool invocations are gated by USDC micropayments settled on Base L2 via the x402 protocol.4MIT
- AlicenseNot gradedqualityCmaintenancePay-per-call AI microservices settled in USDC on Base via the x402 (HTTP 402) protocol. 28 tools including web search, summarization, extraction, code review, deep research, crypto safety, sanctions screening and on-chain data — no accounts or API keys.4 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.