Afriref: cited government reference data
Server Details
Cited official data: tax, VAT, CPI, policy rates, wages, holidays, FX. 128 countries+EU, 7 regions.
- Status
- Healthy
- Uptime
- 99.4% over 57 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- 3L-GroupConsulting/afriref-mcp
- GitHub Stars
- 0
TDQS
Scored across 16 tools
Every tool targets a distinct function: wage checks, tax computations, payroll, interest, VAT, working days, calendar/changes/holidays, series data, alerts, settlement dates, and receipt verification. No two tools overlap in purpose, even get_calendar vs get_public_holidays serve different needs (update calendar vs official holidays).
The vast majority follow a consistent verb_noun snake_case pattern (get_series, compute_vat, list_series, register_alert). The only deviation is 'settlement_date', which is a noun phrase rather than verb_noun, but it's a single outlier and doesn't cause confusion.
16 tools is slightly above the typical 3-15 range but justified given the broad scope (tax, wage, holiday, settlement, alert, verification). It's not bloated; each tool serves a clear purpose and the count feels appropriate for a comprehensive reference-data server.
The tool surface covers the full lifecycle of reference data: discovery (list_series), retrieval (get_series, history, snapshot), computation (tax, VAT, interest, payroll), calendar/holidays, change tracking (get_changes), alerting (register_alert), and receipt verification. No obvious gaps for the stated domain.
Available Tools
22 toolsadd_business_daysAdd business days to a dateRead-onlyIdempotentInspect
FREE, unmetered. The date n business days after (or, for negative n, before) a start date. The start date is day 0 and never counted; n = 0 returns the date itself if it is a business day, otherwise the next one. Lists every non-business day skipped and why. Uses the country's national public-holiday calendar and its statutory weekend rule (Gulf Friday+Saturday, Israel Saturday-only, India 2nd/4th Saturdays, Nepal's 2026 change, China's multi-day breaks and make-up working days). A date in a year whose holidays we do not hold is refused with error year_not_held and the years_held list; it is never computed from weekends alone. A statutory holiday whose date is not yet fixed is refused as holiday_date_pending. Regional (sub-national) holidays are not applied.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Business days to add; negative walks backward | |
| date | Yes | Start date (day 0), YYYY-MM-DD | |
| country | Yes | ISO 3166-1 alpha-2 country code, e.g. 'za', 'ae', 'in'. Every country we hold a holiday calendar for is accepted on every brand, not only this brand's region. |
Output Schema
| Name | Required | Description |
|---|---|---|
| n | No | |
| free | No | |
| year | No | On year_not_held: the year we do not hold |
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| price | No | |
| caveats | No | |
| country | No | |
| reached | No | On a refusal: the first date the calculation could not classify |
| weekend | No | Weekend days applied, the basis of that rule, and any dated or sub-national note |
| calendar | No | Holiday calendar used: years_held, source, last_confirmed, stale |
| direction | No | |
| no_charge | No | |
| price_usd | No | |
| convention | No | |
| disclaimer | No | |
| how_to_pay | No | |
| start_date | No | |
| years_held | No | On year_not_held: the years whose holidays we do hold |
| bind_series | No | |
| explanation | No | |
| result_date | No | |
| x_next_bind | No | |
| country_name | No | |
| http_endpoint | No | |
| result_weekday | No | |
| what_you_can_do | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
| calendar_days_moved | No | |
| non_business_days_skipped | No |
business_days_betweenCount business days between two datesRead-onlyIdempotentInspect
FREE, unmetered. Business days between two dates. business_days counts (from, to] and is negative when to is before from, so add_business_days(from, business_days) lands on to whenever to is a business day; business_days_inclusive counts both ends. Also returns weekend days and the public holidays in range. Uses the country's national public-holiday calendar and its statutory weekend rule (Gulf Friday+Saturday, Israel Saturday-only, India 2nd/4th Saturdays, Nepal's 2026 change, China's multi-day breaks and make-up working days). A date in a year whose holidays we do not hold is refused with error year_not_held and the years_held list; it is never computed from weekends alone. A statutory holiday whose date is not yet fixed is refused as holiday_date_pending. Regional (sub-national) holidays are not applied.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Range end, YYYY-MM-DD | |
| from | Yes | Range start, YYYY-MM-DD | |
| country | Yes | ISO 3166-1 alpha-2 country code, e.g. 'za', 'ae', 'in'. Every country we hold a holiday calendar for is accepted on every brand, not only this brand's region. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| free | No | |
| from | No | |
| year | No | On year_not_held: the year we do not hold |
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| price | No | |
| caveats | No | |
| country | No | |
| reached | No | On a refusal: the first date the calculation could not classify |
| weekend | No | Weekend days applied, the basis of that rule, and any dated or sub-national note |
| calendar | No | Holiday calendar used: years_held, source, last_confirmed, stale |
| no_charge | No | |
| price_usd | No | |
| convention | No | |
| disclaimer | No | |
| how_to_pay | No | |
| years_held | No | On year_not_held: the years whose holidays we do hold |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| country_name | No | |
| weekend_days | No | |
| business_days | No | Business days in (from, to]; negative when to is before from |
| http_endpoint | No | |
| what_you_can_do | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
| business_days_inclusive | No | Business days counting both ends |
| calendar_days_inclusive | No | |
| public_holidays_on_weekdays | No | |
| public_holidays_on_weekends | No |
check_minimum_wageRead-onlyIdempotentInspect
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 (instant card checkout at /pricing); otherwise the response explains how to pay via x402. The evaluation country is free to try (see list_series). Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| 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 | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). |
Output Schema
| Name | Required | Description |
|---|---|---|
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| floor | No | |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| verdict | No | |
| question | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
compute_income_taxRead-onlyIdempotentInspect
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. You pass the amount in 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 (instant card checkout at /pricing); otherwise the response explains how to pay via x402. The evaluation country is free to try (see list_series). Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). | |
| 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) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tax | No | |
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| question | No | |
| breakdown | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| scope_note | No | |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| marginal_rate | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| effective_rate | No | |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
compute_payrollRead-onlyIdempotentInspect
PAID ($0.10). Gross-to-net take-home pay for Nigeria or Kenya: applies PAYE (on the verified brackets) plus the statutory employee deductions (Nigeria: pension/NHF/NHIS; Kenya: NSSF/SHIF/Affordable Housing Levy) and reliefs, returning net pay with full workings, per-contribution citations and DISCLOSED assumptions. Nigeria's pension base needs pay composition — pass basic/housing/transport for an exact figure, or a market-convention 40/30/10 split is assumed and disclosed. Pass api_key if you have one (instant card checkout at /pricing); otherwise the response explains how to pay via x402. The evaluation country is free to try (see list_series). Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| Name | Required | Description | Default |
|---|---|---|---|
| basic | No | Nigeria: basic pay component | |
| gross | Yes | Gross pay in local currency | |
| period | No | Period the gross covers (default month) | |
| sector | No | Nigeria: public applies NHF; private (default) sets NHF 0 | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | Payroll is supported for Nigeria (ng) and Kenya (ke) | |
| housing | No | Nigeria: housing allowance | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). | |
| transport | No | Nigeria: transport allowance | |
| annual_rent | No | Nigeria: annual rent paid (unlocks rent relief) | |
| nhis_premium | No | Nigeria: NHIS employee premium if deducted | |
| pensionable_pay | No | Kenya: pensionable pay for NSSF tiers | |
| insurance_premium | No | Kenya: insurance premium for 15% relief |
Output Schema
| Name | Required | Description |
|---|---|---|
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| question | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
compute_statutory_interestRead-onlyIdempotentInspect
PAID ($0.05). Simple statutory interest on a principal at the cited statutory-interest series rate: Actual/365 simple, principal × (rate/100) × (days/365). Pass days, or from and to as YYYY-MM-DD (from inclusive, to exclusive). If both are sent and disagree, the call is refused free. A series with no numeric rate after materialization (mechanism-only) is refused free — a non-answer is not sold. Not legal advice. Jurisdiction-specific compounding and day-count statutes are not applied. Pass api_key if you have one (instant card checkout at /pricing); otherwise the response explains how to pay via x402. Every GH series is free to try. Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Period end, YYYY-MM-DD, exclusive. | |
| days | No | Day-count days. Omit when from and to are set. If both are sent and disagree, the answer is refused free (HTTP 400). | |
| from | No | Period start, YYYY-MM-DD, inclusive. Pair with to. Day count is calendar days from inclusive to to exclusive (UTC dates). | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). | |
| principal | Yes | Principal in the country's own currency. Must be a finite number greater than 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| question | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
compute_vatRead-onlyIdempotentInspect
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 (instant card checkout at /pricing); otherwise the response explains how to pay via x402. The evaluation country is free to try (see list_series). Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| 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 | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | |
| tax | No | |
| rate | No | |
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| gross | No | |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| question | No | |
| workings | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
count_working_daysRead-onlyIdempotentInspect
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 (instant card checkout at /pricing); otherwise the response explains how to pay via x402. The evaluation country is free to try (see list_series). Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| 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 | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). | |
| 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| question | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
get_calendarRead-onlyIdempotentInspect
FREE, unmetered. GET /v1/calendar for this brand's continent. Optional country (ISO 3166-1 alpha-2) and series. Derives reverify_by from last_confirmed + update_cycle_days (the same window that sets stale) and, only when current.effective_to is a non-empty string, next_effective_known with basis effective_to. status unknown omits that date. Never parses notes. Does not invent MPC, budget, or wage-review dates. next_effective_known is the recorded end of the current value, not a promised gazette event. A 402 is a gate bug — do not pay. Past changes stay on get_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| series | No | Optional series id (for example policy-rate). Omit for every series. A valid country with no match stays free. | |
| country | No | Optional ISO 3166-1 alpha-2. Omit for every series on this brand's continent. Unknown to the catalog is 404 free. Not two letters is 400 free. |
Output Schema
| Name | Required | Description |
|---|---|---|
| as_of | No | |
| brand | No | |
| count | No | |
| error | No | Present on a free refusal or error; no charge |
| entries | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
get_changesRead-onlyIdempotentInspect
FREE unmetered change + freshness feed. After any paid series or
answer call, call this before you assume the cached value is still the
law. Returns every series whose current value took effect on or after
since (default last 30 days), newest first, each with last_confirmed
and stale, PLUS a dataset-wide freshness summary: how many of the served
series were re-verified within 1/7/30/90 days, how many are past their
window, and which single series has gone longest without a check.
Freshness is checkable or it is marketing. Args: since? (YYYY-MM-DD).
Do not re-pay get_series to discover a diff. For a push bind, use
register_alert (Register: $0 · Delivery after trial: $0.10). For a filing freeze of the current
value, GET /v1/certified/{country}/{series} ($0.25).
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | YYYY-MM-DD. Omit for the server default (last 30 days). Free, unmetered. |
Output Schema
| Name | Required | Description |
|---|---|---|
| as_of | No | |
| error | No | Present on a free refusal or error; no charge |
| since | No | |
| changes | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
get_filing_deadlinesStatutory filing deadlinesRead-onlyIdempotentInspect
PAID ($0.005, same as any series). Recurring statutory tax deadlines for a country — VAT/GST returns and payments, PAYE/payroll withholding remittances, corporate income tax returns and provisional/instalment payments — as RULES, each cited to the official source with the verbatim phrase that states it, plus the actual DUE DATES in a window, rolled for the country's weekend and national public holidays (every skipped day is listed). Where a rule's source does not say which way a weekend deadline moves, the date is flagged roll_unverified rather than guessed. Countries or taxes we could not verify are returned as a free coverage_gap with reasons, never invented. Pass year_end (MM-DD) to re-anchor corporate-tax rules on the company's own accounting year end. The HTML page /{country}/filing-deadlines shows the rules free. Every GH series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.10) on this series so a later gazette does not silently retire the value.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Window end, YYYY-MM-DD. Default from + 365 days; at most 400 days after from | |
| tax | No | Only this tax's rules and dates | |
| from | No | Window start, YYYY-MM-DD. Default today | |
| api_key | No | API key (bypasses x402; metered for invoicing) | |
| country | Yes | ISO country code | |
| year_end | No | Company accounting year end, MM-DD (e.g. 06-30). Applies to rules marked year_end_variable |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| unit | No | |
| error | No | Present on a free refusal or error; no charge |
| notes | No | |
| stale | No | |
| value | No | The rules. Each carries its own source {name, url, anchor} and last_confirmed |
| series | No | |
| source | No | |
| status | No | On a coverage gap: researched_no_verified_rule or not_yet_researched |
| country | No | |
| due_dates | No | Computed occurrences in the window, sorted by due_date |
| no_charge | No | |
| price_usd | No | |
| confidence | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| coverage_gaps | No | Taxes in scope with no verified rule for this country, and why |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| effective_from | No | |
| last_confirmed | No | |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
| computed_disclaimer | No |
get_key_balanceRead-onlyIdempotentInspect
FREE. Remaining allowance for an API key (free, card or metered): plan, quota, used, remaining, reset date and what the key covers. Never metered. Pass api_key, or send the key as the X-API-Key header on /mcp.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | API key. Optional when sent as the X-API-Key header on /mcp. |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No | |
| used | No | |
| error | No | Present on a free refusal or error; no charge |
| quota | No | |
| covers | No | |
| no_charge | No | |
| price_usd | No | |
| remaining | No | |
| resets_on | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
get_public_holidaysRead-onlyIdempotentInspect
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| unit | No | |
| error | No | Present on a free refusal or error; no charge |
| notes | No | |
| stale | No | |
| value | No | |
| series | No | |
| source | No | |
| country | No | |
| no_charge | No | |
| price_usd | No | |
| confidence | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| subdivision | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| effective_from | No | |
| last_confirmed | No | |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
| available_subdivisions | No |
get_public_holidays_worldwideRead-onlyIdempotentInspect
FREE with any API key, including the free key by email (https://afriref.dev/free-key). Same as get_public_holidays, but for every country across all seven brands, not only Pan-African. Unmetered: never counts against the key's allowance. Pass api_key, or send the key as the X-API-Key header on /mcp.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Any valid API key. Optional when the key is sent as the X-API-Key header on /mcp. | |
| country | Yes | ISO country code, any covered country | |
| 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| unit | No | |
| error | No | Present on a free refusal or error; no charge |
| notes | No | |
| stale | No | |
| value | No | |
| series | No | |
| source | No | |
| country | No | |
| no_charge | No | |
| price_usd | No | |
| confidence | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| subdivision | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| effective_from | No | |
| last_confirmed | No | |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
| available_subdivisions | No |
get_seriesRead-onlyIdempotentInspect
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 (instant card checkout at /pricing); otherwise the response explains how to pay via x402. Every GH series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.10) on this series so a later gazette does not silently retire the value.
| 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| unit | No | |
| error | No | Present on a free refusal or error; no charge |
| notes | No | |
| stale | No | |
| value | No | |
| series | No | |
| source | No | |
| country | No | |
| no_charge | No | |
| price_usd | No | |
| confidence | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| effective_from | No | |
| last_confirmed | No | |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
get_series_historyRead-onlyIdempotentInspect
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 (instant card checkout at /pricing); otherwise the response explains how to pay via x402. Every GH series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.10) on this series so a later gazette does not silently retire the value.
| 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present on a free refusal or error; no charge |
| stale | No | |
| series | No | |
| country | No | |
| entries | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
get_snapshotRead-onlyIdempotentInspect
PAID ($0.02). Snapshot of every series for every country in one call. Pass api_key if you have one (instant card checkout at /pricing); otherwise the response explains how to pay via x402. Every GH series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.10) on this series so a later gazette does not silently retire the value.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | API key |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present on a free refusal or error; no charge |
| result | No | One entry per country; every series value carries confidence_label, coverage_label and label_basis |
| countries | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
is_business_dayIs it a business day?Read-onlyIdempotentInspect
FREE, unmetered. Is this date a business day in this country? Returns is_business_day, the reason (weekend, public_holiday, makeup_workday…), the holiday names, and the next and previous business day. Uses the country's national public-holiday calendar and its statutory weekend rule (Gulf Friday+Saturday, Israel Saturday-only, India 2nd/4th Saturdays, Nepal's 2026 change, China's multi-day breaks and make-up working days). A date in a year whose holidays we do not hold is refused with error year_not_held and the years_held list; it is never computed from weekends alone. A statutory holiday whose date is not yet fixed is refused as holiday_date_pending. Regional (sub-national) holidays are not applied.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date to classify, YYYY-MM-DD | |
| country | Yes | ISO 3166-1 alpha-2 country code, e.g. 'za', 'ae', 'in'. Every country we hold a holiday calendar for is accepted on every brand, not only this brand's region. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| free | No | |
| year | No | On year_not_held: the year we do not hold |
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| price | No | |
| reason | No | |
| caveats | No | |
| country | No | |
| reached | No | On a refusal: the first date the calculation could not classify |
| weekday | No | |
| weekend | No | Weekend days applied, the basis of that rule, and any dated or sub-national note |
| calendar | No | Holiday calendar used: years_held, source, last_confirmed, stale |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| years_held | No | On year_not_held: the years whose holidays we do hold |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| country_name | No | |
| http_endpoint | No | |
| is_weekend_day | No | |
| is_business_day | No | |
| public_holidays | No | |
| what_you_can_do | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
| next_business_day | No | {date, weekday}, or date null with why_unknown when it falls outside the held calendar |
| previous_business_day | No |
list_seriesRead-onlyIdempotentInspect
FREE. Catalog of all afriref reference-data series: supported countries, series ids, descriptions, freshness metadata and per-series URLs. Call this first to discover what data exists. Paid answer tools accept receipt=true (included in the answer price, no extra USDC) and, on a paid success, return an Ed25519 answer receipt (kind answer_receipt). That receipt is not a series certified extract and is not legal advice. Series certified extracts are GET /v1/certified/{country}/{series} at $0.25 and are not an MCP tool. Verify a receipt with verify_answer_receipt (free, public key only) against /certified/public-key. get_changes is free. get_calendar is free. register_alert registration is free.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Default false. Without country, false returns a compact index (country -> series ids). true returns the full catalog, which is large. | |
| country | No | Optional ISO country code. Returns full per-series metadata (source, freshness, bands) for that country only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| error | No | Present on a free refusal or error; no charge |
| countries | No | Country entries ({country, name, series}); on an unknown-country refusal, the list of valid codes |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
register_alertInspect
Bind a webhook so the next gazette does not silently stale a value you already paid for. REGISTERING IS FREE. Register: $0 · Delivery after trial: $0.10. First 3 deliveries are free; later deliveries are $0.10 and refunded if the webhook fails to send. HMAC-SHA256 signed. Two watch types on the same call: • series: ["za/vat-registration-threshold", "ke/", ""] → series.changed when the served value or its effective date moves. On usaref those watches are statutory (minimum-wage, income-tax, statutory-interest, sales-tax, public-holidays), not a FRED-macro subscription. • sources: [""] → source.changed when the document BYTES change (old/new sha256 + citing series). Bytes ≠ value. Value changes arrive as series.changed. Unknown URLs refuse free (source_not_fingerprinted). Max 20 series + 20 sources. Required: url. Optional: api_key stored on the subscription to fund deliveries after the trial. This call does not meter that key. Prefer this over polling get_changes if you are a long-running agent. This is retention, not a new data product.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Webhook endpoint that will receive HMAC-SHA256 signed events | |
| series | No | Value watches, e.g. ["za/vat-registration-threshold", "ke/*", "*"] | |
| api_key | No | Optional prepaid key stored on the subscription to fund deliveries after the trial. This call does not meter it. | |
| sources | No | Exact official-source URLs from a series source.url. Unknown URLs are refused free. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present on a free refusal or error; no charge |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
settlement_dateRead-onlyIdempotentInspect
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. Optional receipt (boolean, default false): on a paid success, include an Ed25519 answer receipt at no extra USDC. An answer receipt is not a series certified extract (GET /v1/certified/{country}/{series} is $0.25 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.
| 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) | |
| receipt | No | Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool). | |
| 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| basis | No | |
| error | No | Present on a free refusal or error; no charge |
| status | No | Answer status, e.g. computed or an honest no-answer status |
| country | No | |
| receipt | No | Ed25519 answer receipt when receipt=true on a paid success |
| question | No | |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| provenance | No | Cited official sources behind the answer |
| bind_series | No | |
| explanation | No | |
| label_basis | No | Inputs and the rule ids that produced the two labels |
| x_next_bind | No | |
| http_endpoint | No | |
| coverage_label | No | How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules |
| confidence_label | No | Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
verify_answer_receiptRead-onlyIdempotentInspect
FREE. Verify an answer receipt (kind answer_receipt) with the Ed25519 public key only. Pass the receipt object or its canonical JSON, signature_value when the signature is not inside the receipt, and public_key_pem to verify offline. If public_key_pem is omitted, the tool may GET signature.public_key (/certified/public-key) and read public_key_pem. Never send a private key. A valid signature shows this service issued that exact receipt. It does not turn the receipt into a series certified extract (GET /v1/certified/{country}/{series} at $0.25, not an MCP tool) and it is not legal advice. Same key and canonical-JSON rule as /certified/public-key.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | Answer receipt object (signature may be nested) or the canonical JSON of that object. A canonical JSON string of the signed body (signature omitted) is accepted when signature_value is also passed. | |
| public_key_pem | No | SPKI public key PEM from GET /certified/public-key (field public_key_pem). Required for offline verify. A private key PEM is refused. | |
| public_key_url | No | Optional GET /certified/public-key URL used only when public_key_pem is omitted. Ignored when the PEM is present. | |
| signature_value | No | Base64 Ed25519 signature. Required when the receipt object or JSON string does not already include signature.value. Overrides a nested signature when both are sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| why | No | |
| error | No | Present on a free refusal or error; no charge |
| no_charge | No | |
| price_usd | No | |
| disclaimer | No | |
| how_to_pay | No | |
| bind_series | No | |
| explanation | No | |
| x_next_bind | No | |
| http_endpoint | No | |
| payment_required | No | true when the call needs payment; how_to_pay explains x402 or card |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- Changed
check_minimum_wage3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
compute_income_tax3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
compute_payroll3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
compute_statutory_interest3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
compute_vat3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
count_working_days3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Added
get_filing_deadlines - Added
get_key_balance - Changed
get_public_holidays3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Added
get_public_holidays_worldwide - Changed
get_series3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
get_series_history7 fields changed- changed
Output schema / descriptionPrevious value: -"Historical entries of one series"New value: +"Historical entries of one series; top-level labels describe the current value, and each entry carries its own" - added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / entries / items / additionalPropertiesAdded value: +{} - added
Output schema / properties / entries / items / propertiesAdded value: +{ + "confidence": {}, + "confidence_label": { + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" + }, + "country": { + "type": "string" + }, + "coverage_label": { + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" + }, + "effective_from": {}, + "label_basis": { + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "last_confirmed": {}, + "notes": {}, + "series": { + "type": "string" + }, + "source": {}, + "stale": { + "type": "boolean" + }, + "unit": {}, + "value": {} +} - added
Output schema / properties / entries / items / typeAdded value: +"object" - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
get_snapshot1 field changed- added
Output schema / properties / resultAdded value: +{ + "description": "One entry per country; every series value carries confidence_label, coverage_label and label_basis", + "items": { + "additionalProperties": {}, + "properties": { + "country": { + "type": "string" + }, + "series": { + "items": { + "additionalProperties": {}, + "properties": { + "confidence": {}, + "confidence_label": { + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" + }, + "country": { + "type": "string" + }, + "coverage_label": { + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" + }, + "effective_from": {}, + "label_basis": { + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "last_confirmed": {}, + "notes": {}, + "series": { + "type": "string" + }, + "source": {}, + "stale": { + "type": "boolean" + }, + "unit": {}, + "value": {} + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" +}
- Changed
list_series1 field changed- changed
Output schema / descriptionPrevious value: -"Catalog: brand metadata plus countries[] (compact: country, name, series ids; with country or detail: full per-series metadata)"New value: +"Catalog: brand metadata plus countries[] (compact: country, name, series ids; with country or detail: full per-series metadata including confidence_label and coverage_label)"
- Changed
settlement_date3 fields changed- added
Output schema / properties / confidence_labelAdded value: +{ + "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules", + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" +} - added
Output schema / properties / coverage_labelAdded value: +{ + "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules", + "enum": [ + "ready", + "partial", + "gap" + ], + "type": "string" +} - added
Output schema / properties / label_basisAdded value: +{ + "additionalProperties": {}, + "description": "Inputs and the rule ids that produced the two labels", + "properties": { + "confidence_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "coverage_reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "inputs": { + "items": {}, + "type": "array" + }, + "rules": { + "type": "string" + }, + "rules_version": { + "type": "string" + }, + "source_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stale": { + "type": "boolean" + }, + "verification_age_days": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
3 tool updates
- Added
add_business_days - Added
business_days_between - Added
is_business_day
16 tool updates
- Changed
check_minimum_wage1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Minimum-wage compliance verdict", + "properties": { + "basis": {}, + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "floor": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "verdict": {}, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
compute_income_tax1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Income tax on taxable income with per-bracket workings", + "properties": { + "basis": {}, + "bind_series": {}, + "breakdown": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "effective_rate": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "marginal_rate": {}, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "scope_note": {}, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "tax": {}, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
compute_payroll1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Gross-to-net payroll with workings and citations", + "properties": { + "basis": {}, + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
compute_statutory_interest1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Simple statutory interest at the cited rate", + "properties": { + "basis": {}, + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
compute_vat1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "VAT breakdown", + "properties": { + "basis": {}, + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "gross": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "net": {}, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "rate": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "tax": {}, + "workings": {}, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
count_working_days1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Working-day count over a range with holidays hit", + "properties": { + "basis": {}, + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
get_calendar1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Derived reverify_by and next_effective_known dates", + "properties": { + "as_of": {}, + "bind_series": {}, + "brand": {}, + "count": { + "type": "number" + }, + "disclaimer": {}, + "entries": { + "items": {}, + "type": "array" + }, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
get_changes1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Value changes since a date", + "properties": { + "as_of": {}, + "bind_series": {}, + "changes": { + "items": {}, + "type": "array" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "since": {}, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
get_public_holidays1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Holiday calendar series with cited source; with subdivision, merged national+regional days", + "properties": { + "available_subdivisions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "bind_series": {}, + "confidence": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "effective_from": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "last_confirmed": {}, + "no_charge": { + "type": "boolean" + }, + "notes": {}, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "series": { + "type": "string" + }, + "source": {}, + "stale": { + "type": "boolean" + }, + "subdivision": {}, + "unit": {}, + "value": {}, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
get_series1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Current value of one series with source, effective date, last_confirmed and stale flag", + "properties": { + "bind_series": {}, + "confidence": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "effective_from": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "last_confirmed": {}, + "no_charge": { + "type": "boolean" + }, + "notes": {}, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "series": { + "type": "string" + }, + "source": {}, + "stale": { + "type": "boolean" + }, + "unit": {}, + "value": {}, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
get_series_history1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Historical entries of one series", + "properties": { + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "entries": { + "items": {}, + "type": "array" + }, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "series": { + "type": "string" + }, + "stale": { + "type": "boolean" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
get_snapshot1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Every series for every country of this brand", + "properties": { + "bind_series": {}, + "countries": {}, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
list_series3 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "Optional ISO country code. Returns full per-series metadata (source, freshness, bands) for that country only.", + "type": "string" +} - added
Input schema / properties / detailAdded value: +{ + "description": "Default false. Without country, false returns a compact index (country -> series ids). true returns the full catalog, which is large.", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Catalog: brand metadata plus countries[] (compact: country, name, series ids; with country or detail: full per-series metadata)", + "properties": { + "bind_series": {}, + "countries": { + "description": "Country entries ({country, name, series}); on an unknown-country refusal, the list of valid codes", + "items": {}, + "type": "array" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "note": { + "type": "string" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
register_alert1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Alert subscription result (id, secret, trial) or refusal", + "properties": { + "bind_series": {}, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
settlement_date1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Settlement date on intersected calendars with per-day trail", + "properties": { + "basis": {}, + "bind_series": {}, + "country": { + "type": "string" + }, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "provenance": { + "description": "Cited official sources behind the answer" + }, + "question": {}, + "receipt": { + "description": "Ed25519 answer receipt when receipt=true on a paid success" + }, + "status": { + "description": "Answer status, e.g. computed or an honest no-answer status", + "type": "string" + }, + "x_next_bind": {} + }, + "type": "object" +}
- Changed
verify_answer_receipt1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "description": "Receipt verification result", + "properties": { + "bind_series": {}, + "disclaimer": {}, + "error": { + "description": "Present on a free refusal or error; no charge" + }, + "explanation": {}, + "how_to_pay": { + "items": { + "type": "string" + }, + "type": "array" + }, + "http_endpoint": { + "type": "string" + }, + "no_charge": { + "type": "boolean" + }, + "ok": { + "type": "boolean" + }, + "payment_required": { + "description": "true when the call needs payment; how_to_pay explains x402 or card", + "type": "boolean" + }, + "price_usd": { + "type": "number" + }, + "why": { + "type": "string" + }, + "x_next_bind": {} + }, + "type": "object" +}
1 tool update
- Added
get_calendar
1 tool update
- Added
compute_statutory_interest
7 tool updates
- Changed
check_minimum_wage1 field changed- added
Input schema / properties / receiptAdded value: +{ + "default": false, + "description": "Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool).", + "type": "boolean" +}
- Changed
compute_income_tax1 field changed- added
Input schema / properties / receiptAdded value: +{ + "default": false, + "description": "Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool).", + "type": "boolean" +}
- Changed
compute_payroll1 field changed- added
Input schema / properties / receiptAdded value: +{ + "default": false, + "description": "Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool).", + "type": "boolean" +}
- Changed
compute_vat1 field changed- added
Input schema / properties / receiptAdded value: +{ + "default": false, + "description": "Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool).", + "type": "boolean" +}
- Changed
count_working_days1 field changed- added
Input schema / properties / receiptAdded value: +{ + "default": false, + "description": "Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool).", + "type": "boolean" +}
- Changed
settlement_date1 field changed- added
Input schema / properties / receiptAdded value: +{ + "default": false, + "description": "Default false. When true, a paid success includes an Ed25519 answer receipt (kind answer_receipt) at no extra USDC. Unpaid 402 and free refusals do not include one. Not a series certified extract (GET /v1/certified/{country}/{series} at $0.25; that SKU is not an MCP tool).", + "type": "boolean" +}
- Added
verify_answer_receipt
2 tool updates
- Added
get_changes - Added
register_alert
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: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tn", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cd", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ls", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "sz", + "td", + "tg", + "tn", + "tz", + "ug", + "za", + "zm" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ao", - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "dz", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "mu", - "mz", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tn", + "tz", + "ug", + "zm" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "bw", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "na", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug", - "zm" -]New value: +[ + "ao", + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "dz", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "mu", + "mz", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bf", - "bj", - "cf", - "cg", - "ci", - "cm", - "eg", - "et", - "ga", - "gh", - "gq", - "ke", - "ma", - "ml", - "ne", - "ng", - "rw", - "sn", - "td", - "tg", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "bw", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "na", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug", + "zm" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "bj", - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ne", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bf", + "bj", + "cf", + "cg", + "ci", + "cm", + "eg", + "et", + "ga", + "gh", + "gq", + "ke", + "ma", + "ml", + "ne", + "ng", + "rw", + "sn", + "td", + "tg", + "tz", + "ug" +]
7 tool updates
- Changed
check_minimum_wage1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
- Changed
compute_income_tax1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
- Changed
compute_vat1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
- Changed
count_working_days1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
- Changed
get_public_holidays1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
- Changed
get_series1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
- Changed
get_series_history1 field changed- changed
Input schema / properties / country / enumPrevious value: -[ - "ci", - "eg", - "et", - "gh", - "ke", - "ma", - "ng", - "rw", - "sn", - "tz", - "ug" -]New value: +[ + "bj", + "ci", + "eg", + "et", + "gh", + "ke", + "ma", + "ne", + "ng", + "rw", + "sn", + "tz", + "ug" +]
Related MCP Connectors
European govt data, cited: rates, VAT, tax, wages, holidays, FX. 34 countries + EU; Germany free.
Asian govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 28 countries; Japan free.
LatAm govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 22 countries; Brazil free.
N American govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 10 countries; USA free.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to retrieve and compare verified country facts such as VAT/GST, public holidays, visas, tipping, and minimum wages across 70 countries, with automatic x402 micropayments in USDC on Base per call.110 npmMIT
- AlicenseAqualityAmaintenanceThe standard VAT rate in any of the 27 EU member states on any date since 2016, including temporary cuts. Runs offline with no API key.4MIT
- AlicenseAqualityAmaintenanceOfficial economic statistics with full citations — World Bank, IMF WEO, ECB — plus verify_stat to check a claimed figure against the official series. Free, remote, no auth.121MIT
- 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.-
Glama MCP Gateway
Add one secure layer between your agents and this server.