{"server":{"name":"dev.latamref/reference-data","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://latamref.dev/mcp","type":"streamable-http"}],"version":"1.5.0","websiteUrl":"https://latamref.dev","description":"LatAm govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 22 countries; Brazil free."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-08-02T11:59:59.928554Z","publishedAt":"2026-08-02T11:59:59.928554Z","statusChangedAt":"2026-08-02T11:59:59.928554Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://latamref.dev/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-11-25"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.96460176,"latency_ms_p50":1287,"consecutive_failures":0,"last_probe_at":"2026-10-19T17:52:59.779Z","last_ok_at":"2026-10-19T17:52:59.779Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"add_business_days","title":"Add business days to a date","description":"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.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"business_days_between","title":"Count business days between two dates","description":"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.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"charge_sale","title":null,"description":"PAID ($0.50). Charge this sale: should this invoice carry VAT, which country's and how much - place of supply under the EU, UK and South Africa rules, net/VAT/gross, registration threshold, rule cited. Omit buyer_country for single-country rate maths. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Charge This Sale","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"charge_sale_certified","title":null,"description":"PAID ($0.75). The charge_sale dossier plus an Ed25519-signed certified extract of the governing VAT rate, for a filing. Refused free when the governing source cannot be certified right now. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Charge This Sale (Certified)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"check_minimum_wage","title":null,"description":"PAID ($0.02). 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Check Minimum Wage","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"compare_series","title":null,"description":"PAID ($0.02). One series (e.g. vat, policy-rate, minimum-wage, corporate-tax) across up to 10 countries of this brand in one call; each row carries its own source, dates and labels, and countries without the series are listed under missing. Malformed requests are refused free. Pass api_key if you have one; otherwise the response explains how to pay via x402. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Compare Series Across Countries","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"compute_employment_cost","title":null,"description":"PAID ($0.05). Cost to employ: prices every statutory contribution on both the employee and employer sides for a gross salary, returning line-by-line amounts with instrument citations and an explicit refused list for schemes that could not be priced (unknown, not zero). Does NOT compute income tax — use compute_payroll for gross-to-net take-home where supported. Pass api_key if you have one (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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Compute Employment Cost","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"compute_income_tax","title":null,"description":"PAID ($0.02). Statutory income tax on a TAXABLE-income figure using the country's verified marginal bracket schedule, with full per-bracket workings, effective rate and marginal rate. Handles inflation-indexed tax units (Colombia UVT, Chile UTA, Peru UIT, Uruguay BPC) — you pass local currency. IMPORTANT: this is tax on taxable income, NOT net take-home pay — reliefs/allowances and social-security contributions are the caller's concern and are not applied (see the response scope_note). Pass api_key if you have one (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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Compute Income Tax","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"compute_statutory_interest","title":null,"description":"PAID ($0.02). 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 BR 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Compute Statutory Interest","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"compute_vat","title":null,"description":"PAID ($0.01). 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Compute VAT","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"cost_hire","title":null,"description":"PAID ($0.50). Cost this hire: one cited dossier for a salary - wage-floor verdict, employer and employee contributions (or PAYE net pay for NG/KE), employer cost, optional income tax on taxable_income and first working day on or after start_date. Countries here: MX. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Cost This Hire","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"count_working_days","title":null,"description":"PAID ($0.002). 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Count Working Days","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"evidence_pack","title":null,"description":"PAID ($0.25). Country evidence pack: the full cited country brief plus up to 3 Ed25519-signed certified extracts (default the first certifiable of vat, policy-rate, minimum-wage). Named series must all be certifiable. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Country Evidence Pack","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_calendar","title":null,"description":"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.","annotations":{"title":"Get Compliance Calendar","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_changes","title":null,"description":"FREE unmetered change + freshness feed. After any paid series or\nanswer call, call this before you assume the cached value is still the\nlaw. Returns every series whose current value took effect on or after\n`since` (default last 30 days), newest first, each with last_confirmed\nand stale, PLUS a dataset-wide freshness summary: how many of the served\nseries were re-verified within 1/7/30/90 days, how many are past their\nwindow, and which single series has gone longest without a check.\nFreshness is checkable or it is marketing. Args: since? (YYYY-MM-DD).\nDo not re-pay get_series to discover a diff. For a push bind, use\nregister_alert (Register: $0 · Delivery after trial: $0.05). For a filing freeze of the current\nvalue, GET /v1/certified/{country}/{series} ($0.10).","annotations":{"title":"Get Recent Changes","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_country_brief","title":null,"description":"PAID ($0.01). Country brief: every reference series we hold for one country (policy rate, VAT/GST, CPI, taxes, minimum wage, holidays...) in one call, each with value, unit, effective and last-confirmed dates, official source and confidence label. Cheaper than buying the series one by one. Pass api_key if you have one (card checkout at /pricing); otherwise the response explains how to pay via x402. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Get Country Brief","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_filing_deadlines","title":"Statutory filing deadlines","description":"PAID ($0.003, 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 BR series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Statutory filing deadlines","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_key_balance","title":null,"description":"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.","annotations":{"title":"Get Key Balance","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_public_holidays","title":null,"description":"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.","annotations":{"title":"Get Public Holidays","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_public_holidays_worldwide","title":null,"description":"FREE with any API key, including the free key by email (https://latamref.dev/free-key). Same as get_public_holidays, but for every country across all seven brands, not only Latin American. Unmetered: never counts against the key's allowance. Pass api_key, or send the key as the X-API-Key header on /mcp.","annotations":{"title":"Get Public Holidays Worldwide","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_series","title":null,"description":"PAID ($0.003). 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 BR series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Get Series Value","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_series_history","title":null,"description":"PAID ($0.003). 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 BR series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Get Series History","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"get_snapshot","title":null,"description":"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 BR series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Get Full Snapshot","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"hire_compare","title":null,"description":"PAID ($0.75 for 2 countries, $1.00 for 3-5). Employer cost, employer and employee contributions, on-cost percent and wage-floor verdict side by side and ranked, every figure cited. Countries (any brand): AE, AU, CA, DE, ES, GB, IT, MX, PL, US. Gross is in each country's own currency; currencies are not converted. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Hire Compare","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"invoice_payable","title":null,"description":"PAID ($0.40). Is this invoice overdue, by how many days, and how much statutory late-payment interest is owed (Actual/365 simple, rate and workings cited). Late-payment regime: none here; statutory interest only: BO, BR, BZ, CL, CO, CR, EC, HN, MX, NI, PA, SV, TT, UY. Send due_date, or invoice_date with terms_days. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Invoice Due Date and Late Interest","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"is_business_day","title":"Is it a business day?","description":"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.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"list_series","title":null,"description":"FREE. Catalog of all latamref 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.10 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.","annotations":{"title":"List Reference Series","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"next_filings","title":null,"description":"PAID ($0.35). Upcoming VAT, PAYE and corporate-tax due dates in a window (default the next 90 days), rolled for weekends and national public holidays, each rule cited. Countries with verified rules here: BR, CL, DO. Anything we cannot answer in full is refused free (coverage_gap, no_charge). Shares the 3 free calls per IP per day with the answer tools. Pass api_key if you have one (card checkout at /pricing); otherwise the result is the x402 payment requirement. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Next Filings","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"register_alert","title":null,"description":"Bind a webhook so the next gazette does not silently stale a value\nyou already paid for. REGISTERING IS FREE. Register: $0 · Delivery after trial: $0.05. First 3\ndeliveries are free; later deliveries are $0.05 and refunded if the webhook\nfails to send. HMAC-SHA256 signed. Two watch types on the same call:\n  • series: [\"za/vat-registration-threshold\", \"ke/*\", \"*\"] → series.changed\n    when the served value or its effective date moves. On usaref those\n    watches are statutory (minimum-wage, income-tax, statutory-interest,\n    sales-tax, public-holidays), not a FRED-macro subscription.\n  • sources: [\"<exact official source.url>\"] → source.changed when the\n    document BYTES change (old/new sha256 + citing series). Bytes ≠ value.\n    Value changes arrive as series.changed. Unknown URLs refuse free\n    (source_not_fingerprinted).\nMax 20 series + 20 sources. Required: url. Optional: api_key stored on the\nsubscription to fund deliveries after the trial. This call does not meter\nthat key. Prefer this over polling get_changes if you are a long-running\nagent. This is retention, not a new data product.","annotations":{"title":"Register Change Alert","readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"settlement_date","title":null,"description":"PAID ($0.02). 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.","annotations":{"title":"Settlement Date","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"validate_tax_id","title":null,"description":"PAID ($0.003). Offline format and check-digit validation of a business tax ID or VAT number for one country of this brand: valid/invalid, normalised form, id type, check level (checksum only where the authority publishes the algorithm) and why it failed, with official sources. Does not confirm registration; follow official_lookup for that. Countries without a sourced rule answer free with status 'unknown'. Pass api_key if you have one; otherwise the response explains how to pay via x402. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.","annotations":{"title":"Validate Tax ID / VAT Number","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"},{"name":"verify_answer_receipt","title":null,"description":"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.10, not an MCP tool) and it is not legal advice. Same key and canonical-JSON rule as /certified/public-key.","annotations":{"title":"Verify Answer Receipt","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:59.779Z"}],"dev.protogrid/trust":{"score":79,"components":{"hygiene":80,"liveness":99,"freshness":85,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-96%","~updated-78d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T21:35:43.161Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":69,"label":"needs work","components":{"auth":null,"hygiene":86,"protocol":75,"stability":25,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"3 tools have descriptions over 1,024 characters, which crowds the context","status":"warn","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"32 of 32 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 13,075 tokens to load every tool","status":"warn","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"76 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"1 tools kept their name but changed most of their description in 30 days; review before trusting them","status":"fail","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-stability.rug_pull","~protocol.modern","~tools.description_length","~tools.token_cost","~stability.changes"],"flags":[],"tool_count":32,"token_estimate":13075,"tools_hash":"07d87086e9eb0e6e19555ce44d46e352","tools_changed_at":"2026-10-19T17:52:59.779Z","computed_at":"2026-10-19T21:10:12.258Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"dev.latamref/reference-data","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/dev.latamref%2Freference-data/tools","arguments":{"name":"dev.latamref/reference-data"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/dev.latamref%2Freference-data/connection?target=mcpServers","arguments":{"name":"dev.latamref/reference-data","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}