JP-Verify

xyz.obolpayv0.1.0更新於 Oct 7, 2026

Verify Japanese companies: invoice T-numbers, Corporate Numbers, English names, shareholders

已驗證STDIO僅桌面FinanceBusiness & Commerce

概覽

AI 產生的概覽

讓助理查詢日本公司登記資料:發票 T 編號、法人編號、英文名稱與大股東。

功能
這是 JP-Verify API 的精簡用戶端,提供四個唯讀工具。verify_japanese_company 回傳登記狀態與日期、法人編號、日文與英文名稱及地址;verify_japanese_companies_batch 對多個編號做同樣查詢,依方案每次最多 100 至 1,000 個。get_major_shareholders 回傳公司 EDINET 有價證券報告中的大股東表,find_japanese_company_by_name 以精確比對把公司名稱解析為候選法人編號。每筆結果都包含 API 原始回覆,以及端點、HTTP 狀態、配額標頭與資料來源等中介資料。
適用情境
適合需要確認日本公司是否具備合格發票登記、核對法人編號、取得官方或機器轉寫的英文名稱,或從 EDINET 申報文件取出大股東資料的情境。可用於開立發票、供應商審核、類 KYC 查核與日本實體研究。
執行需求
本機程序;需要 Python 3.10 以上版本,以 uvx 或 pip install 執行。需要連線至 JP-Verify API 的網路。可選的 JP-Verify API 金鑰透過環境變數 JPVERIFY_API_KEY 或 X-API-Key 標頭提供;未提供金鑰時使用無金鑰沙箱,依 IP 位址每日限額。可選設定 JPVERIFY_BASE_URL 與 JPVERIFY_TIMEOUT。
安裝前請注意
每次成功回覆都算付費 JP-Verify 方案的一次計量查詢,費用由 JP-Verify 收取,因此使用可能產生費用。可選的 JPVERIFY_API_KEY 是傳送給 JP-Verify 的密鑰;在非回送位址上,若已設定該金鑰伺服器會拒絕啟動,除非傳入 --allow-shared-key,因為所有未自帶金鑰的呼叫端都會用到它。工具輸入(編號、名稱、日期)與金鑰會傳送給 JP-Verify。資料為回覆中所述日期的登記事實,不構成稅務、法律、投資或股權建議;產生的英文名稱是機器轉寫、不具權威性,股東表也不列出個人持有人。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 JP-Verify,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

jp-verify-mcp

An MCP server for JP-Verify, the English-first API that verifies Japanese companies: qualified-invoice registration numbers (T-numbers), Corporate Numbers (法人番号), English names and major shareholders.

It is a thin client. Each tool call is one HTTPS request to JP-Verify's public API at https://jp-verify.obolpay.xyz. The package holds no register data and contacts no other site; it downloads nothing from the National Tax Agency or from EDINET.

Tools

ToolJP-Verify endpointReturns
verify_japanese_companyGET /v1/verifyRegistration status and dates, Corporate Number, Japanese name and address, English name and address (labelled official or machine-romanised)
verify_japanese_companies_batchPOST /v1/verifyThe same for many numbers: up to 100 per call on the sandbox and Starter keys, 500 on Growth, 1,000 on Reseller. Malformed numbers are listed under invalid and not charged
get_major_shareholdersGET /v1/shareholdersThe 「大株主の状況」 (major shareholders) table from a company's securities report on EDINET, or a no_public_disclosure statement. Optional as_of (YYYY-MM-DD)
find_japanese_company_by_nameGET /v1/resolveCandidate Corporate Numbers for a company name (rule-based exact matching, not fuzzy search)

All four are read-only. Each answered call (HTTP 200) is one metered lookup on your JP-Verify plan; the batch tool counts one per well-formed number. verify_japanese_company and get_major_shareholders reject a number that fails JP-Verify's own format or check-digit rule locally, without a call; the batch tool sends the list as given and JP-Verify lists such numbers under invalid, free of charge.

Every result has two parts:

  • jp_verify_response: JP-Verify's answer exactly as sent, including data_as_of, notes, disclaimers and the attribution strings;
  • metadata: the endpoint, the HTTP status, whether an API key or the key-less sandbox was used, the quota headers (limit, remaining, resets_at) and where the data comes from.

HTTP errors (400, 401, 404, 429, 503, 5xx) and network failures come back as tool errors with a one-line explanation. JP-Verify does not charge for 400, 401, 404, 429 or 503 answers.

Install and run

Requires Python 3.10 or later.

bash
uvx jp-verify-mcp                # or: pip install jp-verify-mcp && jp-verify-mcp

From a source checkout: pip install ., then jp-verify-mcp.

stdio (default)

For Claude Desktop, Claude Code (.mcp.json), Cursor and other clients that start a local server:

json
{  "mcpServers": {    "jp-verify": {      "command": "uvx",      "args": ["jp-verify-mcp"],      "env": { "JPVERIFY_API_KEY": "your key (optional)" }    }  }}

Leave out env to use the key-less sandbox.

Streamable HTTP

bash
jp-verify-mcp --transport streamable-http --host 127.0.0.1 --port 8000# endpoint: http://127.0.0.1:8000/mcp  (stateless, JSON responses)
  • A client may send its own key in an X-API-Key header. It is forwarded to JP-Verify for that call only and takes precedence over JPVERIFY_API_KEY.
  • A loopback bind gets DNS-rebinding protection automatically. For a public host name pass --allowed-host your.host.name (repeatable).
  • On a non-loopback address the server refuses to start while JPVERIFY_API_KEY is set, because every caller without its own key would use it. Pass --allow-shared-key if that is intended.
  • The sandbox allowance is per IP address, so key-less callers of a hosted endpoint share the host's allowance.

Configuration

VariableDefaultMeaning
JPVERIFY_API_KEYunsetYour JP-Verify API key, sent as X-API-Key. Unset: the key-less sandbox
JPVERIFY_BASE_URLhttps://jp-verify.obolpay.xyzAPI origin. Plain http:// is accepted only for localhost
JPVERIFY_TIMEOUT20Seconds per request (at most 120)

Other options: jp-verify-mcp --help.

Keys and plans

Data, sources and attribution

  • Registration status, Corporate Number and Japanese name and address come from data published by Japan's National Tax Agency (国税庁): 国税庁適格請求書発行事業者公表サイト (qualified invoice issuers) and 国税庁法人番号公表サイト (Corporate Numbers), mirrored and processed by JP-Verify. They are not produced or guaranteed by the National Tax Agency.
  • English names: official-en where the company filed an English name with the Corporate Number register; otherwise generated, a machine romanisation that is not authoritative. Most companies have not filed one.
  • Sole proprietors: number, status and dates only. No name or address is returned.
  • Major shareholders: the 「大株主の状況」 tables companies file on the FSA's EDINET, extracted by JP-Verify. Organisations are named; every other holder, including every individual, is reported without a name, normally as an aggregate (always on the sandbox). Only companies that file a 有価証券報告書 or 半期報告書 publish this table; for any other company JP-Verify returns no_public_disclosure, a statement of why nothing is published (not a claim that the company has no shareholders). Some filers may show not_yet_available while JP-Verify's ingest catches up. JP-Verify switches this route on separately (its /health reports major_shareholders.enabled); until then the tool answers route_not_enabled.
  • JP-Verify may add the FSA's EDINET code list (PDL1.0) and GLEIF LEI data (CC0 1.0) to a result.
  • When you republish data from a response, keep its attribution strings and *_register blocks (JP-Verify Terms, Article 5).
  • These are register facts as of the dates each response states. They are not tax, legal, investment or ownership advice. JP-Verify answers 503 rather than serve data older than its freshness window.

Privacy

The server sends JP-Verify only what a tool is asked about (numbers, a name, a date) and the API key, if any. It stores nothing, keeps no cache, never retries a call and adds no logging of its own; at the default log level (WARNING) request contents are not logged. JP-Verify's privacy statement: https://jp-verify.obolpay.xyz/v1/privacy. Terms: https://jp-verify.obolpay.xyz/terms.

Development

bash
python3 -m venv .venv && .venv/bin/pip install -e '.[test]'.venv/bin/python -m pytest

The tests never reach JP-Verify: HTTP is mocked, or answered by a stand-in on 127.0.0.1.

Company and contact

Yanagi the First Co., Ltd. (株式会社ヤナギtheファースト) · [email protected] · https://jp-verify.obolpay.xyz

License

MIT, for this client. Use of the JP-Verify service is governed by its Terms of Service.

Registry

Official MCP Registry name: xyz.obolpay/jp-verify. Source: https://github.com/Hiroshi-Ichiyanagi/jp-verify-mcp

來源:README.md,提交 7f0f46f

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0最新Oct 7, 2026