Skip to main content
Glama

jpverify

jpverify is a small local bridge to the hosted Hojincheck MCP server, which verifies Japanese companies against Japanese government open data. Give it a company name and it returns corporate-number candidates; give it a 13-digit corporate number and it checks that the company exists, reads its profile, or verifies a qualified-invoice registration number. It also normalizes Japanese addresses and answers Japanese holiday and business-day questions.

The bridge keeps no register data of its own. It serves the upstream server's tool list locally, exactly as captured from the live endpoint (the tool titles and descriptions are in Japanese and are served verbatim), and forwards each tool call upstream, returning the result untouched. The surface covers public business-register data only: there is no personal-data screening tool in it.

Tools

  • resolve_company — resolve a company name to corporate-number candidates, with a confidence score and reason label per candidate. Required: name. Optional: address (prefecture or municipality code filter), include_closed (defaults to true) and limit (defaults to 10, max 50). Source: the National Tax Agency corporate-number system.

  • verify_company — verify a 13-digit corporate number (check-digit validated) and return existence, trade name, head-office address, entity type and closed status. Required: corporate_number. Optional: include_history (defaults to false).

  • verify_invoice_number — verify a qualified-invoice issuer registration number (T + 13 digits) and return registration status, registration date and any cancellation or expiry. Required: registration_number. Optional: on_date (YYYY-MM-DD validity check) and include_history (defaults to false).

  • get_company_profile — read a company profile from gBizINFO for a corporate number, with per-field source and last-fetched metadata. Required: corporate_number.

  • normalize_address — normalize a Japanese address, split it into prefecture, municipality and town components, resolve the town identifier, and check it against the postal code. Required: address. Optional: postal_code.

  • jp_calendar — Japanese holiday and business-day calculation. Required: op, one of is_business_day, next_business_day, prev_business_day, add_business_days and list_holidays. The other arguments (date, days, from, to, year_end_as_holiday) depend on the operation.

Related MCP server: kaisha-mcp

Configuration

  • HOJINCHECK_MCP_URL (optional) — override the upstream endpoint. Defaults to https://hojincheck.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)

  • HOJINCHECK_API_KEY (optional) — when set, every upstream request carries an Authorization: Bearer <key> header, for the caller's own Hojincheck key (a free key from the service). When it is not set, no key header is sent. (The header name and Bearer form are pinned by the original's registry record; forwarding the key from this env var is a labelled reconstruction — the original surface was captured keyless.)

Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name jpverify), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with jpverify error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string:

npx @reneturcios/jpverify resolve_company '{"name":"Example K.K."}'
npx @reneturcios/jpverify verify_company '{"corporate_number":"1234567890123"}'
npx @reneturcios/jpverify jp_calendar '{"op":"is_business_day","date":"2026-01-01"}'
npx @reneturcios/jpverify --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

npx -y @reneturcios/jpverify mcp

MCP client config:

{
  "mcpServers": {
    "jpverify": {
      "command": "npx",
      "args": ["-y", "@reneturcios/jpverify", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/jpverify
docker run --rm ghcr.io/cloudcorprecords/jpverify --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

npm install
npm run build
npm test
npm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      MCP server for the Japan National Tax Agency Corporate Number API, enabling corporate number lookup and search via local AI clients.
      3
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for the Kaisha API, providing official Japanese company-registry data including corporate numbers and qualified invoice registrations, with pay-per-call via USDC micropayments.
      19 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server for Japanese public business data, enabling AI agents to validate and look up corporate numbers, search bank/branch codes, and check national holidays. Runs locally with no telemetry; live corporate registry data requires a free NTA app ID.
      8
      MIT