Documents and web for AI agents: PDF parse, OCR, web extract, invoice checks. x402, no API key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Absolute http(s) URL of the input (web page or PDF, per tool)
Also run issuer enrichment on the parsed invoice
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.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute http(s) URL of the input (web page or PDF, per tool) |
| enrich | boolean | Also run issuer enrichment on the parsed invoice |
| x_payment | string | 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. |
{
"type": "object",
"required": [
"url"
],
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| company* | string | Company name, domain or URL |
| x_payment | string | 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 | string | ISO country hint for registry lookups, e.g. 'jp' |
{
"type": "object",
"required": [
"company"
],
"properties": {
"company": {
"type": "string",
"description": "Company name, domain or URL"
},
"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."
},
"country_hint": {
"type": "string",
"description": "ISO country hint for registry lookups, e.g. 'jp'"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ttl | integer | cache seconds (0 = no cache) |
| url* | string | Absolute http(s) URL of the input (web page or PDF, per tool) |
| mode | string | Extraction mode: auto (fast with rendered fallback), fast, heavy |
| x_payment | string | 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. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"ttl": {
"type": "integer",
"default": 86400,
"description": "cache seconds (0 = no cache)"
},
"url": {
"type": "string",
"description": "Absolute http(s) URL of the input (web page or PDF, per tool)"
},
"mode": {
"enum": [
"auto",
"fast",
"heavy"
],
"type": "string",
"default": "auto",
"description": "Extraction mode: auto (fast with rendered fallback), fast, heavy"
},
"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."
}
}
}Mart402 product catalog: all products, prices, payment config, error codes, rate limits. Free.
No arguments.
{
"type": "object",
"properties": {}
}Re-fetch a previously paid result for free by receipt id (every paid response carries receipt_id).
| Argument | Type | Description |
|---|---|---|
| receipt_id* | string | receipt_id from a paid response (rcpt_...) |
{
"type": "object",
"required": [
"receipt_id"
],
"properties": {
"receipt_id": {
"type": "string",
"description": "receipt_id from a paid response (rcpt_...)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| product* | string | 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) |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"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"
],
"type": "string",
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| lang | string | One of: japanese, latin. Expected script for OCR: japanese or latin |
| image_url | string | Absolute http(s) URL of the image (JPEG/PNG/WebP) |
| x_payment | string | 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 | string | Base64-encoded image bytes (alternative to image_url) |
{
"type": "object",
"required": [],
"properties": {
"lang": {
"enum": [
"japanese",
"latin"
],
"type": "string",
"default": "japanese",
"description": "One of: japanese, latin. Expected script for OCR: japanese or latin"
},
"image_url": {
"type": "string",
"description": "Absolute http(s) URL of the image (JPEG/PNG/WebP)"
},
"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."
},
"image_base64": {
"type": "string",
"description": "Base64-encoded image bytes (alternative to image_url)"
}
},
"x-required-one-of": [
"image_url",
"image_base64"
]
}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.
| Argument | Type | Description |
|---|---|---|
| url | string | Absolute http(s) URL of the PDF (one-step form) |
| quote_id | string | quote_id returned by quote_parse (price is fixed by the quote) |
| x_payment | string | 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. |
{
"type": "object",
"required": [],
"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."
}
},
"x-required-one-of": [
"url",
"quote_id"
]
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute http(s) URL of the input (web page or PDF, per tool) |
| x_payment | string | 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. |
{
"type": "object",
"required": [
"url"
],
"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."
}
}
}Merge 2-10 PDFs into one, in order. Deterministic, $0.003.
| Argument | Type | Description |
|---|---|---|
| urls* | array | List of absolute PDF URLs, in order (2-10) |
| x_payment | string | 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. |
{
"type": "object",
"required": [
"urls"
],
"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."
}
}
}Extract pages from a PDF by 1-based ranges (e.g. 1-3,7) into a new PDF. Deterministic, $0.002.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute http(s) URL of the input (web page or PDF, per tool) |
| pages* | string | 1-based page ranges, e.g. '1-3,7' |
| x_payment | string | 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. |
{
"type": "object",
"required": [
"url",
"pages"
],
"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."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| url* | string | PDF URL |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "PDF URL"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute http(s) URL of the input (web page or PDF, per tool) |
| schema* | object | {key: description} pairs |
| x_payment | string | 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 | string | optional extra guidance for filling the schema |
{
"type": "object",
"required": [
"url",
"schema"
],
"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"
},
"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."
},
"instructions": {
"type": "string",
"description": "optional extra guidance for filling the schema"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| fields* | object | Extracted invoice fields: total_jpy, tax_jpy, reg_no, invoice_no, issue_date, due_date, vendor, customer |
| x_payment | string | 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 | array | Optional line items [{description, amount_jpy}] to reconcile against the subtotal |
{
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"description": "Extracted invoice fields: total_jpy, tax_jpy, reg_no, invoice_no, issue_date, due_date, vendor, customer"
},
"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."
},
"line_items": {
"type": "array",
"description": "Optional line items [{description, amount_jpy}] to reconcile against the subtotal"
}
}
}