extract

Web extraction, OCR (Japanese-strong), invoice and company data for AI agents. x402, no API key.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
95%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'report_pack' description lacks action verbin report_pack

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~14,420Tokens (tool definitions)
~3.7 KBTypical response size
Significant attention impact (11.27% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "extract": {
      "url": "https://mart402.com/mcp"
    }
  }
}

Remote endpoints

https://mart402.com/mcpstreamable-http

What it can do

Tool inventory

Tools (35)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_catalog

Mart402 product catalog: all products, prices, payment config, error codes, rate limits. Free.

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢quote_parse(url)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "PDF URL"
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢get_receipt(receipt_id)

Re-fetch a previously paid result for free by receipt id (every paid response carries receipt_id).

Input Schema

{
  "type": "object",
  "properties": {
    "receipt_id": {
      "type": "string",
      "description": "receipt_id from a paid response (rcpt_...)"
    }
  },
  "required": [
    "receipt_id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢search_x402_services(q, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Capability keyword, e.g. 'ocr', 'market-data', 'weather'"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "description": "Maximum results (default 10)"
    }
  },
  "required": [
    "q"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢get_sample(product)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "enum": [
        "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"
      ],
      "description": "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)"
    }
  },
  "required": [
    "product"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢portrait_precheck(image_url, image_base64)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
    },
    "image_base64": {
      "type": "string",
      "description": "Base64-encoded image bytes (alternative to image_url)"
    }
  },
  "x-required-one-of": [
    "image_url",
    "image_base64"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢operator_history(operator)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "operator": {
      "type": "string",
      "description": "operator domain, e.g. mart402.com"
    }
  },
  "required": [
    "operator"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢extract_url(url, mode, ttl, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
    },
    "mode": {
      "type": "string",
      "enum": [
        "auto",
        "fast",
        "heavy"
      ],
      "default": "auto",
      "description": "Extraction mode: auto (fast with rendered fallback), fast, heavy"
    },
    "ttl": {
      "type": "integer",
      "default": 86400,
      "description": "cache seconds (0 = no cache)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢parse_document(url, quote_id, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the PDF (one-step form)"
    },
    "quote_id": {
      "type": "string",
      "description": "quote_id returned by quote_parse (price is fixed by the quote)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [],
  "x-required-one-of": [
    "url",
    "quote_id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢ocr_image(image_url, image_base64, lang, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
    },
    "image_base64": {
      "type": "string",
      "description": "Base64-encoded image bytes (alternative to image_url)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "japanese",
        "latin"
      ],
      "default": "japanese",
      "description": "One of: japanese, latin. Expected script for OCR: japanese or latin"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [],
  "x-required-one-of": [
    "image_url",
    "image_base64"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢verify_invoice(fields, line_items, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "fields": {
      "type": "object",
      "description": "Extracted invoice fields: total_jpy, tax_jpy, reg_no, invoice_no, issue_date, due_date, vendor, customer"
    },
    "line_items": {
      "type": "array",
      "description": "Optional line items [{description, amount_jpy}] to reconcile against the subtotal"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "fields"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪enrich_company(company, country_hint, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "company": {
      "type": "string",
      "description": "Company name, domain or URL"
    },
    "country_hint": {
      "type": "string",
      "description": "ISO country hint for registry lookups, e.g. 'jp'"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "company"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢structured_extract(url, schema, instructions, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
    },
    "schema": {
      "type": "object",
      "description": "{key: description} pairs"
    },
    "instructions": {
      "type": "string",
      "description": "optional extra guidance for filling the schema"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "url",
    "schema"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢jp_company_profile(url, x_payment)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢document_pipeline(url, enrich, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
    },
    "enrich": {
      "type": "boolean",
      "default": false,
      "description": "Also run issuer enrichment on the parsed invoice"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪pdf_merge(urls, x_payment)

Merge 2-10 PDFs into one, in order. Deterministic, $0.003.

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of absolute PDF URLs, in order (2-10)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "urls"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢pdf_pages(url, pages, x_payment)

Extract pages from a PDF by 1-based ranges (e.g. 1-3,7) into a new PDF. Deterministic, $0.002.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
    },
    "pages": {
      "type": "string",
      "description": "1-based page ranges, e.g. '1-3,7'"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "url",
    "pages"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢pdf_info(url, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢meal_vision(image_url, image_base64, hints, pack_code, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
    },
    "image_base64": {
      "type": "string",
      "description": "Base64-encoded image bytes (alternative to image_url)"
    },
    "hints": {
      "type": "string",
      "description": "cuisine/context hint, e.g. 'Japanese teishoku, small diet portions' - measurably improves accuracy on regional home-style meals"
    },
    "pack_code": {
      "type": "string",
      "description": "retry credit issued after an unbilled failed call (replaces payment)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [],
  "x-required-one-of": [
    "image_url",
    "image_base64"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪style_profile(image_url, image_base64, images, body_image_url, body_image_base64, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
    },
    "image_base64": {
      "type": "string",
      "description": "Base64-encoded image bytes (alternative to image_url)"
    },
    "images": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Up to 3 objects {image_url | image_base64}"
    },
    "body_image_url": {
      "type": "string",
      "description": "Optional full-body photo URL for frame estimation"
    },
    "body_image_base64": {
      "type": "string",
      "description": "See the product's input spec in /catalog"
    },
    "questionnaire": {
      "type": "object",
      "description": "Optional frame questionnaire answers (see /catalog input spec)"
    },
    "style": {
      "type": "string",
      "enum": [
        "feminine",
        "masculine",
        "neutral"
      ],
      "default": "neutral",
      "description": "One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [],
  "x-required-one-of": [
    "image_url",
    "image_base64",
    "images"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪style_report(image_url, image_base64, images, style, name, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
    },
    "image_base64": {
      "type": "string",
      "description": "Base64-encoded image bytes (alternative to image_url)"
    },
    "images": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "1-3 face photos"
    },
    "style": {
      "type": "string",
      "enum": [
        "feminine",
        "masculine",
        "neutral"
      ],
      "default": "neutral",
      "description": "One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral"
    },
    "name": {
      "type": "string",
      "description": "client name printed on the report (same field as REST; client_name is accepted as an alias)"
    },
    "body_image_url": {
      "type": "string",
      "description": "optional full-body photo URL (body-shape layer)"
    },
    "body_image_base64": {
      "type": "string",
      "description": "optional full-body photo as base64"
    },
    "questionnaire": {
      "type": "object",
      "description": "optional answers (see /catalog style-report input)"
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "ja"
      ],
      "default": "en",
      "description": "report language"
    },
    "pack_code": {
      "type": "string",
      "description": "prepaid credit from report_pack (replaces payment)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [],
  "x-required-one-of": [
    "image_url",
    "image_base64",
    "images"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪report_pack(x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪portrait_analysis(image_url, image_base64, images, style, pack_code, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
    },
    "image_base64": {
      "type": "string",
      "description": "Base64-encoded image bytes (alternative to image_url)"
    },
    "images": {
      "type": "array",
      "description": "up to 3 of {image_url|image_base64}; different lighting recommended",
      "items": {
        "type": "object"
      }
    },
    "style": {
      "type": "string",
      "enum": [
        "feminine",
        "masculine",
        "neutral"
      ],
      "default": "neutral",
      "description": "One of: feminine, masculine, neutral. Styling context: feminine, masculine or neutral"
    },
    "pack_code": {
      "type": "string",
      "description": "retry credit issued after an unbilled failed call (replaces payment)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [],
  "x-required-one-of": [
    "image_url",
    "image_base64",
    "images"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢jp_payroll_net(annual_gross_yen, prefecture, age, annual_bonus_yen, dependents, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "annual_gross_yen": {
      "type": "integer",
      "description": "Annual gross salary in yen"
    },
    "prefecture": {
      "type": "string",
      "description": "Prefecture (romaji or Japanese), e.g. 'Tokyo'"
    },
    "age": {
      "type": "integer",
      "default": 30,
      "description": "Age in years (selects care-insurance and other age-gated rules)"
    },
    "annual_bonus_yen": {
      "type": "integer",
      "default": 0,
      "description": "Annual bonus total in yen"
    },
    "dependents": {
      "type": "object",
      "description": "Dependents object (see /catalog input spec)"
    },
    "year": {
      "type": "integer",
      "default": 2026,
      "description": "Calendar year"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "annual_gross_yen",
    "prefecture"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_bonus_net(bonus_yen, prefecture, age, previous_month_after_si_yen, dependents, ...)

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

Input Schema

{
  "type": "object",
  "properties": {
    "bonus_yen": {
      "type": "integer",
      "description": "Bonus amount in yen"
    },
    "prefecture": {
      "type": "string",
      "description": "Prefecture (romaji or Japanese), e.g. 'Tokyo'"
    },
    "age": {
      "type": "integer",
      "default": 30,
      "description": "Age in years (selects care-insurance and other age-gated rules)"
    },
    "previous_month_after_si_yen": {
      "type": "integer",
      "description": "Previous month's pay after social insurance (withholding table lookup)"
    },
    "dependents": {
      "type": "integer",
      "default": 0,
      "description": "Dependents object (see /catalog input spec)"
    },
    "ytd_bonus_yen": {
      "type": "integer",
      "default": 0,
      "description": "Bonus paid so far in the fiscal year (health-insurance annual cap check)"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "bonus_yen",
    "prefecture"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_social_insurance(monthly_remuneration_yen, prefecture, age, as_of, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "monthly_remuneration_yen": {
      "type": "integer",
      "description": "Monthly remuneration in yen (grade table lookup)"
    },
    "prefecture": {
      "type": "string",
      "description": "Prefecture (romaji or Japanese), e.g. 'Tokyo'"
    },
    "age": {
      "type": "integer",
      "default": 30,
      "description": "Age in years (selects care-insurance and other age-gated rules)"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "monthly_remuneration_yen",
    "prefecture"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢jp_dependent_threshold(annual_income_yen, year, as_of, x_payment)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "annual_income_yen": {
      "type": "integer",
      "description": "Expected annual income in yen"
    },
    "year": {
      "type": "integer",
      "default": 2026,
      "description": "Calendar year"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "annual_income_yen"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_consumption_tax(mode, lines, document, taxable_sales_excl_yen, category, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "invoice_totals",
        "validate_invoice",
        "simplified",
        "two_percent"
      ],
      "default": "invoice_totals",
      "description": "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."
    },
    "lines": {
      "type": "array",
      "description": "Invoice lines [{amount_yen, qty, rate_key: standard|reduced}]"
    },
    "document": {
      "type": "object",
      "description": "Qualified-invoice fields to validate (registration_number etc.)"
    },
    "taxable_sales_excl_yen": {
      "type": "integer",
      "description": "Taxable sales excluding tax, in yen"
    },
    "category": {
      "type": "string",
      "description": "Simplified-taxation business class 1-6"
    },
    "taxable_period_start": {
      "type": "string",
      "format": "date",
      "description": "Taxable period first day YYYY-MM-DD (two_percent)"
    },
    "taxable_period_end": {
      "type": "string",
      "format": "date",
      "description": "Taxable period last day YYYY-MM-DD (two_percent)"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟡jp_business_days(mode, from, to, days, year, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "add",
        "between",
        "holidays",
        "deadline",
        "wareki"
      ],
      "default": "add",
      "description": "Required by mode (default add): add -> from, days; between -> from, to; holidays -> year; deadline -> kind, base_date; wareki -> date."
    },
    "from": {
      "type": "string",
      "format": "date",
      "description": "Start date YYYY-MM-DD"
    },
    "to": {
      "type": "string",
      "format": "date",
      "description": "End date YYYY-MM-DD"
    },
    "days": {
      "type": "integer",
      "description": "Number of business days to add"
    },
    "year": {
      "type": "integer",
      "description": "Calendar year"
    },
    "date": {
      "type": "string",
      "format": "date",
      "description": "Date YYYY-MM-DD"
    },
    "kind": {
      "type": "string",
      "enum": [
        "withholding_tax_monthly",
        "social_insurance_monthly",
        "corporate_tax",
        "consumption_tax_corporate",
        "income_tax_final",
        "consumption_tax_individual",
        "depreciable_assets",
        "legal_records"
      ],
      "description": "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)"
    },
    "base_date": {
      "type": "string",
      "format": "date",
      "description": "Base date YYYY-MM-DD for deadline calculation"
    },
    "saturday_off": {
      "type": "boolean",
      "default": true,
      "description": "Treat Saturdays as non-business days (default true)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_overtime_wage(mode, monthly_salary_yen, monthly_scheduled_hours, hours, monthly_overtime_hours, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "pay",
        "check36"
      ],
      "default": "pay",
      "description": "Required by mode (default pay): pay -> monthly_salary_yen, monthly_scheduled_hours, hours; check36 -> monthly_overtime_hours."
    },
    "monthly_salary_yen": {
      "type": "integer",
      "description": "Monthly base salary in yen"
    },
    "monthly_scheduled_hours": {
      "type": "number",
      "description": "Scheduled working hours per month"
    },
    "hours": {
      "type": "object",
      "description": "Hours worked"
    },
    "monthly_overtime_hours": {
      "type": "array",
      "description": "List of monthly overtime hours (36-agreement check)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_retirement_tax(payout_yen, years_of_service, is_officer, disability, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "payout_yen": {
      "type": "integer",
      "description": "Retirement allowance paid, in yen"
    },
    "years_of_service": {
      "type": "integer",
      "description": "Years of service (retirement income deduction)"
    },
    "is_officer": {
      "type": "boolean",
      "default": false,
      "description": "True for an officer/executive (short-service officer rules)"
    },
    "disability": {
      "type": "boolean",
      "default": false,
      "description": "True if retirement is due to disability (extra deduction)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "payout_yen",
    "years_of_service"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_mortgage(principal_yen, annual_rate, months, method, prepayment, ...)

Mortgage schedules (level payment/principal), total interest, prepayment effect. $0.005/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

Input Schema

{
  "type": "object",
  "properties": {
    "principal_yen": {
      "type": "integer",
      "description": "Loan principal in yen"
    },
    "annual_rate": {
      "type": "number",
      "description": "Annual interest rate as a decimal, e.g. 0.01"
    },
    "months": {
      "type": "integer",
      "description": "Loan term in months"
    },
    "method": {
      "type": "string",
      "enum": [
        "level_payment",
        "level_principal"
      ],
      "default": "level_payment",
      "description": "One of: level_payment, level_principal. Cost method: total_average or moving_average"
    },
    "prepayment": {
      "type": "object",
      "description": "Optional prepayment {at_month, amount_yen, mode: reduce_term|reduce_payment}"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "principal_yen",
    "annual_rate",
    "months"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
🟢jp_payslip_audit(prefecture, age, standard_monthly_yen, as_of, payslip, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prefecture": {
      "type": "string",
      "description": "Prefecture (romaji or Japanese), e.g. 'Tokyo'"
    },
    "age": {
      "type": "integer",
      "default": 30,
      "description": "Age in years (selects care-insurance and other age-gated rules)"
    },
    "standard_monthly_yen": {
      "type": "integer",
      "description": "Standard monthly remuneration if known (else estimated from salary)"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "payslip": {
      "type": "object",
      "required": [
        "monthly_gross_yen"
      ],
      "properties": {
        "monthly_gross_yen": {
          "type": "integer"
        }
      },
      "description": "Payslip fields to audit - see /catalog input spec"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "prefecture",
    "payslip"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_crypto_tax(method, transactions, opening, other_taxable_income_yen, year, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "total_average",
        "moving_average"
      ],
      "default": "total_average",
      "description": "One of: total_average, moving_average. Cost method: total_average or moving_average"
    },
    "transactions": {
      "type": "array",
      "description": "Crypto transactions list (max 300) - see /catalog input spec"
    },
    "opening": {
      "type": "array",
      "description": "Carried-over holdings [{asset, qty, cost_jpy}]"
    },
    "other_taxable_income_yen": {
      "type": "integer",
      "description": "Other taxable income in yen (returns incremental income tax as reference)"
    },
    "year": {
      "type": "integer",
      "default": 2026,
      "description": "Calendar year"
    },
    "as_of": {
      "type": "string",
      "format": "date",
      "description": "Calculation reference date YYYY-MM-DD (default today); selects the rules version"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "transactions"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}
⚪jp_payroll_suite(annual_gross_yen, prefecture, age, annual_bonus_yen, previous_month_after_si_yen, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "annual_gross_yen": {
      "type": "integer",
      "description": "Annual gross salary in yen"
    },
    "prefecture": {
      "type": "string",
      "description": "Prefecture (romaji or Japanese), e.g. 'Tokyo'"
    },
    "age": {
      "type": "integer",
      "description": "Age in years (selects care-insurance and other age-gated rules)"
    },
    "annual_bonus_yen": {
      "type": "integer",
      "description": "Annual bonus total in yen"
    },
    "previous_month_after_si_yen": {
      "type": "integer",
      "description": "Previous month's pay after social insurance (withholding table lookup)"
    },
    "dependents": {
      "type": "object",
      "description": "Dependents object (see /catalog input spec)"
    },
    "x_payment": {
      "type": "string",
      "description": "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."
    }
  },
  "required": [
    "annual_gross_yen",
    "prefecture"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "integer",
      "description": "HTTP status of the underlying call (200 result, 402 payment terms, 4xx input error)"
    },
    "body": {
      "description": "JSON body of the underlying call (see /samples/{product} for each product's shape)"
    },
    "payment_required": {
      "type": "boolean",
      "description": "true when status is 402: body holds x402 payment terms, not a result. Pay and call again with x_payment"
    },
    "how_to_pay": {
      "type": "string"
    },
    "receipt_id": {
      "type": "string",
      "description": "set on paid results; free re-fetch via get_receipt"
    }
  },
  "required": [
    "status",
    "body"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded35 tools
verifiedversion not recorded35 tools
verifiedversion not recorded35 tools
verifiedversion not recorded35 tools
verifiedversion not recorded35 tools
verifiedversion not recorded35 tools