reference-data
Server Details
Asian govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 28 countries; Japan free.
- Status
- Healthy
- Uptime
- 99.3% over 37 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
Each tool targets a distinct reference-data domain: compliance checks, cost/tax calculations, calendar operations, series lookups, and settlement dates. Even closely related tools (get_series, get_series_history, get_snapshot) have clear scope separation with distinct return semantics. No two tools could be confused for the same purpose.
All tools follow a consistent verb_noun snake_case pattern (check_, compute_, count_, get_, list_, settlement_date). The verbs are specific and predictable, and the pattern is uniform across the entire set with no stylistic deviations.
Eleven tools is well within the ideal range for a reference-data server. Each tool covers a meaningful, non-overlapping function, and the count feels neither sparse nor bloated given the breadth of statutory and calendar data offered.
The surface covers core reference-data needs: current/historical series, public holidays, working days, settlement conventions, and statutory computations for tax/VAT/minimum wage/employment cost. A minor gap is the absence of a dedicated gross-to-net payroll tool, though the description references compute_payroll as existing elsewhere, so the set is internally coherent for its stated purpose.
Available Tools
11 toolscheck_minimum_wageAInspect
PAID ($0.05). Compliance verdict: is a salary at, above or below the country's statutory minimum wage? Returns verdict, margin, the statutory floor and the legal instrument it rests on. Honest statuses when no enforceable floor exists or the period doesn't match the floor's period (cross-period conversion is never guessed). Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Wage to check, in the country's own currency | |
| period | Yes | Period the amount covers — must match the statutory floor's period | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses payment, return fields, honest handling of missing floors, and no cross-period guessing. This is fairly transparent, though rate limits or further auth details are omitted.
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 two sentences, compact and front-loaded with key info. Every sentence adds value: payment, purpose, return values, edge cases, and payment method.
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 no output schema, the description explains return values and edge cases adequately. The tool is simple (4 params, 3 required), and the description covers all necessary aspects 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?
Schema description coverage is 100%, so baseline is 3. The description reinforces that period must match the floor's period and adds context about honest statuses, but does not add significant new parameter-level details 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?
The description clearly states the tool checks if a salary meets statutory minimum wage, returning verdict, margin, floor, and legal instrument. It distinguishes itself from sibling tools (like compute_income_tax) by focusing on compliance, not computation.
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 provides clear usage context: it's a paid tool ($0.05) and explains api_key vs x402 payment. It does not explicitly state when not to use it or name alternatives, but the purpose is distinct enough among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_employment_costAInspect
PAID ($0.10). Cost to employ: prices every statutory contribution on both the employee and employer sides for a gross salary, returning line-by-line amounts with instrument citations and an explicit refused list for schemes that could not be priced (unknown, not zero). Does NOT compute income tax — use compute_payroll for gross-to-net take-home where supported. Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| gross | Yes | Gross pay in local currency | |
| period | No | Period the gross covers (default month) | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code with a costed contribution schedule | |
| contract | No | Contract type where rates differ | |
| nationality | No | Gulf nationality for pension reach | |
| subdivision | No | Optional ISO 3166-2 regional schedule (e.g. CA-QC, DE-SN) | |
| childless_over_23 | No | Germany care surcharge | |
| children_under_25 | No | Germany per-child care reduction | |
| workplace_pension | No | Auto-enrolment / PPK participation (default true) | |
| zusatzbeitrag_rate | No | Germany sickness-fund supplement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the paid nature, the detailed output format (line-by-line with citations and refused list), and the explicit exclusion of income tax. It does not mention any side effects or data retention, but as a pure computation tool this is sufficient. It also notes the 'unknown, not zero' handling, which is a valuable behavioral detail.
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 three sentences with zero redundancy. It front-loads the cost, then the purpose, then the exclusions and payment options. Every sentence contributes essential information, making it highly efficient.
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 11 parameters and no output schema, the description covers the core behavior, output structure, exclusions, and payment. It doesn't list all parameters, but the schema does. It also doesn't mention that only 'ae' is supported, but that is visible in the schema. Overall, the description provides sufficient context for correct usage without overloading.
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 description does not need to elaborate on parameters. It adds context about the gross salary and country implicitly but does not provide additional parameter-specific meaning beyond the schema's own descriptions. Baseline 3 is appropriate.
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 clearly states the tool's function: pricing statutory contributions on both employee and employer sides for a gross salary, returning line-by-line amounts with citations and a refused list. It explicitly distinguishes itself from income tax computation via compute_payroll, making its scope 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 provides explicit when-to-use guidance and names the alternative tool (compute_payroll) for income tax scenarios. It also explains the payment requirement via api_key or x402, leaving no ambiguity about how to invoke the tool under different circumstances.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_income_taxAInspect
PAID ($0.05). Statutory income tax on a TAXABLE-income figure using the country's verified marginal bracket schedule, with full per-bracket workings, effective rate and marginal rate. Handles inflation-indexed tax units (Colombia UVT, Chile UTA, Peru UIT, Uruguay BPC) — you pass local currency. IMPORTANT: this is tax on taxable income, NOT net take-home pay — reliefs/allowances and social-security contributions are the caller's concern and are not applied (see the response scope_note). Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code | |
| taxable_income | Yes | Taxable income in the country's local currency, in the schedule's own period basis (annual for most; monthly for Côte d'Ivoire, Uganda, Ethiopia, Costa Rica) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It discloses the cost ($0.05), payment via api_key or x402, and the method (marginal bracket schedule). It does not mention rate limits, error handling, or auth requirements beyond api_key. The behavioral disclosure is adequate but not exhaustive.
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 well-structured, leading with cost, then the main function, caveats, and payment info. Every sentence adds value, though the list of example tax units (Colombia UVT, etc.) could be slightly trimmed. Overall, it is efficient and front-loaded.
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 the tool's complexity (28 countries, marginal brackets, inflation-indexed units) and the absence of an output schema, the description covers key aspects: what it computes, what it excludes, and payment. However, it does not describe the exact output structure or error behavior, which limits completeness for an agent.
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% with good descriptions for each parameter. The description adds value beyond schema by explaining the api_key's role in bypassing x402, the need to pass local currency, and the context of inflation-indexed tax units. This additional context justifies a score above the baseline of 3.
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 clearly states it computes statutory income tax on taxable income using marginal brackets. It specifies the scope (taxable income, not net pay) and mentions handling specific tax units. However, it does not explicitly differentiate from sibling tools like compute_vat beyond the tool name.
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 explicitly warns that the tool computes tax on taxable income, not net take-home pay, and that reliefs/allowances/social-security are the caller's concern. It also specifies handling of inflation-indexed tax units and passing local currency. It does not compare directly with alternatives but provides clear context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_vatAInspect
PAID ($0.02). VAT breakdown for an amount: net, tax and gross using the country's current statutory rate, including per-levy components where the rate is composite (e.g. Ghana VAT + NHIL + GETFund). mode=add treats the amount as net; mode=extract backs VAT out of a gross amount. Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | add = amount is net (default); extract = amount is gross | |
| amount | Yes | Amount in the country's own currency | |
| api_key | No | API key | |
| country | Yes | ISO country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It reveals the tool is paid (costs $0.02), explains authentication options, and describes the composite rate handling.
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 concise (two sentences) and efficient, covering the core function and key details without unnecessary wording.
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 the parameter count and lack of output schema, the description adequately covers the tool's purpose, modes, authentication, and geographic scope, though it does not describe the return format.
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 description adds meaning beyond the schema by explaining the 'add' and 'extract' modes, clarifying that amount is in the country's currency, and providing context for the api_key parameter.
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 clearly states that the tool computes VAT breakdown (net, tax, gross) for a given amount and country, and distinguishes itself from sibling tools like compute_income_tax by specifying VAT-specific behavior and modes.
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?
It provides explicit guidance on using the api_key parameter, explains the two modes (add/extract), and implies when to use each. However, it does not explicitly mention when not to use the tool or alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_working_daysAInspect
PAID ($0.02). Working days in a date range for a country: weekends (Egypt's Fri–Sat handled) and statutory public holidays applied, with the holidays hit by name and the next working day after the range. Range max 366 days. Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Range end, YYYY-MM-DD, inclusive | |
| from | Yes | Range start, YYYY-MM-DD, inclusive | |
| api_key | No | API key | |
| country | Yes | ISO country code | |
| subdivision | No | Optional ISO 3166-2 region code (e.g. 'DE-BY') to apply that region's statutory holidays on top of the national calendar. Regions are listed under `subdivisions` by get_public_holidays. Unknown code is refused free with the list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: handles weekends (including Egypt's Fri-Sat), applies statutory holidays, returns holidays hit by name and next working day, and imposes a max range of 366 days.
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 concise (two sentences) with key information front-loaded (paid, core function) and no unnecessary words.
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?
While it covers key aspects, the output structure is slightly ambiguous (whether the main return is a count or a list) and lacks explicit error handling, but overall adequate for a parameterized 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?
Although schema coverage is 100%, the description adds important constraints (max 366 days range, special weekend handling) that are not in the schema, enhancing parameter understanding.
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 clearly states the tool counts working days in a date range for a country, applying weekends and public holidays. It distinguishes from sibling tool 'get_public_holidays' by focusing on counting and returning the next working day.
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 mentions the tool is paid ($0.02) and provides guidance on payment via api_key or x402, but does not explicitly compare to siblings or state when to use this vs. alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_holidaysAInspect
FREE. Official public-holiday calendar for a supported country, including gazetted movable holidays, with the official government source cited. Some countries also carry sub-national calendars (e.g. the German Laender): the subdivisions field lists them, and passing subdivision (ISO 3166-2, e.g. 'DE-BY') returns the national calendar merged with that region's statutory days.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO country code | |
| subdivision | No | Optional ISO 3166-2 region code (e.g. 'DE-BY'). Returns national + that region's statutory holidays, each tagged national/regional. Omit for the national calendar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses 'FREE' and explains subdivision behavior, but lacks details on rate limits, error handling, or data freshness.
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 sentences, front-loaded with key purpose and free status. Every sentence adds value; no wasted words.
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?
Covers main functionality and subdivision parameter well, but lacks description of response format (fields like date, name, type). With no output schema, this information would aid an AI agent.
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 description adds significant value beyond the schema: explains ISO 3166-2 format for subdivision, describes behavior for national vs merged calendars, and mentions the subdivisions field. This is crucial for correct parameter usage.
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 explicitly states 'Official public-holiday calendar for a supported country', including gazetted movable holidays and government source. This clearly distinguishes it from sibling tools like count_working_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 description does not explicitly state when to use vs alternatives, but implies usage for retrieving public holidays. No exclusions or comparative guidance are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seriesAInspect
PAID ($0.005). Current value of a reference series — e.g. series=policy-rate, vat, minimum-wage. Every value carries its official source citation, effective date, last-confirmed date and staleness flag. Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | Series id, e.g. policy-rate, vat, minimum-wage | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses the paid nature ($0.005), the response fields (source citation, effective date, last-confirmed date, staleness flag), and the x402 payment alternative. This is substantive, though it does not mention rate limits or error behavior.
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 concise sentences, front-loaded with the essential cost and purpose, followed by response details and payment instructions. Every clause adds value without redundancy.
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?
The description covers the key contextual facets: cost, payment, response content, and staleness behavior. It does not explicitly mention the required 'country' parameter or output format, but the schema covers country and the response fields are enumerated. For a simple look-up tool, this is sufficiently complete.
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 adds the series examples, but these are already present in the schema's series description. It does not clarify the country parameter further or add new parameter semantics beyond what schema provides.
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 clearly states the tool returns the current value of a reference series, with concrete examples (policy-rate, vat, minimum-wage), distinguishing it from sibling tools like get_series_history and list_series. The verb and resource are specific and 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?
No guidance is given on when to use this tool versus siblings such as get_series_history or list_series. The description provides parameter examples but no selection criteria or exclusions, leaving the agent without context for choosing among related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_historyAInspect
PAID ($0.005). Historical values of a reference series with effective date ranges, optionally filtered by from/to (YYYY-MM-DD). Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Latest effective date, YYYY-MM-DD | |
| from | No | Earliest effective date, YYYY-MM-DD | |
| series | Yes | Series id | |
| api_key | No | API key | |
| country | Yes | ISO country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the $0.005 cost, the need for an api_key, and that without one the response explains x402 payment. This is valuable behavioral context. It does not mention rate limits or response structure, but the paid nature is the most critical trait.
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 sentences, front-loaded with the cost warning, and every word earns its place. It packs purpose, filtering, and payment information without redundancy.
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 paid data-retrieval tool with 5 parameters and no output schema, the description covers the essential aspects: purpose, date filtering, cost, and payment flow. It does not describe the return format or pagination, but the effective date ranges and historical values give a clear enough picture. Sibling context further clarifies its role.
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 a baseline of 3 is appropriate. The description adds meaning by explaining the from/to parameters are YYYY-MM-DD filters, and that api_key is optional with a specific fallback behavior. This goes beyond the schema descriptions and clarifies parameter usage.
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 clearly states 'Historical values of a reference series' with a specific verb ('get') and resource, and distinguishes itself from siblings like get_series (likely current values) and get_snapshot by focusing on historical data with effective date ranges. The '$0.005' cost flag and date-filter mention add unique scope.
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?
It provides clear usage context: use for historical values, optionally filter by from/to, and how to pay. However, it does not explicitly name sibling tools as alternatives or state when not to use, leaving some inference to the reader. Still, the date-range and historical framing give good guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snapshotAInspect
PAID ($0.02). Snapshot of every series for every country in one call. Pass api_key if you have one; otherwise the response explains how to pay via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses the cost ($0.02) and the behavior when no api_key is provided (response explains payment). However, it doesn't mention whether the call is idempotent, rate limits, or response size. Adequate but not exhaustive.
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 sentences, front-loaded with 'PAID ($0.02)'. Every word earns its place. No redundancy or fluff.
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, so the description should cover what the snapshot contains. It says 'snapshot of every series for every country' but doesn't specify the data format or structure. Also lacks potential response size warnings. Adequate for a simple tool but leaves some unknowns.
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 has one parameter (api_key) with 100% coverage. The description adds that the api_key is optional and explains the fallback behavior (payment instructions). This gives context beyond the schema's simple 'API key' description.
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 clearly states it provides a snapshot of every series for every country. The verb 'snapshot' combined with the scope distinguishes it from siblings like get_series (single series) or list_series (list). However, it doesn't explicitly contrast itself with alternatives.
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?
It gives context about the paid nature and how to pass an api_key or get payment instructions. But it doesn't explicitly state when to use this tool vs siblings (e.g., 'use this to get all data at once; use get_series for a single series').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_seriesAInspect
FREE. Catalog of all asiaref reference-data series: supported countries, series ids, descriptions, freshness metadata and per-series URLs. Call this first to discover what data exists.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description notes 'FREE' and lists output contents. Sufficient for a read-only catalog tool, though could mention no destructive effects or authentication needs.
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 sentences; first gives essential information about output, second gives usage advice. No extraneous words, efficiently front-loaded.
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, but description enumerates the types of data returned (countries, IDs, descriptions, freshness, URLs). Combined with usage hint, fully informs agent of what to expect and how to use.
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?
No parameters in schema (0 params), so description doesn't need to add parameter info. Baseline of 4 applies as schema coverage is 100%.
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 explicitly states 'Catalog of all asiaref reference-data series' and lists what it provides, distinguishing it from sibling tools like get_series which likely target a specific series.
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?
Clearly instructs 'Call this first to discover what data exists,' giving a preferred usage order. Does not explicitly mention when not to use, but context with siblings implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settlement_dateAInspect
PAID ($0.05). Settlement/value date: the date n business days after a trade date, computed on the INTERSECTION of the calendars you name, with a per-day trail showing every skipped day and why, on which calendar. Supply business_days for a cycle you are trading under, or market + instrument_class to have a settlement cycle applied that we cite to its primary source (e.g. US equities T+1 under 17 CFR 240.15c6-1(a); UK gilts T+1 by DMO convention, which is NOT the T+2 equity cycle; Japan equities T+2 but JGBs T+1). Calendars are NATIONAL statutory holiday calendars with researched statutory weekend rules (Israel Saturday-only, Gulf Friday+Saturday, India Sundays plus the 2nd and 4th Saturday), NOT CSD or exchange calendars — each response states the basis and any known divergence. Use 'eu.t2' for the euro cash leg. We refuse FREE rather than guess: beyond published calendar coverage, no cited cycle for the instrument (government bonds never inherit an equity cycle), a cycle not in force on the trade date, or FX spot value dates. Free companion: GET /settlement-conventions.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | ISO country of the market whose cited cycle should apply (with instrument_class) | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| calendars | Yes | Calendar ids to intersect: two-letter ISO country codes, plus 'eu.t2' for the euro cash leg | |
| trade_date | Yes | Trade/reference date, YYYY-MM-DD. Day 0: never counted, never rolled. | |
| business_days | No | The offset you are trading under (T+n) | |
| instrument_class | No | Instrument class — a government bond never inherits an equity cycle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavioral traits: it charges $0.05, shows a per-day trail, refuses to guess, uses national statutory holiday calendars (not CSD/exchange), and cites primary sources for cycles. It also notes known divergences and refusal conditions.
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 dense but front-loaded with the core purpose. It efficiently packs many details (pricing, cycle examples, calendar definitions, refusal conditions) into a single paragraph, making it comprehensive for a complex tool.
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 the tool's complexity (6 parameters, no output schema, no annotations), the description is remarkably complete. It covers all essential aspects: how to invoke, what to expect, edge cases, pricing, and data sources, leaving no significant gaps for an AI agent.
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 adds significant meaning beyond the schema by explaining how business_days and market+instrument_class interact, calendar codes like 'eu.t2', and the meaning of trade_date (day 0 never counted/rolled). This justifies a 4.
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 clearly states the tool computes settlement/value dates as n business days after a trade date using the intersection of specified calendars. It distinguishes itself from sibling tools (none of which handle settlement date computations), and provides specific examples of cycles and jurisdictions.
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 explicitly tells when to use the tool (e.g., 'Supply business_days for a cycle you are trading under, or market + instrument_class') and when not (e.g., 'We refuse FREE rather than guess: beyond published calendar coverage, no cited cycle...'). It also explains how to specify calendars and the 'eu.t2' for euro cash leg.
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.
1 tool update
- Added
compute_employment_cost
2 tool updates
- Changed
count_working_days1 field changed- added
Input schema / properties / subdivisionAdded value: +{ + "description": "Optional ISO 3166-2 region code (e.g. 'DE-BY') to apply that region's statutory holidays on top of the national calendar. Regions are listed under `subdivisions` by get_public_holidays. Unknown code is refused free with the list.", + "type": "string" +}
- Changed
get_public_holidays1 field changed- added
Input schema / properties / subdivisionAdded value: +{ + "description": "Optional ISO 3166-2 region code (e.g. 'DE-BY'). Returns national + that region's statutory holidays, each tagged national/regional. Omit for the national calendar.", + "type": "string" +}
1 tool update
- Added
settlement_date
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "kz", - "lk", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "iq", + "jo", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "np", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "uz", + "vn" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "bh", - "cn", - "hk", - "id", - "il", - "in", - "jp", - "kr", - "kw", - "my", - "om", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "kz", + "lk", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ae", - "bd", - "cn", - "hk", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "pk", - "qa", - "sa", - "sg", - "th", - "tr", - "tw", - "vn" -]New value: +[ + "ae", + "bd", + "bh", + "cn", + "hk", + "id", + "il", + "in", + "jp", + "kr", + "kw", + "my", + "om", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bd", - "id", - "in", - "jp", - "kr", - "my", - "ph", - "sg", - "th", - "vn" -]New value: +[ + "ae", + "bd", + "cn", + "hk", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "pk", + "qa", + "sa", + "sg", + "th", + "tr", + "tw", + "vn" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "in", - "jp", - "kr", - "ph", - "sg" -]New value: +[ + "bd", + "id", + "in", + "jp", + "kr", + "my", + "ph", + "sg", + "th", + "vn" +]
9 tool updates
- First observed
check_minimum_wage - First observed
compute_income_tax - First observed
compute_vat - First observed
count_working_days - First observed
get_public_holidays - First observed
get_series - First observed
get_series_history - First observed
get_snapshot - First observed
list_series
Related MCP Connectors
European govt data, cited: rates, VAT, tax, wages, holidays, FX. 35 countries; Germany free.
African govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 34 countries; Ghana free.
LatAm govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 22 countries; Brazil free.
Oceania govt data, cited: rates, VAT, tax, wages, holidays, FX. 8 countries; Australia free.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePublic holiday data for 30+ countries. Check holidays, working days, and full calendars via AI assistants like Claude and Cursor.MIT
- AlicenseBqualityDmaintenanceEnables AI agents to pay USDC per call for Asia market intelligence data via HTTP 402 protocol, no API keys or subscriptions required.1137 npmMIT
- FlicenseNot gradedqualityBmaintenanceQuery current and historical UK official figures (tax bands, minimum wage, benefits, energy price cap and 100+ more) with effective dates and links to official government sources. Data refreshed whenever the official sources change.-
- FlicenseNot gradedqualityFmaintenanceAI2Fin's free Tax MCP server connects any assistant or agent — Claude, ChatGPT, Cursor, custom builds — to live tax data: GST and VAT rates, income tax, company tax and capital gains across all the countries. Every answer cites the national tax authority with a verified date. No login, no API key, nothing stored. Explore for fun facts alongside all the verified rates.-
Glama MCP Gateway
Add one secure layer between your agents and this server.