Japan Business Tools
Server Details
Japanese holidays, business days, eras, postal codes, addresses and corporate numbers.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 13 tools
Most tools target clearly distinct operations: business-day arithmetic, era conversion, postal lookup/search, and corporate lookup/search. Minor potential confusion exists between normalize_address and search_postal_code for deriving postal codes from address information, and the lookup/search postal pair names are similar, but the descriptions clarify input/output differences.
The set consistently uses snake_case, and most names follow a verb_noun pattern such as add_business_days, check_business_day, lookup_postal_code, and search_corporation_by_name. A few exceptions like from_japanese_era, to_japanese_era, and last_business_day_of_month deviate from the verb_noun norm but remain readable and predictable within the domain.
Thirteen tools is well-scoped for a multi-domain Japanese business utility server spanning calendar/business-day logic, era conversion, postal addressing, and corporate registry lookup. Each tool earns its place, and the count stays within a reasonable range without obvious redundancy.
The core surface is strong: business-day addition, adjustment, checking, counting, month-end, holiday listing, era conversion both directions, postal lookup/search/normalization, and corporate lookup/search. Minor gaps remain, such as no qualified invoice registry lookup (explicitly excluded) and no block-level address verification or coordinates, but the main workflows are covered.
Available Tools
13 toolsadd_business_daysAdd business days / n営業日後・前ARead-onlyIdempotentInspect
Return the date that is N business days after (or before, if N is negative) the given date. The start date itself is not counted; e.g. 1 business day after a Friday is the next Monday unless it is a holiday. / n営業日後(nが負なら前)の日付。起算日は数えない。
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Start date (YYYY-MM-DD) / 起算日 | |
| days | Yes | Number of business days (negative = before) / 営業日の数(負なら前) | |
| calendar | No | "standard": weekends and national holidays are closed. "bank": also closed Dec 31 - Jan 3 (Japanese bank holidays). / standard:土日・祝日が休み。bank:加えて12月31日〜1月3日が休み(銀行の休業日) | standard |
| extra_holidays | No | Additional company-specific closed days (e.g. summer break). / 会社独自の休み | |
| extra_business_days | No | Days treated as business days even if they are weekends or holidays. / 休日でも営業日とする日 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the bar is lower. The description adds genuinely non-obvious behavioral rules not present in structured fields: the start date is not counted, and the counting respects holidays, with the Friday/Monday example making the semantics concrete. It does not discuss calendar variants or limits, which the schema covers instead.
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 operation and backed by one illustrative example; no filler. The bilingual duplication is intentional for a JA/EN tool, so it does not count against conciseness, though it doubles the surface text.
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 output schema, the description carries the return-value burden and does so ('return the date'), plus it explains the counting convention. It stops short of explaining how extra_holidays/extra_business_days interact with the calendar, leaving that to the schema, which is acceptable at 100% coverage.
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%, so the baseline is 3. The description's only parameter-relevant content (negative N means before, holidays matter) restates what the schema already says for 'days' and the calendar fields, adding little beyond the schema.
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 and resource ('Return the date that is N business days after/before the given date') and includes a concrete Friday-to-Monday example. It implicitly separates itself from siblings like adjust_to_business_day and count_business_days by describing an offset operation, though it never names or explicitly contrasts 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?
The semantics imply when this tool applies (offsetting a date by N business days), but there is no explicit when-to-use/when-not guidance or mention of the alternative siblings such as adjust_to_business_day or count_business_days. Usage must be inferred from the operation described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adjust_to_business_dayAdjust to a business day / 休みの日の前倒し・後ろ倒しARead-onlyIdempotentInspect
If the date is a business day, return it as is; otherwise move to the next ("next") or previous ("previous") business day. Useful for payment due dates that fall on holidays. / 営業日ならその日、休みなら次(next)または前(previous)の営業日。支払日が休みのときなどに使う。
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) / 日付 | |
| calendar | No | "standard": weekends and national holidays are closed. "bank": also closed Dec 31 - Jan 3 (Japanese bank holidays). / standard:土日・祝日が休み。bank:加えて12月31日〜1月3日が休み(銀行の休業日) | standard |
| direction | No | next = 後ろ倒し, previous = 前倒し | next |
| extra_holidays | No | Additional company-specific closed days (e.g. summer break). / 会社独自の休み | |
| extra_business_days | No | Days treated as business days even if they are weekends or holidays. / 休日でも営業日とする日 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds the key behavioral rule: unchanged when already a business day, shifted by direction otherwise, plus the default-to-next behavior. It doesn't state the return format (a date string) or what happens at range boundaries.
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?
Two parallel sentences (EN/JA) that are front-loaded with the core rule and free of filler. The bilingual duplication roughly doubles length but is a deliberate convention here, not padding.
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?
For a single-value transform with a fully documented 5-parameter schema, this covers the decision logic and the intended use case. Gaps are minor: no statement of the returned value type or behavior when no business day is found within the extra-* constraints.
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% and the enum parameters (calendar, direction) are already fully documented in the schema, including the bank-holiday distinction. The description only restates 'next'/'previous' semantics, adding little beyond the schema baseline.
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+resource ('adjust a date to a business day') and spells out the two directional behaviors. It is distinguishable from add_business_days (offset) and check_business_day (predicate), though it never names those siblings explicitly.
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 a concrete use context ('payment due dates that fall on holidays') and implicitly defines the scenario via the business-day/non-business-day branch. It stops short of explicitly excluding or routing to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_business_dayCheck a business day / 営業日かどうかの判定ARead-onlyIdempotentInspect
Check whether a date is a business day in Japan, and if not, why (weekend, holiday name, bank closure, or a custom closed day). reason is Japanese text; reason_code is one of weekend, holiday, bank_closure, extra_holiday (null on business days). flags: estimated/unverified when the year's holidays are an estimate. / その日が営業日かどうかと、休みの理由(土日・祝日の名前・銀行の休業日・指定された休日)。reason_code は weekend・holiday・bank_closure・extra_holiday。
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) / 日付 | |
| calendar | No | "standard": weekends and national holidays are closed. "bank": also closed Dec 31 - Jan 3 (Japanese bank holidays). / standard:土日・祝日が休み。bank:加えて12月31日〜1月3日が休み(銀行の休業日) | standard |
| extra_holidays | No | Additional company-specific closed days (e.g. summer break). / 会社独自の休み | |
| extra_business_days | No | Days treated as business days even if they are weekends or holidays. / 休日でも営業日とする日 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, so the bar is lower, yet the description adds real behavioral detail absent from structured fields: reason is Japanese text, reason_code values, null on business days, and the meaning of the estimated/unverified flags. Only the estimate-year threshold behavior is left slightly implicit.
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 purpose and reason codes; the bilingual duplication roughly doubles the length without adding new information, but the content itself is dense and free of filler.
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 output schema, the description correctly compensates by documenting the returned fields (reason, reason_code values, flags). For a read-only single-date predicate this is close to complete; only explicit sibling routing and the estimate-year boundary are 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%, so the schema already documents date, calendar, extra_holidays, and extra_business_days, including the enum semantics of standard vs bank. The description restates the bank-closure and custom-holiday concepts but adds no format or precedence information beyond the schema, so the 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?
Starts with a specific verb+resource: 'Check whether a date is a business day in Japan, and if not, why.' It even enumerates the possible reasons (weekend, holiday name, bank closure, custom closed day), which cleanly separates it from siblings like adjust_to_business_day and count_business_days.
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?
The usage is implied by the description (a predicate-style lookup for a single date), but there is no explicit when-to-use/when-not or pointer to the sibling tools that modify or enumerate business days. An agent must infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_business_daysCount business days / 期間の営業日数ARead-onlyIdempotentInspect
Count business days from start to end, inclusive of both ends. Returns 0 if start is after end. The period can be up to 3,660 days (about 10 years). / start から end までの営業日の数(両端を含む)。start が end より後なら 0。期間は3,660日(約10年)まで。
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date (YYYY-MM-DD) / 終了日 | |
| start | Yes | Start date (YYYY-MM-DD) / 開始日 | |
| calendar | No | "standard": weekends and national holidays are closed. "bank": also closed Dec 31 - Jan 3 (Japanese bank holidays). / standard:土日・祝日が休み。bank:加えて12月31日〜1月3日が休み(銀行の休業日) | standard |
| extra_holidays | No | Additional company-specific closed days (e.g. summer break). / 会社独自の休み | |
| extra_business_days | No | Days treated as business days even if they are weekends or holidays. / 休日でも営業日とする日 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), but the description adds real behavioral detail beyond them: inclusive endpoints, a defined degenerate case ('Returns 0 if start is after end'), and a hard limit of 3,660 days. It does not explain how the calendar/override parameters interact, which keeps it below 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?
The lead sentence front-loads the core operation and the second and third sentences cover the two edge cases efficiently. It loses a point only because the full text is duplicated verbatim in Japanese, doubling length without adding information for a single-language reader.
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?
For a 5-parameter tool with 100% schema coverage and no output schema, the description supplies the key semantics an agent needs: what is counted, inclusive boundaries, the degenerate result, and the maximum span. The interaction between calendar and the two override arrays is left entirely to the schema, which is a minor gap given full coverage.
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%, so the schema already documents start, end, calendar, extra_holidays, and extra_business_days with format and enum semantics. The description adds nothing parameter-specific beyond restating the start/end relationship, so the 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?
The description states a specific verb and resource ('Count business days from start to end') plus a scope qualifier ('inclusive of both ends'), which lets an agent distinguish it from siblings like add_business_days and check_business_day. It does not, however, explicitly name or contrast those siblings.
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?
Usage is implied by the verb 'count' within a date range, and boundary behavior is stated, but the description never says when to prefer this over adjust_to_business_day, check_business_day, or list_holidays. No exclusions or alternative-selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
from_japanese_eraConvert a Japanese era date (wareki) to a Gregorian date / 和暦から西暦ARead-onlyIdempotentInspect
Convert a Japanese era date to YYYY-MM-DD. Accepts 令和8年10月7日, 令和元年5月1日, R8.10.7, H31/4/30, Reiwa 8.10.7, kanji numerals (昭和六十四年一月七日), a trailing weekday such as (水) or 水曜日, and full-width characters. input_era/input_era_year echo the input; actual is the correct era for that date. If the date is outside the input era (e.g. 平成31年5月1日, written after the era changed), it is still converted by counting years, within_era is false and flags has outside_era. If a weekday was given and does not match, weekday_matches is false and flags has weekday_mismatch. / 和暦の日付を西暦にする。元号の範囲の外(平成31年5月1日など)も年を数えて変換し、within_era が false・flags に outside_era。曜日が合わなければ weekday_mismatch。
| Name | Required | Description | Default |
|---|---|---|---|
| wareki | Yes | Japanese era date, e.g. 令和8年10月7日 or R8.10.7 / 和暦の日付 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantive behavior: how out-of-era dates are handled (still counted, within_era=false, outside_era flag) and weekday validation (weekday_matches=false, weekday_mismatch). It does not describe error behavior for unparseable input, which is the main remaining gap.
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?
The core conversion and output-format facts are front-loaded in the first sentence, and the edge cases are ordered logically. The bilingual duplication restates the same content in Japanese, which is reasonable for a Japanese-date tool but costs some density.
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 output schema, the description carries the burden of explaining returns and does so via within_era, weekday_matches, and the flags object. Minor omissions remain (invalid input handling, era range limits), but an agent has enough to call and interpret it correctly.
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% for the single wareki parameter, so baseline is 3, but the description adds genuinely new semantics: kanji numerals, weekday suffixes, full-width characters, and formats like H31/4/30 and Reiwa 8.10.7 are not enumerated in the schema. This meaningfully expands what the agent knows it can pass.
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+resource (convert Japanese era date to Gregorian) and gives the output format YYYY-MM-DD. It is clearly the inverse of the sibling to_japanese_era, so an agent can route between them without opening schemas.
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?
Conveys the context well by enumerating many accepted input shapes and the out-of-era conversion behavior, which implicitly tells the agent when this tool applies. It never explicitly names to_japanese_era as the alternative for the reverse direction, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
last_business_day_of_monthLast business day of a month / 月末の最終営業日CRead-onlyIdempotentInspect
Return the last business day of the given month. / その月の最終営業日。
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (1980-2099) / 年 | |
| month | Yes | Month (1-12) / 月 | |
| calendar | No | "standard": weekends and national holidays are closed. "bank": also closed Dec 31 - Jan 3 (Japanese bank holidays). / standard:土日・祝日が休み。bank:加えて12月31日〜1月3日が休み(銀行の休業日) | standard |
| extra_holidays | No | Additional company-specific closed days (e.g. summer break). / 会社独自の休み | |
| extra_business_days | No | Days treated as business days even if they are weekends or holidays. / 休日でも営業日とする日 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so safety is covered. The description adds nothing beyond them: it does not state the return format (presumably YYYY-MM-DD), nor that the 'calendar' and extra holiday/business-day parameters change the computed result.
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?
Two short sentences, purpose front-loaded, but the English sentence is simply duplicated in Japanese with no added information, and the whole entry is terse to the point of under-specification.
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?
For a tool with 5 parameters, two calendar modes, and custom holiday overrides but no output schema, the description should at least characterize the returned value and how the holiday options affect it. It omits both, leaving the agent to infer the result format entirely.
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%, including detailed enum semantics for 'calendar' and patterns for the date arrays, so the schema carries the full parameter burden. The description adds no parameter meaning beyond it, which is the baseline 3 case.
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 and resource: returns the last business day of a given month. An agent understands the output immediately. However, it does not distinguish itself from closely related siblings like adjust_to_business_day or check_business_day, which also reason about business days.
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 guidance on when to choose this over adjust_to_business_day, check_business_day, or count_business_days, and no mention of prerequisites. The usage context is implied by the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_holidaysList Japanese national holidays / 日本の祝日の一覧ARead-onlyIdempotentInspect
List all Japanese national holidays and substitute holidays for a year, based on the National Holidays Act and verified against the Cabinet Office CSV. Each holiday has name (descriptive) and official_name (as written by the Cabinet Office). / その年の国民の祝日・休日(振替休日・国民の休日を含む)の一覧。name は内容がわかる名前、official_name は内閣府の表記。
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (1980-2099) / 年 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/closed-world profile, and the description adds real value on top: the data provenance (Cabinet Office CSV), the inclusion of substitute holidays and citizens' holidays, and the distinction between the two returned name fields. It does not discuss limits or edge cases like years outside the supported range.
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?
Purpose and scope are front-loaded in the first sentence, with field semantics following. The bilingual duplication doubles the length, but each half is tight and no sentence 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 output schema, the description usefully explains the two result fields (name, official_name), which an agent would otherwise have to guess. It still leaves the date representation of each holiday unstated, a minor gap for a simple read tool whose annotations already cover safety.
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% and the single `year` parameter already documents its 1980-2099 bounds in the schema. The description's 'for a year' adds no format or syntax detail beyond that, so the schema is doing the heavy lifting.
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?
The description names a specific verb and resource ('List all Japanese national holidays and substitute holidays for a year') and even grounds it in the National Holidays Act and Cabinet Office CSV. It is unambiguous against the business-day and postal-code siblings, though it never explicitly names or contrasts an alternative tool.
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?
Usage is only implied: an agent can infer this is the tool for retrieving a year's holiday calendar, but there is no statement of when to prefer it over check_business_day or adjust_to_business_day, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_corporate_numberLook up a Japanese corporate number / 法人番号から法人の情報ARead-onlyIdempotentInspect
Look up a 13-digit Japanese corporate number (法人番号) in the National Tax Agency's monthly bulk data: name, furigana, English name, kind, registered address and postal code, assignment date, and closure (date, cause, successor) if the registry record was closed. The check digit (first digit) is verified first; a wrong check digit is reported as an input error. flags: closed (the registry record is closed — tell the user), excluded_from_search, not_found. This is not the invoice (qualified invoice issuer) registry. / 法人番号(13桁)から、名前・フリガナ・英語の名前・法人の種類・所在地・郵便番号・指定の日・閉鎖の日と事由・承継先を返す。国税庁の全件データ(月1回)。先頭の1桁(チェックデジット)を確かめ、合わなければ入力の誤りとして返す。インボイス(適格請求書発行事業者)の登録の確認ではない。
| Name | Required | Description | Default |
|---|---|---|---|
| corporate_number | Yes | 13-digit corporate number, hyphens/spaces allowed / 法人番号(13桁。ハイフン・空白は任意) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/closed-world, the description adds real behavioral context: the data source (NTA monthly bulk data), check-digit pre-validation that reports a wrong first digit as an input error, and decoded flag semantics (`closed`, `excluded_from_search`, `not_found`) including the instruction to tell the user about closure. This is well beyond what the annotations provide.
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?
The English portion is front-loaded and dense with no filler, leading with the input, then the returned fields, then validation behavior, then flags. The full Japanese mirror doubles the length, which is defensible for a bilingual audience but is redundant text for any single reader.
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 output schema, the description carries the return-value burden and does so by enumerating every returned field plus the flag vocabulary. Combined with the validation and exclusion notes, an agent has everything needed to call it and interpret the result.
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% for the single parameter, so the baseline is 3. The description adds meaning the schema does not: the first digit is a check digit that is verified and surfaces as an input error rather than a not-found result, which materially affects how the agent interprets a failure.
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 and resource (look up a 13-digit Japanese corporate number) and immediately enumerates the returned fields. It also distinguishes itself from two adjacent concepts: the sibling search_corporation_by_name (name-based) and the invoice/qualified-invoice-issuer registry, which it explicitly rules out.
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?
The negative exclusion ('this is not the invoice registry') and the input type ('13-digit corporate number') make the use case clear: call this when you already hold a corporate number. It stops short of explicitly naming search_corporation_by_name as the alternative for name-based lookups, so the routing guidance is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_postal_codeLook up a Japanese postal code / 郵便番号から住所ARead-onlyIdempotentInspect
Look up the address (prefecture, city, town) for a 7-digit Japanese postal code, from Japan Post data. Accepts forms like 1000001, 100-0001 or 〒100-0001. One code can cover several towns; all are returned. town_detail holds the parenthesized part as written by Japan Post (e.g. chome ranges or building floors). If the code is a business-specific code (大口事業所個別番号) or a PO box code, the business is returned in offices. / 郵便番号から住所(都道府県・市区町村・町域)。日本郵便のデータ。1つの郵便番号に町域が複数あれば、すべて返す。事業所の個別郵便番号なら、事業所名と所在地を offices に返す。
| Name | Required | Description | Default |
|---|---|---|---|
| postal_code | Yes | 7-digit postal code, hyphen optional / 郵便番号(7桁、ハイフンは任意) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and closed-world behavior, so the description is free to add richer call semantics. It discloses that one code can return multiple towns, explains the town_detail field's parenthesized content, and states that business-specific or PO box codes return offices – all valuable behavioral context beyond the structured metadata.
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?
The English portion is front-loaded and efficient, covering purpose, input formats, multi-result behavior, and special-case output fields in a few sentences. The bilingual duplication adds length, but given the tool's bilingual title it is purposeful rather than purely redundant.
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?
For a simple single-parameter lookup with no output schema, the description explains the main return components (prefecture, city, town, town_detail, offices) and the key edge cases. It could be more explicit about the overall response shape or error behavior, but it is largely complete for an agent to invoke correctly.
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 input schema already documents the single postal_code parameter with hyphen-optional guidance, so the baseline would be 3. The description adds concrete accepted forms (1000001, 100-0001, 〒100-0001), which extends the schema's meaning with useful input flexibility.
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?
The description states a specific verb and resource: looking up a Japanese address from a 7-digit postal code, using Japan Post data. It clearly defines the operation, but it does not differentiate this tool from its sibling search_postal_code, leaving the agent to infer which one to use.
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?
Usage is implied: use when you have a postal code and need the corresponding address. However, there is no explicit when-not guidance and no mention of the sibling search_postal_code as an alternative, so the agent must infer the boundary from context rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normalize_addressNormalize a Japanese address (to town level) / 住所の正規化(町域まで)ARead-onlyIdempotentInspect
Split a Japanese address into prefecture, city, town and the rest (block numbers, building), matching Japan Post's address data, and return candidate postal codes. Absorbs full/half-width, spacing, kanji vs. arabic numerals, ヶ/ケ and omitted county names; fills in the prefecture when the city is unique. Does NOT verify block/house numbers and has no coordinates. level tells how far the match went: 0 = nothing matched, 1 = prefecture only (see city_candidates if the city name is ambiguous), 2 = city matched but not the town (postal_codes are city-wide candidates), 3 = town matched. address and municipality_code are null below level 2. flags: partial (level below 3), ambiguous (several city or postal code candidates — ask the user or show all). / 住所を都道府県・市区町村・町域・残り(番地・建物名など)に分け、郵便番号の候補を返す(日本郵便のデータにあてはめる)。番地が実在するかの確認と緯度・経度はない。level:0=わからない、1=都道府県まで、2=市区町村まで(町域はわからない)、3=町域まで。
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Japanese address, e.g. 北海道札幌市中央区大通西10丁目1-1 / 住所 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, closed-world), and the description adds substantial context beyond them: which input variants it absorbs (full/half-width, spacing, kanji vs. arabic numerals, ヶ/ケ, omitted county names), that it does not verify block numbers and returns no coordinates, the meaning of `level` 0-3, nullability below level 2, and the `partial`/`ambiguous` flags.
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?
Purpose is front-loaded, followed by behavior, level semantics, then flags in a logical order. The bilingual English/Japanese rendering roughly doubles the length, and the Japanese portion drops some details (flags, city_candidates note), so there is mild redundancy rather than pure waste.
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 output schema, the description correctly carries the burden of explaining return values: `level`, `city_candidates`, `postal_codes`, `address`, `municipality_code`, and the flags. For a single-parameter tool, an agent has everything needed to call and interpret it.
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% and there is only one parameter, so the baseline is 3. The description adds genuine input semantics beyond the schema example by explaining the tolerated input variation (full/half-width, spacing, numeral styles) and the prefecture-fill behavior, which helps the agent format input.
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 and resource ('Split a Japanese address into prefecture, city, town and the rest') and defines the exact scope ('to town level'). The tool is clearly distinguishable from siblings like lookup_postal_code by its parsing/decomposition behavior, and it explicitly declares its boundaries ('Does NOT verify block/house numbers and has no coordinates').
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?
Usage is implied rather than stated: the agent learns it handles messy/omitted address forms and should ask the user or show all candidates when `ambiguous`. However, it never says when to prefer this over lookup_postal_code or search_postal_code, so alternative selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_corporation_by_nameFind corporate numbers by name / 法人の名前から法人番号ARead-onlyIdempotentInspect
Find Japanese corporations whose name starts with the given text (prefix match), in the National Tax Agency's monthly bulk data. Legal-form words such as 株式会社 or 一般社団法人 are ignored at either end, and full/half-width and spaces are normalized. Matching in the middle of a name and furigana search are not supported. flags: truncated, exact_match_only (too many names start with the input; only exact matches returned), not_found. Returns up to 100 matches (total, returned, truncated) with corporate number, name, prefecture, city and is_closed (registry record closed); use lookup_corporate_number for details. Corporations marked as excluded from search on the NTA site are not included. / 名前の先頭から合う法人を探す(前方一致)。株式会社などの言葉は前後どちらにあっても無視し、全角・半角や空白の違いも吸収する。名前の途中からの検索とフリガナの検索はできない。最大100件。詳しい情報は lookup_corporate_number で。国税庁のサイトで検索対象除外の法人は入っていない。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Beginning of the corporate name (e.g. トヨタ自動車) / 法人の名前の先頭(例:トヨタ自動車) | |
| prefecture | No | Prefecture to narrow down (optional, e.g. 東京都 or 東京) / 都道府県で絞り込む(任意) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, not open-world), and the description goes well beyond them: legal-form words ignored at either end, full/half-width and space normalization, the truncated/exact_match_only/not_found flags, the 100-result cap with total/returned/truncated, and is_closed semantics. This is the kind of behavioral detail an agent needs to interpret results.
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-loads the core semantics and constraints, and every sentence carries information. It is dense with flags, normalization rules and return-shape details, and the full English/Japanese duplication doubles the length, but for a tool with this many quirks the size is justified.
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?
No output schema exists, yet the description enumerates the returned fields, the flag values that signal edge cases, and the result cap. Combined with 100% schema coverage and read-only annotations, an agent has everything needed to call and interpret this tool.
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 baseline is 3. The description nevertheless adds real meaning: it explains that the name parameter is a prefix (not substring) and that legal-form words and width/spacing differences are normalized away, which the schema's terse 'Beginning of the corporate name' does not convey.
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+resource ('Find Japanese corporations whose name starts with the given text') plus the data source (NTA monthly bulk data). It clearly distinguishes itself from lookup_corporate_number, which it names as the detail-fetching counterpart.
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?
Explicitly states supported mode (prefix match), unsupported modes ('Matching in the middle of a name and furigana search are not supported'), and routes the agent to lookup_corporate_number for details. Also notes that NTA-excluded corporations are absent, which tells the agent what it should NOT expect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postal_codeFind postal codes by address / 住所から郵便番号ARead-onlyIdempotentInspect
Find Japanese postal codes by prefecture, city and (optionally) part of the town name, from Japan Post data. The city must be the full municipality name (e.g. 札幌市中央区, 新宿区); the county name may be omitted. With office_name, searches business-specific codes (大口事業所個別番号) of businesses in that city by name instead. Returns up to 100 matches. / 都道府県・市区町村・町域(部分一致、任意)から郵便番号を探す。市区町村は正式な名前で(郡名は省いてよい)。office_name を指定すると、その市区町村の事業所の個別郵便番号を事業所名(部分一致)で探す。
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Municipality, e.g. 新宿区 / 市区町村 | |
| town | No | Part of the town name, e.g. 西新宿 (optional) / 町域の一部(任意) | |
| prefecture | No | Prefecture, e.g. 東京都 (optional) / 都道府県(任意) | |
| office_name | No | Part of a business name, in kanji or katakana (optional) / 事業所名の一部(任意) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, and the description adds value beyond them: a hard cap of up to 100 matches, the Japan Post data source, and partial-match semantics for town and office_name. It does not explain behavior when 100 matches are exceeded (truncation vs paging).
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 primary lookup, then the office_name branch and the result limit. The bilingual duplication roughly doubles length, but it is purposeful for a Japanese-jurisdiction tool and each sentence carries information.
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 output schema, the description supplies the key return detail (up to 100 matches) and the input-format rules an agent needs. The remaining gap is routing versus the similar lookup_postal_code sibling.
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 baseline is 3, and the description adds real meaning on top: city must be the full municipality name, the county name may be omitted, and office_name reinterprets the query as business-name matching rather than town matching.
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+resource (find Japanese postal codes) and scopes the search keys (prefecture, city, town). It is clearly about forward lookup, but it never distinguishes itself from the sibling lookup_postal_code, which appears to be the closest alternative, so it falls short of a 5.
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 concrete conditions: city required, town optional, and office_name switches to business-specific (大口事業所個別番号) lookup by name. It does not say when to prefer this over lookup_postal_code or normalize_address, so no explicit exclusion/alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
to_japanese_eraConvert a date to the Japanese era (wareki) / 西暦から和暦ARead-onlyIdempotentInspect
Convert a Gregorian date (YYYY-MM-DD) to the Japanese era calendar, e.g. 2026-10-07 → 令和8年10月7日 (wareki_short R8.10.07, zero-padded). Year 1 is written 元年. Supported from 1873-01-01 (the Gregorian calendar was adopted on 明治6年1月1日). Eras: 令和 (R) from 2019-05-01, 平成 (H) from 1989-01-08, 昭和 (S) from 1926-12-25, 大正 (T) from 1912-07-30, 明治 (M) from 1868-01-25. flags: assumes_current_era for dates after today (the era might change). / 西暦の日付を和暦にする。1年目は「元年」。明治6年(1873年)1月1日から。今日より後の日付には assumes_current_era。
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) / 日付 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish this as a read-only, idempotent, closed-world operation. The description goes much further, disclosing the supported date range, all era boundary dates, the 元年 convention for year 1, the zero-padded output format, and the assumes_current_era flag for future dates. This is rich behavioral context beyond annotations.
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?
The description is front-loaded with the conversion and an example, then packs in constraints and flags efficiently. It is somewhat longer than necessary because the Japanese translation duplicates much of the English content, but every English sentence contributes useful information.
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?
Given one simple parameter, no output schema, and rich annotations, the description is complete. It explains what the tool returns through format examples, covers valid date range, era mapping, edge cases, and the future-date flag, leaving no material gap for correct invocation.
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 schema has 100% description coverage for the single date parameter, but the description adds meaningful semantic constraints beyond the regex pattern, notably that supported dates begin at 1873-01-01 and that dates after today may carry era-change uncertainty. It also clarifies the expected Gregorian format with a concrete example.
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?
The description states a precise verb and resource: converting a Gregorian date to the Japanese era calendar. It distinguishes itself from the inverse tool by explicitly naming the input and output direction (2026-10-07 → 令和8年10月7日), and the output format examples make the purpose unambiguous.
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?
The description gives useful domain constraints such as the supported range starting 1873-01-01 and the future-date caveat via assumes_current_era, but it never explicitly says when to choose this over from_japanese_era or other date tools. Usage is implied by the tool's conversion purpose rather than stated.
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.
2 tool updates
- Added
from_japanese_era - Added
to_japanese_era
10 tool updates
- Changed
add_business_days2 fields changed- added
Input schema / properties / calendar / maxLengthAdded value: +200 - added
Input schema / properties / date / maxLengthAdded value: +200
- Changed
adjust_to_business_day3 fields changed- added
Input schema / properties / calendar / maxLengthAdded value: +200 - added
Input schema / properties / date / maxLengthAdded value: +200 - added
Input schema / properties / direction / maxLengthAdded value: +200
- Changed
check_business_day2 fields changed- added
Input schema / properties / calendar / maxLengthAdded value: +200 - added
Input schema / properties / date / maxLengthAdded value: +200
- Changed
count_business_days3 fields changed- added
Input schema / properties / calendar / maxLengthAdded value: +200 - added
Input schema / properties / end / maxLengthAdded value: +200 - added
Input schema / properties / start / maxLengthAdded value: +200
- Changed
last_business_day_of_month1 field changed- added
Input schema / properties / calendar / maxLengthAdded value: +200
- Changed
lookup_corporate_number1 field changed- added
Input schema / properties / corporate_number / maxLengthAdded value: +200
- Changed
lookup_postal_code1 field changed- added
Input schema / properties / postal_code / maxLengthAdded value: +200
- Changed
normalize_address1 field changed- added
Input schema / properties / address / maxLengthAdded value: +200
- Changed
search_corporation_by_name2 fields changed- added
Input schema / properties / name / maxLengthAdded value: +200 - added
Input schema / properties / prefecture / maxLengthAdded value: +200
- Changed
search_postal_code4 fields changed- added
Input schema / properties / city / maxLengthAdded value: +200 - added
Input schema / properties / office_name / maxLengthAdded value: +200 - added
Input schema / properties / prefecture / maxLengthAdded value: +200 - added
Input schema / properties / town / maxLengthAdded value: +200
1 tool update
- Added
search_corporation_by_name
1 tool update
- Added
lookup_corporate_number
9 tool updates
- First observed
add_business_days - First observed
adjust_to_business_day - First observed
check_business_day - First observed
count_business_days - First observed
last_business_day_of_month - First observed
list_holidays - First observed
lookup_postal_code - First observed
normalize_address - First observed
search_postal_code
Related MCP Connectors
Normalize and romanize Japanese addresses, look up postal codes, count Japanese business days.
Japanese holiday and business-day calculations using official Japan Cabinet Office data.
Japanese national holidays from the Cabinet Office data: check dates (holiday / substitute holiday / business day), count business days, find the date N business days later, and list long weekends. Does not guess unannounced years.
Japan data tools for AI agents: calendar (rokuyo), address, name splitting, corporate number lookup
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying Japanese public holidays and calculating business days, including holiday checks, holiday lists, and business-day arithmetic.MIT
- AlicenseAqualityCmaintenanceProvides Japanese national holidays, wareki (era) conversion, and date information. Works fully offline with no API keys required.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables Japanese business calendar operations such as holiday checking, business day calculations, payment date calculation, fiscal year determination, and deadline tracking, all locally without external API.MIT
- AlicenseAqualityDmaintenanceProvides accurate Japanese business day utilities including holiday checks, settlement day calculations, and fiscal period determination, all with embedded holiday data from 2020-2030.725 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.