docs
Documents and web for AI agents: PDF parse, OCR, web extract, invoice checks. x402, no API key.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"docs": {
"url": "https://mart402.com/mcp/docs"
}
}
}リモートエンドポイント
https://mart402.com/mcp/docsstreamable-httpできること
ツール一覧
ツール(14)
🟢get_catalog
Mart402 product catalog: all products, prices, payment config, error codes, rate limits. Free.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"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).
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "PDF URL"
}
},
"required": [
"url"
]
}出力スキーマ
{
"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).
入力スキーマ
{
"type": "object",
"properties": {
"receipt_id": {
"type": "string",
"description": "receipt_id from a paid response (rcpt_...)"
}
},
"required": [
"receipt_id"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}出力スキーマ
{
"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"
]
}コミュニティ
エビデンス