Koskamo

JPVerify MCP

JPVerify is a Japan-localized API for global AI agents that extracts Japanese business cards, receipts, and billing invoices, then validates tax arithmetic, T-numbers, company numbers, and addresses according to each endpoint's documented scope.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

JPVerify MCP logo, by DSテクニックVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by DSテクニック
You need:create a free account with starter credits at https://www.jpverify.com/signupsend an account API key (`Authorization: Bearer jpv_live_...` or `X-API-Key`)
MCP endpoint (Streamable HTTP)
https://api.jpverify.com/mcp
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 12 of 12 declare behavior hints · 12 of 12 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to jpverify.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Extract Japanese receipts and expense evidence
  • Verify Japanese billing invoices against NTA data
  • Enrich business card contact fields with company registry data
  • Normalize and validate Japanese addresses

Source and maintenance

Vendor evidenceRegistry 0.5.1
Maintenance checked

Protocol and capabilities

Server
jpverify 0.5.0
MCP protocol negotiated in check
2025-11-25
Tools
12 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

JPVerify: Japan company, qualified-invoice (T-number), address, and Japanese document OCR tools. Call jpverify_guide (free) to pick a tool. Paid tools use x402 (USDC on Base): an unpaid call returns an x402 PaymentRequired result; retry with the signed payload in _meta['x402/payment']. Invalid input is rejected before any payment, and payment is settled only after a successful result. Alternatively connect with an account API key (HTTP header Authorization: Bearer jpv_live_...) to pay from prepaid USD credits at the same prices; sign up at https://www.jpverify.com/signup.

Tools

12 advertised

jpverify_guide — JPVerify guide (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Returns the JPVerify tool catalog with prices, use_when guidance and example inputs, plus how x402 payment works; pass a natural-language question to get the single recommended tool and suggested input. / 無料。JPVerifyのツール一覧(料金・用途・入力例)とx402決済方法を返します。質問を渡すと最適なツールと入力例を返します。

jpverify_guide input schema
{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional task description, e.g. 'Is T1013301046627 a valid invoice number?' / 任意の質問。"
    }
  },
  "additionalProperties": false
}
jpverify_guide annotations
{
  "title": "JPVerify guide (free)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_company_verify — Verify Japanese company
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Verify a Japanese company by name, 13-digit corporate number (法人番号), or address against the NTA registry. Use when: You need a Japanese company or corporate-number lookup. Returns: Corporate number, registered legal name/address, active or closed status, and match evidence. Price: $0.005 USDC per successful call, paid with x402 on Base. / 会社名・法人番号・住所を国税庁の法人番号公表データと照合します。 用途: 日本企業または法人番号を検索・照合したい場合。 返却: 法人番号、登記上の法人名・住所、活動状態、一致根拠を返します。 料金: 成功した呼び出し1回あたり $0.005 USDC(Base上のx402決済)。

jp_company_verify input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "name"
      ]
    },
    {
      "required": [
        "corporate_number"
      ]
    }
  ],
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Name",
      "default": null,
      "description": "Company name to resolve, in Japanese or English; at least one of name, corporate_number, or address is required. / 照合する会社名(日本語・英語)。name、corporate_number、addressのいずれかが必要です。"
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Address",
      "default": null,
      "description": "Registered or business address in Japan, used to resolve or confirm the company. / 会社の所在地(日本)。照合または確認に使用します。"
    },
    "corporate_number": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[0-9]{13}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Corporate Number",
      "default": null,
      "description": "13-digit Japanese corporate number (法人番号), digits only. / 13桁の法人番号(数字のみ)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja(日本語)、en(英語)、both(両方)。"
    }
  },
  "additionalProperties": false
}
jp_company_verify annotations
{
  "title": "Verify Japanese company",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_invoice_registration_verify — Verify T-number (qualified invoice)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Verify a Japanese qualified-invoice registration number (T + 13 digits) against the NTA invoice registry. Use when: You already have a Japanese T+13-digit qualified-invoice registration number. Returns: NTA registration status, corporate number, registered name, and relevant dates. Price: $0.01 USDC per successful call, paid with x402 on Base. / 適格請求書発行事業者登録番号(T+13桁)を国税庁データと照合します。 用途: 日本のT+13桁インボイス登録番号が既にある場合。 返却: 国税庁の登録状態、法人番号、登録名、関連日付を返します。 料金: 成功した呼び出し1回あたり $0.01 USDC(Base上のx402決済)。

jp_invoice_registration_verify input schema
{
  "type": "object",
  "required": [
    "registration_number"
  ],
  "properties": {
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja(日本語)、en(英語)、both(両方)。"
    },
    "registration_number": {
      "type": "string",
      "pattern": "^[Tt][0-9\\s\\-]{13,20}$",
      "maxLength": 32,
      "minLength": 1,
      "description": "T plus 13 digits; spaces, hyphens, and lowercase t are normalized. Shape-invalid input is rejected before payment; checksum-invalid or registry-not-found values are paid business results. / Tに続く13桁の数字。空白・ハイフン・小文字tは正規化されます。形式不正は支払い前に拒否し、チェックサム不一致または未登録は有料の業務結果として返します。"
    }
  },
  "additionalProperties": false
}
jp_invoice_registration_verify annotations
{
  "title": "Verify T-number (qualified invoice)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_invoice_issuer_check — Check invoice issuer
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Verify a T-number and compare the issuer name and address with Japan's NTA registries. Use when: You have extracted issuer fields and need T-number, company-name, and address comparison. Returns: OCR issuer fields, NTA registry fields, comparison results, and resolved values; phone is not registry-compared. Price: $0.03 USDC per successful call, paid with x402 on Base. / T番号を検証し、発行者名・住所を国税庁データと比較します。 用途: 抽出済みの発行者情報について、T番号・会社名・住所を照合したい場合。 返却: OCR発行者情報、国税庁登記情報、比較結果、採用値を返します。電話番号は登記比較しません。 料金: 成功した呼び出し1回あたり $0.03 USDC(Base上のx402決済)。

jp_invoice_issuer_check input schema
{
  "type": "object",
  "required": [
    "registration_number"
  ],
  "properties": {
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Address",
      "default": null,
      "description": "Issuer address as printed on the invoice, compared with the registry address. / 請求書に記載された発行者住所。登記住所と比較します。"
    },
    "supplier_name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Supplier Name",
      "default": null,
      "description": "Issuer name as printed on the invoice, compared with the NTA registries. / 請求書に記載された発行者名。国税庁データと比較します。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja(日本語)、en(英語)、both(両方)。"
    },
    "registration_number": {
      "type": "string",
      "title": "Registration Number",
      "maxLength": 32,
      "minLength": 1,
      "description": "Qualified-invoice registration number: T followed by 13 digits, e.g. T1013301046627. / 適格請求書発行事業者登録番号(T+13桁)。"
    }
  },
  "additionalProperties": false
}
jp_invoice_issuer_check annotations
{
  "title": "Check invoice issuer",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_invoice_extract — Extract Japanese invoice (OCR)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

OCR a Japanese billing invoice (text, HTTPS file URL, or small Base64) with local date, tax, arithmetic and T-number checks; no registry lookup. Use when: You need Japanese billing-invoice OCR and deterministic quality checks without registry lookup. Returns: OCR-derived invoice fields plus format, arithmetic, tax, completeness, and review status. Price: $0.01 USDC per successful call, paid with x402 on Base. / 日本語請求書をOCRし、日付・税額・金額・T番号をローカル検証します(法人照合なし)。 用途: 日本語の請求書をOCRし、法人照合なしで日付・金額・税額・T番号を検証したい場合。 返却: OCR請求書項目に加え、形式・金額計算・税額・必須項目・確認状態を返します。 料金: 成功した呼び出し1回あたり $0.01 USDC(Base上のx402決済)。

jp_invoice_extract input schema
{
  "type": "object",
  "properties": {
    "text": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 12000
        },
        {
          "type": "null"
        }
      ],
      "title": "Text",
      "default": null,
      "description": "Already available document text. Choose exactly one primary source: text, image_base64, or file_url. / 既に取得済みの文書テキスト。主入力としてtext、image_base64、file_urlのいずれか1つを指定します。"
    },
    "fields": {
      "type": "array",
      "items": {
        "enum": [
          "company",
          "supplier_name",
          "registration_number",
          "corporate_number",
          "date",
          "invoice_date",
          "amount",
          "tax_amount",
          "tax_rate",
          "issue_date",
          "due_date",
          "invoice_id",
          "subtotal",
          "total",
          "currency",
          "tax_breakdown",
          "items",
          "customer_name",
          "payment_method",
          "tax_included",
          "summary",
          "payment_terms",
          "supplier_address",
          "supplier_phone",
          "postal_code",
          "notes"
        ],
        "type": "string"
      },
      "title": "Fields",
      "maxItems": 24,
      "minItems": 1,
      "description": "Billing-invoice fields only; receipt_date, receipt_number, and transaction_time are rejected. / 請求書専用項目。receipt_date、receipt_number、transaction_timeは指定できません。"
    },
    "file_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ],
      "title": "File Url",
      "default": null,
      "description": "HTTPS URL for an image or document file. / 画像・文書ファイルのHTTPS URL。"
    },
    "max_pages": {
      "type": "integer",
      "title": "Max Pages",
      "default": 2,
      "maximum": 2,
      "minimum": 1,
      "description": "Maximum PDF pages to process (1-2). / 処理するPDF最大ページ数(1〜2)。"
    },
    "mime_type": {
      "type": "string",
      "title": "Mime Type",
      "default": "image/jpeg",
      "maxLength": 80,
      "description": "Input MIME type; inferred when omitted. / 入力MIMEタイプ。未指定時は推定します。"
    },
    "image_base64": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 35000000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Image Base64",
      "default": null,
      "description": "Base64-encoded file, at most 5 MB decoded over MCP/A2A; use an HTTPS URL or the HTTP API for larger files. / Base64エンコードしたファイル(MCP/A2Aではデコード後5MBまで。大きいファイルはHTTPS URLまたはHTTP APIを使用)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja、en、both。"
    }
  },
  "description": "Extract and locally validate billing-invoice fields; excludes receipt-only fields and registry lookup. / 請求書項目を抽出しローカル検証します。領収書専用項目と法人データ照合は対象外です。",
  "additionalProperties": false
}
jp_invoice_extract annotations
{
  "title": "Extract Japanese invoice (OCR)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_invoice_extract_and_verify — Extract and verify Japanese invoice
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

OCR a Japanese billing invoice, validate it locally, and resolve the issuer against NTA registries. Use when: You need invoice OCR and issuer name/address comparison or completion using NTA public data. Returns: OCR values, registry values, resolved issuer values, validation, and an explicit review signal. Price: $0.05 USDC per successful call, paid with x402 on Base. / 日本語請求書をOCR・ローカル検証し、発行者を国税庁データと照合します。 用途: 請求書OCRに加えて、国税庁公開データで発行者名・住所・T番号を照合・補完したい場合。 返却: OCR値、登記値、採用した発行者値、検証結果、明示的な確認シグナルを返します。 料金: 成功した呼び出し1回あたり $0.05 USDC(Base上のx402決済)。

jp_invoice_extract_and_verify input schema
{
  "type": "object",
  "properties": {
    "text": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 12000
        },
        {
          "type": "null"
        }
      ],
      "title": "Text",
      "default": null,
      "description": "Already available document text. Choose exactly one primary source: text, image_base64, or file_url. / 既に取得済みの文書テキスト。主入力としてtext、image_base64、file_urlのいずれか1つを指定します。"
    },
    "fields": {
      "type": "array",
      "items": {
        "enum": [
          "company",
          "supplier_name",
          "registration_number",
          "corporate_number",
          "date",
          "invoice_date",
          "amount",
          "tax_amount",
          "tax_rate",
          "issue_date",
          "due_date",
          "invoice_id",
          "subtotal",
          "total",
          "currency",
          "tax_breakdown",
          "items",
          "customer_name",
          "payment_method",
          "tax_included",
          "summary",
          "payment_terms",
          "supplier_address",
          "supplier_phone",
          "postal_code",
          "notes"
        ],
        "type": "string"
      },
      "title": "Fields",
      "maxItems": 24,
      "minItems": 1,
      "description": "Billing-invoice fields only; receipt_date, receipt_number, and transaction_time are rejected. / 請求書専用項目。receipt_date、receipt_number、transaction_timeは指定できません。"
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Address",
      "default": null,
      "description": "Optional issuer address supplied by the caller for registry comparison. / 法人データ照合用の発行者住所(任意)。"
    },
    "file_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ],
      "title": "File Url",
      "default": null,
      "description": "HTTPS URL for an image or document file. / 画像・文書ファイルのHTTPS URL。"
    },
    "max_pages": {
      "type": "integer",
      "title": "Max Pages",
      "default": 2,
      "maximum": 2,
      "minimum": 1,
      "description": "Maximum PDF pages to process (1-2). / 処理するPDF最大ページ数(1〜2)。"
    },
    "mime_type": {
      "type": "string",
      "title": "Mime Type",
      "default": "image/jpeg",
      "maxLength": 80,
      "description": "Input MIME type; inferred when omitted. / 入力MIMEタイプ。未指定時は推定します。"
    },
    "image_base64": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 35000000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Image Base64",
      "default": null,
      "description": "Base64-encoded file, at most 5 MB decoded over MCP/A2A; use an HTTPS URL or the HTTP API for larger files. / Base64エンコードしたファイル(MCP/A2Aではデコード後5MBまで。大きいファイルはHTTPS URLまたはHTTP APIを使用)。"
    },
    "supplier_name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Supplier Name",
      "default": null,
      "description": "Optional issuer name supplied by the caller for registry comparison. / 法人データ照合用の発行者名(任意)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja、en、both。"
    }
  },
  "description": "Extract and locally validate a billing invoice, then compare and resolve issuer identity using NTA invoice/corporate registries. / 請求書を抽出・ローカル検証し、国税庁のインボイス・法人番号データで発行者情報を照合・補完します。",
  "additionalProperties": false
}
jp_invoice_extract_and_verify annotations
{
  "title": "Extract and verify Japanese invoice",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_receipt_extract — Extract Japanese receipt (OCR)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

OCR a Japanese receipt with local amount, tax and T-number checks; detected T-numbers are verified with the NTA registry. Use when: You need Japanese receipt or 領収書 OCR with local tax, amount, T-number, and format checks. Returns: Structured receipt fields, deterministic validation, field status, and review signals. Price: $0.03 USDC per successful call, paid with x402 on Base. / 日本語領収書をOCRし、金額・税額・T番号を検証します。 用途: 日本語の領収書・レシートをOCRし、金額・税額・T番号・形式を検証したい場合。 返却: 構造化された領収書項目、決定論的検証、項目状態、確認シグナルを返します。 料金: 成功した呼び出し1回あたり $0.03 USDC(Base上のx402決済)。

jp_receipt_extract input schema
{
  "type": "object",
  "properties": {
    "text": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 12000
        },
        {
          "type": "null"
        }
      ],
      "title": "Text",
      "default": null,
      "description": "Already available document text. Choose exactly one primary source: text, image_base64, or file_url. / 既に取得済みの文書テキスト。主入力としてtext、image_base64、file_urlのいずれか1つを指定します。"
    },
    "fields": {
      "type": "array",
      "items": {
        "enum": [
          "company",
          "supplier_name",
          "registration_number",
          "corporate_number",
          "date",
          "invoice_date",
          "receipt_date",
          "amount",
          "tax_amount",
          "tax_rate",
          "issue_date",
          "due_date",
          "invoice_id",
          "subtotal",
          "total",
          "currency",
          "tax_breakdown",
          "items",
          "customer_name",
          "transaction_time",
          "payment_method",
          "tax_included",
          "summary",
          "supplier_address",
          "supplier_phone",
          "postal_code",
          "phone_number",
          "receipt_number",
          "payment_terms",
          "notes"
        ],
        "type": "string"
      },
      "title": "Fields",
      "maxItems": 20,
      "minItems": 1,
      "description": "Receipt fields only; postal code, phone, and address checks are format/structure checks and do not verify reality or exact location. / 領収書項目のみ。郵便番号・電話番号・住所は形式・構造だけを確認し、実在性や番地の正確性は検証しません。"
    },
    "file_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ],
      "title": "File Url",
      "default": null,
      "description": "HTTPS URL for an image or document file. / 画像・文書ファイルのHTTPS URL。"
    },
    "max_pages": {
      "type": "integer",
      "title": "Max Pages",
      "default": 2,
      "maximum": 2,
      "minimum": 1,
      "description": "Maximum PDF pages to process (1-2). / 処理するPDF最大ページ数(1〜2)。"
    },
    "mime_type": {
      "type": "string",
      "title": "Mime Type",
      "default": "image/jpeg",
      "maxLength": 80,
      "description": "Input MIME type; inferred when omitted. / 入力MIMEタイプ。未指定時は推定します。"
    },
    "image_base64": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 35000000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Image Base64",
      "default": null,
      "description": "Base64-encoded file, at most 5 MB decoded over MCP/A2A; use an HTTPS URL or the HTTP API for larger files. / Base64エンコードしたファイル(MCP/A2Aではデコード後5MBまで。大きいファイルはHTTPS URLまたはHTTP APIを使用)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja、en、both。"
    }
  },
  "description": "Extract a Japanese receipt and run local amount, tax, T-number, and contact-format checks. / 日本語の領収書を抽出し、金額・税額・T番号・連絡先形式をローカル検証します。",
  "additionalProperties": false
}
jp_receipt_extract annotations
{
  "title": "Extract Japanese receipt (OCR)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_business_card_extract — Extract Japanese business card
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Read a Japanese business card (front/back HTTPS image URL or small Base64); enrich=true adds a registry pre-check of the organization. [enrich=false, $0.03 USDC] Use when: You need only the person, role, department, company, phone, email, or address printed on a Japanese business card. Returns: Card-printed contact fields only; no corporate-number or NTA issuer verification. [enrich=true, $0.10 USDC] Use when: You need business-card OCR plus Japanese corporate-number and qualified-invoice enrichment. Returns: Separate card OCR values and registry-resolved company values; registry pre-check, not full KYB. Paid per successful call with x402 on Base. / 日本語の名刺を読み取ります。enrich=trueで組織の法人照合も行います。 [enrich=false、$0.03 USDC] 用途: 日本語の名刺に印刷された氏名、役職、部署、会社名、電話、メール、住所だけが必要な場合。 返却: 名刺に印刷された連絡先のみ。法人番号や国税庁発行者照合は含みません。 [enrich=true、$0.10 USDC] 用途: 名刺OCRに加えて、日本の法人番号・適格請求書登録情報で企業を照合したい場合。 返却: 名刺OCR値と登記照合済み企業値を分離して返します。完全なKYBではありません。 成功した呼び出しのみx402(Base)で課金します。

jp_business_card_extract input schema
{
  "type": "object",
  "properties": {
    "enrich": {
      "type": "boolean",
      "default": false,
      "description": "false: OCR contact fields only ($0.03). true: also match the organization against NTA corporate and invoice registries ($0.10). / false: 連絡先のみ抽出($0.03)。true: 法人番号・インボイス情報とも照合($0.10)。"
    },
    "max_pages": {
      "type": "integer",
      "title": "Max Pages",
      "default": 1,
      "maximum": 1,
      "minimum": 1,
      "description": "Number of pages to read; business cards are single-page, so only 1 is accepted. / 読み取るページ数。名刺は1ページのため1のみ指定できます。"
    },
    "mime_type": {
      "type": "string",
      "title": "Mime Type",
      "default": "image/jpeg",
      "maxLength": 80,
      "description": "Image MIME type, normally image/jpeg or image/png. / 画像MIMEタイプ。通常はimage/jpegまたはimage/png。"
    },
    "output_format": {
      "enum": [
        "json",
        "vcard"
      ],
      "type": "string",
      "title": "Output Format",
      "default": "json",
      "description": "The API always returns JSON; vcard additionally includes a vCard 4.0 string. / APIは常にJSONを返し、vcard指定時はvCard 4.0文字列を追加します。"
    },
    "back_image_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ],
      "title": "Back Image Url",
      "default": null,
      "description": "Optional HTTPS URL of the back image of the business card. / 名刺裏面画像のHTTPS URL(任意)。"
    },
    "front_image_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ],
      "title": "Front Image Url",
      "default": null,
      "description": "HTTPS URL of the front image of the business card. / 名刺表面画像のHTTPS URL。"
    },
    "include_raw_text": {
      "type": "boolean",
      "title": "Include Raw Text",
      "default": false,
      "description": "Include OCR text only when explicitly requested. / 明示的に指定した場合のみOCRテキストを返します。"
    },
    "back_image_base64": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 35000000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Back Image Base64",
      "default": null,
      "description": "Base64-encoded file, at most 5 MB decoded over MCP/A2A; use an HTTPS URL or the HTTP API for larger files. / Base64エンコードしたファイル(MCP/A2Aではデコード後5MBまで。大きいファイルはHTTPS URLまたはHTTP APIを使用)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja、en、またはboth。"
    },
    "front_image_base64": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 35000000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Front Image Base64",
      "default": null,
      "description": "Base64-encoded file, at most 5 MB decoded over MCP/A2A; use an HTTPS URL or the HTTP API for larger files. / Base64エンコードしたファイル(MCP/A2Aではデコード後5MBまで。大きいファイルはHTTPS URLまたはHTTP APIを使用)。"
    }
  },
  "additionalProperties": false
}
jp_business_card_extract annotations
{
  "title": "Extract Japanese business card",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_address_normalize — Normalize Japanese address
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Normalize a Japanese address into a canonical hierarchy with an English rendering. Use when: You need Japanese address normalization or standardization, whether or not the input contains a postal code. Returns: Normalized prefecture/city/town/chome/block/lot/house components, parser confidence, match hierarchy, geocoder evidence, and postal-code evidence when a postal code is supplied. It does not infer a missing postal code. Price: $0.005 USDC per successful call, paid with x402 on Base. / 日本の住所を正規化し、階層と英語表記を返します。 用途: 入力に郵便番号があってもなくても、日本住所を正規化・標準化したい場合。 返却: 都道府県・市区町村・町名・丁目・番地・号などの正規化項目、解析信頼度、照合階層、地理コード根拠を返します。郵便番号を入力した場合のみ郵便番号根拠を返し、未入力の郵便番号は推定しません。 料金: 成功した呼び出し1回あたり $0.005 USDC(Base上のx402決済)。

jp_address_normalize input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "title": "Address",
      "maxLength": 500,
      "minLength": 1,
      "description": "Japanese address to normalize, with or without a postal code. / 正規化する日本の住所(郵便番号の有無は問いません)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja(日本語)、en(英語)、both(両方)。"
    }
  },
  "additionalProperties": false
}
jp_address_normalize annotations
{
  "title": "Normalize Japanese address",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_address_validate — Validate Japanese address
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Validate a Japanese address with parser, postal and geocoder evidence and return exact/partial/ambiguous/conflict/unverified. Use when: You need one evidence-based Japanese address quality decision combining parsed address, postal evidence, and geocoder evidence. Returns: Exact, partial, ambiguous, conflict, or unverified status with accepted hierarchy, confidence signals, validation scope, and reasons. Price: $0.005 USDC per successful call, paid with x402 on Base. / 住所解析・郵便番号・ジオコーディング根拠で日本住所を検証します。 用途: 解析住所、郵便番号根拠、ジオコーダー根拠を統一ルールで判定したい場合。 返却: 完全一致、部分一致、候補不一意、矛盾、未検証の状態に加え、採用階層、信頼度、判定範囲、理由を返します。 料金: 成功した呼び出し1回あたり $0.005 USDC(Base上のx402決済)。

jp_address_validate input schema
{
  "type": "object",
  "properties": {
    "parsed": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Parsed",
      "default": null,
      "description": "Output from /jp-address/parse or normalize containing at least one non-empty address component. / parseまたはnormalizeの出力。空でない住所構成要素を1つ以上含めます。"
    },
    "strict": {
      "type": "boolean",
      "title": "Strict",
      "default": false,
      "description": "Require all supplied evidence to agree. / 入力された根拠の完全一致を要求。"
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Address",
      "default": null,
      "description": "Original Japanese address; provide exactly one of address or parsed. / 元の日本住所。addressとparsedのどちらか一方を指定します。"
    },
    "required_level": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 8,
          "minimum": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Required Level",
      "default": null,
      "description": "Required hierarchy level; Jageocoder 5/6=oaza/aza, 7=block, 8=building/house node. / 必須階層。Jageocoderの5/6=大字・字、7=街区、8=建物・号ノード。"
    },
    "postal_evidence": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Postal Evidence",
      "default": null,
      "description": "Optional prior output from /jp-address/postal-lookup; status/confidence are recomputed and not trusted. / 任意のpostal-lookup出力。statusとconfidenceは再計算され、無条件には信頼されません。"
    },
    "geocode_evidence": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Geocode Evidence",
      "default": null,
      "description": "Optional prior output from /jp-address/geocode; candidates and statuses are advisory and recomputed locally. / 任意のgeocode出力。候補とstatusは補助情報で、ローカルで再計算されます。"
    }
  },
  "additionalProperties": false
}
jp_address_validate annotations
{
  "title": "Validate Japanese address",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_supplier_resolve — Resolve Japanese supplier
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

One coverage-aware supplier check combining company, qualified-invoice and address evidence. Use when: You need one coverage-aware supplier check combining company, qualified-invoice, and address evidence; optionally includes projected gBizINFO activity evidence when the internal feature flag is enabled. Returns: Independent evidence checks, source versions, and a resolved/ambiguous/not-found/insufficient-coverage status; optional gBizINFO is projected enrichment inside this response, not a standalone source or raw-response resale. Not a legal or KYB determination. Price: $0.01 USDC per successful call, paid with x402 on Base. / 会社・適格請求書・住所の根拠をまとめて仕入先を確認します。 用途: 会社、適格請求書、住所の根拠を組み合わせ、必要に応じて内部機能フラグでgBizINFO活動根拠も付加した、対象範囲を明示した仕入先確認を行う場合。 返却: 個別の根拠チェック、ソース版、resolved/ambiguous/not-found/insufficient-coverage状態を返します。任意のgBizINFOはこのレスポンス内の加工済み補助根拠であり、単独ソースや原レスポンスの再販ではありません。法的判断やKYB判定ではありません。 料金: 成功した呼び出し1回あたり $0.01 USDC(Base上のx402決済)。

jp_supplier_resolve input schema
{
  "type": "object",
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Name",
      "default": null,
      "description": "Supplier name in Japanese or English. / 仕入先名(日本語・英語)。"
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Address",
      "default": null,
      "description": "Supplier address, used as supporting evidence. / 仕入先住所(補助根拠)。"
    },
    "t_number": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 32,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "T Number",
      "default": null,
      "description": "Alias of registration_number (T + 13 digits). / registration_numberの別名(T+13桁)。"
    },
    "identifiers": {
      "anyOf": [
        {
          "type": "object",
          "maxProperties": 8,
          "additionalProperties": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Identifiers",
      "default": null,
      "description": "Optional extra identifiers; allowed keys: corporate_number, registration_number, t_number, company_number, lei. / 追加識別子(任意)。使用可能なキー:corporate_number、registration_number、t_number、company_number、lei。"
    },
    "country_code": {
      "enum": [
        "JP",
        "GB"
      ],
      "type": "string",
      "title": "Country Code",
      "default": "JP",
      "description": "Supplier country: JP (NTA/gBizINFO) or GB (Companies House). / 仕入先の国:JP(国税庁・gBizINFO)またはGB(Companies House)。"
    },
    "corporate_number": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[0-9]{13}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Corporate Number",
      "default": null,
      "description": "13-digit Japanese corporate number (法人番号), digits only. / 13桁の法人番号(数字のみ)。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja(日本語)、en(英語)、both(両方)。"
    },
    "registration_number": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 32,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Registration Number",
      "default": null,
      "description": "Supplier qualified-invoice registration number (T + 13 digits). / 仕入先の適格請求書登録番号(T+13桁)。"
    }
  },
  "description": "Inputs for evidence composition; this endpoint makes no KYB conclusion.",
  "additionalProperties": false
}
jp_supplier_resolve annotations
{
  "title": "Resolve Japanese supplier",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
jp_counterparty_check — Check EU VAT / Peppol counterparty
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check a known EU VAT ID and/or Peppol participant: VAT validity, name match, and Peppol discoverability. Use when: You need separate EU VAT validity, returned-name entity matching, and Peppol participant discoverability evidence. Returns: Projected VIES and Peppol evidence only; VIES is known-ID validation and member-state outages are insufficient coverage. Price: $0.05 USDC per successful call, paid with x402 on Base. / 既知のEU VAT IDやPeppol参加者IDの有効性・名称一致・到達性を確認します。 用途: EU VAT有効性、返却名による法人一致、Peppol参加者到達性を分けて確認する場合。 返却: VIESとPeppolの加工済み根拠のみを返します。VIESは既知IDの検証であり、加盟国停止は対象範囲不足です。 料金: 成功した呼び出し1回あたり $0.05 USDC(Base上のx402決済)。

jp_counterparty_check input schema
{
  "type": "object",
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Name",
      "default": null,
      "description": "Expected legal name, compared with the name VIES returns. / 想定する法人名。VIESが返す名称と比較します。"
    },
    "vat_id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 32
        },
        {
          "type": "null"
        }
      ],
      "title": "Vat Id",
      "default": null,
      "description": "Known EU VAT ID including the country prefix, e.g. DE123456789; VIES does not support name search. / 国コード付きの既知のEU VAT ID。VIESは名称検索に対応しません。"
    },
    "country_code": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2,
          "minLength": 2
        },
        {
          "type": "null"
        }
      ],
      "title": "Country Code",
      "default": null,
      "description": "Optional two-letter country code of the counterparty. / 取引先の2文字国コード(任意)。"
    },
    "participant_id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ],
      "title": "Participant Id",
      "default": null,
      "description": "Peppol participant identifier in scheme::value form, e.g. iso6523-actorid-upis::0088:123456789. / scheme::value形式のPeppol参加者ID。"
    },
    "response_language": {
      "enum": [
        "ja",
        "en",
        "both"
      ],
      "type": "string",
      "title": "Response Language",
      "default": "both",
      "description": "Response presentation language: ja, en, or both. / レスポンス表示言語: ja(日本語)、en(英語)、both(両方)。"
    }
  },
  "description": "Cross-border invoice counterparty checks; raw provider payloads are never returned.",
  "additionalProperties": false
}
jp_counterparty_check annotations
{
  "title": "Check EU VAT / Peppol counterparty",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1028 ms
95th percentile latency
1028 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1028 ms · metadata changed · 12 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http jpverify-mcp https://api.jpverify.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add jpverify-mcp --url https://api.jpverify.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable jpverify-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "jpverify-mcp": {
      "url": "https://api.jpverify.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "jpverify-mcp": {
      "type": "streamableHttp",
      "url": "https://api.jpverify.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start jpverify-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "jpverify-mcp": {
      "type": "http",
      "url": "https://api.jpverify.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http jpverify-mcp https://api.jpverify.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.jpverify.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "jpverify-mcp": {
      "serverUrl": "https://api.jpverify.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like JPVerify MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run JPVerify MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing