Japan Qualified Invoice Issuers (Corporations)
Server Details
Japan NTA qualified invoice issuer status of corporations by T-number. Records daily changes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The two invoice tools are clearly split by intent: invoice_registration_changes is a time-windowed delta feed, while invoice_registration_lookup answers a single-entity status question. catalog and get_receipt are both service-meta tools but are distinguishable (pricing/tool listing vs. re-fetching a lost paid response). Minor overlap in the 'service plumbing' pair keeps it from a 5.
The two domain tools follow a consistent invoice_registration_<noun> pattern, but the set mixes that with a bare noun (catalog) and a generic verb_noun (get_receipt). Still readable, but no single predictable convention across all four.
Four tools for a narrow, read-only registry lookup domain is well-scoped; each has a distinct role and none feels padded. It is on the thin side, but the domain genuinely does not demand much more.
The read-only lifecycle (status lookup, change feed, receipt recovery, catalog) is covered, but there is no way to search by corporate name, address, or region, and no bulk/export path, which are natural expectations for this dataset. Agents can work around this only if they already have a registration or corporate number.
Available Tools
4 toolscatalogCatalog: tools, prices and limitsARead-onlyInspect
List the tools of this server with prices, data sources, licensing, daily limits and data freshness.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| legal | Yes | |
| terms | Yes | URL of the terms of service. |
| tools | Yes | Every tool of this server with its price. |
| paused | Yes | Operator pause flags (true = paused). |
| server | Yes | |
| payment | Yes | |
| provenance | No | Freshness receipts for every upstream source used. |
| daily_limits | Yes | Daily limits of paid calls (calls, usd, timezone) or a misconfiguration notice. |
| fetch_status_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds the content categories returned (prices, licensing, limits, freshness), which is useful context, but an output schema exists and would surface the same structure, so the incremental disclosure is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause enumerates distinct payload content, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a read-only annotation, and an output schema present, the description need not explain return values or safety. It is nearly complete for this simple tool; only a hint about when to reach for it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies under the '0 params' rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ("List") plus resource ("the tools of this server") and an enumeration of the payload contents (prices, data sources, licensing, daily limits, freshness). It is plainly distinguishable from siblings like get_receipt or drone_flight_check, though it does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given; usage is only implied by the discovery framing ("the tools of this server"). An agent can infer this is the entry point for learning available tools and pricing, but nothing states that intent directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiptGet receipt of a paid callARead-onlyInspect
Re-fetch the stored result of a settled paid call by its receipt_id, for when the response was lost after payment. Free. Unknown or unsettled receipt ids return RECEIPT_NOT_FOUND. Results are kept for 90 days after settlement.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | The receipt_id returned with a paid result ("rcpt_" + 64 hex characters). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | Name of the paid tool that produced the result. |
| terms | Yes | URL of the terms of service. |
| result | Yes | The stored result, exactly as returned by the paid call. |
| payment | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| receipt_id | Yes | Receipt id of the settled paid call ("rcpt_" + 64 hex). Use with get_receipt. |
| settled_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past readOnlyHint=true by disclosing cost ('Free'), the failure mode and error code (RECEIPT_NOT_FOUND for unknown/unsettled ids), and the retention window (90 days after settlement). These are exactly the runtime traits an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the receipt_id, followed by behavioral facts. No filler, no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description still covers cost, error behavior, and retention limits. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already specifies the receipt_id format ('rcpt_' + 64 hex characters, maxLength 80). The description only names the identifier without adding format or constraint detail, so the schema does the real work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('re-fetch'), specific resource ('stored result of a settled paid call'), and the keying mechanism ('by its receipt_id'). The 're-fetch ... for when the response was lost' framing clearly separates it from the unrelated sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit triggering scenario: use it when a paid call's response was lost after payment. It also implies the boundary condition (unknown or unsettled ids are not valid targets), but does not name an alternative tool or state a when-not clause for other lookup paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_registration_changesQualified invoice issuer changes (corporations)ARead-onlyInspect
Which Japanese corporations were newly registered as qualified invoice issuers, had their published details changed, or had their registration cancelled or expired, in NTA's daily difference files since a date? From this service's own record of the files it read (NTA keeps them 40 business days). Each change has the file date, observed_at, the event type and the dates as published. Corporations only. Free window: last 30 days; page with next_cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of changes, 1-500 (default 100) | |
| since | Yes | ISO 8601 date or date-time with time zone, e.g. 2026-10-01; changes in difference files created on or after that date | |
| cursor | No | next_cursor from a previous answer, to read the next page | |
| event_type | No | Optional filter: registered, details_changed, expired, cancelled, record_deleted or past_record |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| terms | Yes | URL of the terms of service. |
| changes | Yes | Corporate rows of the NTA difference files read by this service, oldest first. |
| coverage | Yes | |
| truncated | Yes | |
| nta_notice | Yes | Always pass on: cancellation and expiry are published facts with the dates as published, not an assessment of the business. |
| provenance | Yes | Freshness receipts for every upstream source used. |
| answered_at | Yes | |
| attribution | Yes | |
| next_cursor | Yes | |
| history_note | Yes | |
| legal_notice | Yes | |
| files_observed | Yes | |
| history_window | Yes | Free history window applied to this answer. |
| official_check | Yes | Read first: as published by NTA; check the official site listed here before relying on this answer. |
| tracking_since | Yes | Date of the first NTA difference file this service read. Nothing before it was observed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; the description goes further by disclosing that results come from the service's own record of files read, that NTA retains files only 40 business days, and that the free window is the last 30 days. It also names the returned fields (file date, observed_at, event type, published dates), though the output schema already carries that. The 40-day/30-day limits are the genuinely additive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core question the tool answers, then supporting constraints in short sentences; no filler. The parenthetical '(NTA keeps them 40 business days)' and the 'From this service's own record...' clause are slightly dense but each earns its place by bounding result availability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full parameter coverage and read-only annotations already supplied, the description only needs to add scope and availability constraints, which it does (corporations only, 40-business-day source retention, 30-day free window, cursor paging). Nothing essential for a correct call is missing, though explicit guidance on behavior when 'since' predates the retention window would close the last gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents since, limit, cursor and event_type thoroughly, including the enum. The description's 'since a date', 'page with next_cursor' and the colloquial event vocabulary ('newly registered', 'published details changed', 'cancelled or expired') loosely map to code values but add little beyond the schema's own enum descriptions. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and verb set: corporations newly registered as qualified invoice issuers, with details changed, cancelled or expired, sourced from NTA daily difference files. The 'Corporations only' clause sharply bounds the scope. It does not explicitly name the sibling invoice_registration_lookup as the alternative for single-record lookups, so sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'since a date' and 'page with next_cursor' imply the incremental-sync use case, and the free/retention windows hint at when the tool is viable. But there is no explicit when-to-use versus when-not, and no pointer to invoice_registration_lookup or catalog for other needs — the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_registration_lookupLook up a qualified invoice issuer registration (corporations)ARead-onlyInspect
Is this Japanese corporation a registered qualified invoice issuer, since when, and was it cancelled or did it expire? Give number (T1000020109142) or corporate_number (13 digits); the check digit is validated. Returns listed, expired (cancellation or expiry date passed) or unknown, with NTA's published dates, the difference file used, fetched_at and recorded changes. Corporations only. A number not seen in the recorded files is unknown, never 'not registered'.
| Name | Required | Description | Default |
|---|---|---|---|
| number | No | Registration number: T followed by 13 digits, e.g. T1000020109142 (width, spaces and hyphens ignored) | |
| corporate_number | No | Corporate number (houjin bangou), 13 digits, e.g. 1000020109142; looked up as T + the 13 digits |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| terms | Yes | URL of the terms of service. |
| status | Yes | listed = the latest recorded record shows a registration; expired = it shows a cancellation or expiry date that has passed; unknown = not in the changes recorded since tracking_since while the full file is not loaded (not_in_recorded_changes_full_file_not_loaded; never means not registered), or data not loaded, stale, still loading, or a gap. |
| nta_notice | Yes | Always pass on: cancellation and expiry are published facts with the dates as published, not an assessment of the business. |
| provenance | Yes | Freshness receipts for every upstream source used. |
| answered_at | Yes | |
| attribution | Yes | |
| status_note | Yes | |
| data_version | Yes | |
| legal_notice | Yes | |
| registration | Yes | |
| official_check | Yes | Read first: as published by NTA; check the official site listed here before relying on this answer. |
| unknown_reason | Yes | |
| registry_status | Yes | |
| recorded_changes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly and openWorld, and the description adds real context beyond them: the three outcome states, the NTA-published dates and difference file provenance, check-digit validation, and the semantic caveat that absent records mean 'unknown' rather than 'not registered'. Return-field detail is partially duplicated by the existing output schema, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the question the tool answers, then identifier forms, then result semantics. Dense and mostly waste-free, though the example registration number is repeated from the schema and the result-status sentence is packed tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Only two optional parameters, full schema coverage, a present output schema and safety annotations — and the description still supplies the one thing structured fields cannot: what 'unknown' implies and which population (corporations) is covered. Nothing needed to call or interpret it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes further by explaining that corporate_number is looked up as 'T' + the 13 digits and that the check digit is validated, which affects how an agent should construct and retry inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific question the tool answers: is this corporation a registered qualified invoice issuer, since when, cancelled/expired. Verb and resource are unambiguous and scope ('Corporations only') is stated. It does not, however, distinguish itself from the sibling invoice_registration_changes, which overlaps with the 'recorded changes' wording in the return description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Give number (T...) or corporate_number (13 digits)' tells the agent exactly which identifier forms to supply, and the closing sentence ('A number not seen in the recorded files is unknown, never not registered') sets a critical interpretation rule. No routing guidance versus sibling tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
catalog - First observed
get_receipt - First observed
invoice_registration_changes - First observed
invoice_registration_lookup
Related MCP Connectors
japan-corporate-number — Japan's National Tax Agency (国税庁) corporate
Verify Japanese companies, invoice-issuer registrations and addresses against government open data.
Search Japanese corporations and verify invoice numbers using official National Tax Agency data.
Japanese public records on an organization: FSA, MOF, EDINET, ISA and gBizINFO lists. Evidence only.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that validates Japanese corporate numbers and invoice registration numbers, and normalizes/matches company names across notation variants.715 npmMIT
- AlicenseAqualityCmaintenanceEnables verification of Japanese companies through JP-Verify's API: checking qualified-invoice registration (T-numbers) and Corporate Numbers, resolving company names to candidate numbers, retrieving official or romanised English names and addresses, and fetching major-shareholder tables from EDINET filings. Supports single or batch lookups with API-key or key-less sandbox access, returning raw responses plus quota and provenance metadata.421 PyPIMIT
- AlicenseNot gradedqualityFmaintenanceMCP 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.8 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to access and compare Japanese public data from e-Stat, corporate registration, real estate, and invoice APIs, automatically converting codes into human-readable formats with sources and timestamps.1445 PyPI12MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.