Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Afriref: cited government reference data

REMOTE · AFRIREF.DEV

Cited official data: tax, VAT, CPI, policy rates, wages, holidays, FX. 128 countries+EU, 7 regions.

Available components

0 this week 87 Trust /100

Last scanned (9 hours ago)

Scores higher than 94% of remote servers

Reachable. Last reached 7 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10949 tokens (~288/item across 38 items; 35 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "charge_sale" implies "charge" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (13)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Nov 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 3 Nov 26 +57
    • Transport: unverified → pass ▲ security
    • Injection markers: unverified → pass ▲ security
    • HTTPS: unverified → pass ▲ security
    • Stability: unverified → pass ▲ security
    • Authorization: fail → partial ▲ security
    • HSTS header: fail → pass ▲ security
    • Endpoint reachability: behind authorisation → reachable ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • New tool “invoice_check” functional
  • 2 Nov 26 −57
    • Endpoint reachability: reachable → behind authorisation ▼ security
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • HTTPS: pass → unverified ▼ security
    • Transport: pass → unverified ▼ security
    • Authorization: partial → fail ▼ security
    • HSTS header: pass → fail ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
  • 21 Oct 26 0
    • Tool “domain_age” rewrote its description, which is the text the model reads security
    • Tool “domain_check” rewrote its description, which is the text the model reads security
  • 20 Oct 26 −2
    • Schema quality: 7222 → 10361 ▼ functional
    • Destructive annotations: pass → 0 functional
    • New tool “charge_sale” functional
    • New tool “charge_sale_certified” functional
    • New tool “cost_hire” functional
    • New tool “domain_age” functional
    • New tool “domain_check” functional
    • New tool “evidence_pack” functional
    • New tool “hire_compare” functional
    • New tool “invoice_payable” functional
    • New tool “next_filings” functional
  • 18 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “check_minimum_wage” rewrote its description, which is the text the model reads security
    • Tool “compute_income_tax” rewrote its description, which is the text the model reads security
    • Tool “compute_payroll” rewrote its description, which is the text the model reads security
    • Tool “compute_statutory_interest” rewrote its description, which is the text the model reads security
    • Tool “compute_vat” rewrote its description, which is the text the model reads security
    • Tool “count_working_days” rewrote its description, which is the text the model reads security
    • Tool “get_changes” rewrote its description, which is the text the model reads security
    • Tool “get_filing_deadlines” rewrote its description, which is the text the model reads security
    • Tool “get_series” rewrote its description, which is the text the model reads security
    • Tool “get_series_history” rewrote its description, which is the text the model reads security
    • Tool “get_snapshot” rewrote its description, which is the text the model reads security
    • Tool “list_series” rewrote its description, which is the text the model reads security
    • Tool “register_alert” rewrote its description, which is the text the model reads security
    • Tool “settlement_date” rewrote its description, which is the text the model reads security
    • Tool “verify_answer_receipt” rewrote its description, which is the text the model reads security
    • New tool “compare_series” functional
    • New tool “get_country_brief” functional
    • New tool “validate_tax_id” functional
    • “check_minimum_wage” reworded the description of “receipt” cosmetic
    • “compute_income_tax” reworded the description of “receipt” cosmetic
    • “compute_payroll” reworded the description of “receipt” cosmetic
    • “compute_statutory_interest” reworded the description of “receipt” cosmetic
    • “compute_vat” reworded the description of “receipt” cosmetic
    • “count_working_days” reworded the description of “receipt” cosmetic
    • “settlement_date” reworded the description of “receipt” cosmetic
  • 13 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 5233 → 6647 ▼ functional
    • New tool “add_business_days” functional
    • New tool “business_days_between” functional
    • New tool “get_filing_deadlines” functional
    • New tool “get_key_balance” functional
    • New tool “get_public_holidays_worldwide” functional
    • New tool “is_business_day” functional
  • 12 Oct 26 +9
    • Authorization: unverified → partial ▲ security
    • Tool “check_minimum_wage” rewrote its description, which is the text the model reads security
    • Tool “compute_income_tax” rewrote its description, which is the text the model reads security
    • Tool “compute_payroll” rewrote its description, which is the text the model reads security
    • Tool “compute_statutory_interest” rewrote its description, which is the text the model reads security
    • Tool “compute_vat” rewrote its description, which is the text the model reads security
    • Tool “count_working_days” rewrote its description, which is the text the model reads security
    • Tool “get_series” rewrote its description, which is the text the model reads security
    • Tool “get_series_history” rewrote its description, which is the text the model reads security
    • Tool “get_snapshot” rewrote its description, which is the text the model reads security
    • Schema quality: 310 → 275 ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • Tool “check_minimum_wage” now declares an output schema ▲ functional
    • Tool “compute_income_tax” now declares an output schema ▲ functional
    • Tool “compute_payroll” now declares an output schema ▲ functional
    • Tool “compute_statutory_interest” now declares an output schema ▲ functional
    • Tool “compute_vat” now declares an output schema ▲ functional
    • Tool “count_working_days” now declares an output schema ▲ functional
    • Tool “get_calendar” now declares an output schema ▲ functional
    • Tool “get_changes” now declares an output schema ▲ functional
    • Tool “get_public_holidays” now declares an output schema ▲ functional
    • Tool “get_series” now declares an output schema ▲ functional
    • Tool “get_series_history” now declares an output schema ▲ functional
    • Tool “get_snapshot” now declares an output schema ▲ functional
    • Tool “list_series” now declares an output schema ▲ functional
    • Tool “register_alert” now declares an output schema ▲ functional
    • Tool “settlement_date” now declares an output schema ▲ functional
    • Tool “verify_answer_receipt” now declares an output schema ▲ functional
    • The server now declares the “prompts” capability functional
    • The server now declares the “resources” capability functional
    • First check of Tool coverage: 100 functional
    • New prompt “country_tax_snapshot” functional
    • New prompt “inflation_policy_rate_compare” functional
    • New prompt “payroll_check” functional
    • New resource “country_coverage” functional
    • New resource “pricing_payment_guide” functional
    • New resource “series_endpoints” functional
    • “list_series” added an optional parameter “country” cosmetic
    • “list_series” added an optional parameter “detail” cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 7 Nov 2026 · Probed https://afriref.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=afriref.dev CN=WE1,O=Google Trust Services,C=US 11 Sept 2026 10 Dec 2026 ECDSA 256 ECDSA-SHA256 9fac42c02859ed7c0e051e3adbc21a3e
SANs: afriref.dev, *.afriref.dev
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of afriref.dev. — Secure

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
dev. DS published 60074 8 Verified
afriref.dev. DS published 2371 13 Verified
afriref.dev. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
content-security-policy default-src 'self'; script-src 'self' 'sha256-0a4k/mJay1Co+D+vZyb5cMckFOjwRMRtlIMeCpvYTJs=' 'sha256-lllEljUY4hPtrJ5HpzkkDcr7Eacd3r/O7W322VRPfS4=' https://cdn.paddle.com https://*.paddle.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://*.paddle.com; connect-src 'self' https://*.paddle.com; frame-src https://*.paddle.com; frame-ancestors 'self'; base-uri 'self'; form-action 'self' https://*.paddle.com; report-uri /csp-report; report-to csp
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), payment=(self "https://buy.paddle.com"), usb=(), interest-cohort=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://afriref.dev/mcp Verified 200
http (plaintext) http://afriref.dev/mcp HTTPS enforced 301 https://afriref.dev:443/mcp
MCP tools · 35 exposed · ~10,625 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_snapshot ~119

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.05) on this series so a later gazette does not silently retire the value.

NameTypeReqDescription
api_keystring–API key
NameTypeReqDescription
bind_series–––
countries–––
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
how_to_payarray––
http_endpointstring––
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
resultarray–One entry per country; every series value carries confidence_label, coverage_label and label_basis
x_next_bind–––

No examples provided.

hire_compare ~349

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.

NameTypeReqDescription
api_keystring–API key (bypasses x402; metered for invoicing)
hiresarrayyes2 to 5 hires
periodstring–Default month
receiptboolean–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 (GE…
NameTypeReqDescription
bind_series–––
disclaimer–––
error––Present on a free refusal or error; no charge
evidencearray––
explanation–––
how_to_payarray––
http_endpointstring––
jobstring––
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
statusstring––
x_next_bind–––

No examples provided.

invoice_check ~514

PAID ($0.60). Check an invoice in one call: is the VAT right (place of supply, rate, expected amount vs vat_charged), is it overdue and how much statutory late interest is owed, and do seller/buyer tax IDs pass the official format check. Seller countries here: BF, BJ, BW, CI, CM, DZ, EG, ET, MA, ML, MU, MZ, NA, NE, SN, TG, TN, ZA. 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.

NameTypeReqDescription
amountnumberyesInvoice amount, local currency
amount_isstring–Default net
api_keystring–API key (bypasses x402; metered for invoicing)
as_ofstring–YYYY-MM-DD; default today
buyer_countrystring–ISO code; omit for a domestic invoice
buyer_tax_idstring–Needs buyer_country
buyer_typestring––
due_datestring–YYYY-MM-DD contractual due date
invoice_datestring–YYYY-MM-DD; with terms_days instead of due_date
receiptboolean–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 (GE…
seller_countrystringyesISO country code of the seller
seller_tax_idstring––
terms_daysinteger–Agreed payment term in days
vat_chargednumber–VAT amount on the invoice, to be checked
NameTypeReqDescription
bind_series–––
disclaimer–––
error––Present on a free refusal or error; no charge
evidencearray––
explanation–––
how_to_payarray––
http_endpointstring––
jobstring––
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
statusstring––
x_next_bind–––

No examples provided.

invoice_payable ~439

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: BF, BJ, BW, CI, CM, DZ, EG, ET, MA, ML, MU, MZ, NA, NE, SN, TG, TN, ZA. 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.

NameTypeReqDescription
api_keystring–API key (bypasses x402; metered for invoicing)
as_ofstring–YYYY-MM-DD payment date or day asked about; default today
countrystringyesISO country code
debtorstring–Default business
due_datestring–YYYY-MM-DD contractual due date
invoice_datestring–YYYY-MM-DD; with terms_days instead of due_date
principalnumberyesUnpaid amount, local currency
receiptboolean–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 (GE…
terms_daysinteger–Agreed payment term in days
NameTypeReqDescription
bind_series–––
disclaimer–––
error––Present on a free refusal or error; no charge
evidencearray––
explanation–––
how_to_payarray––
http_endpointstring––
jobstring––
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
statusstring––
x_next_bind–––

No examples provided.

is_business_day ~231

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.

NameTypeReqDescription
countrystringyesISO 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.
datestringyesDate to classify, YYYY-MM-DD
NameTypeReqDescription
basis–––
bind_series–––
calendar––Holiday calendar used: years_held, source, last_confirmed, stale
caveatsarray––
countrystring––
country_namestring––
datestring––
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
freeboolean––
how_to_payarray––
http_endpointstring––
is_business_dayboolean––
is_weekend_dayboolean––
next_business_day––{date, weekday}, or date null with why_unknown when it falls outside the held calendar
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
previous_business_day–––
pricestring––
price_usdnumber––
public_holidaysarray––
reachedstring–On a refusal: the first date the calculation could not classify
reasonstring––
weekdaystring––
weekend––Weekend days applied, the basis of that rule, and any dated or sub-national note
what_you_can_doarray––
x_next_bind–––
yearnumber–On year_not_held: the year we do not hold
years_heldarray–On year_not_held: the years whose holidays we do hold

No examples provided.

list_series ~223

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.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.

NameTypeReqDescription
countrystring–Optional ISO country code. Returns full per-series metadata (source, freshness, bands) for that country only.
detailboolean–Default false. Without country, false returns a compact index (country -> series ids). true returns the full catalog, which is large.
NameTypeReqDescription
bind_series–––
countriesarray–Country entries ({country, name, series}); on an unknown-country refusal, the list of valid codes
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
how_to_payarray––
http_endpointstring––
no_chargeboolean––
notestring––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
x_next_bind–––

No examples provided.

next_filings ~372

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: EG, GH, KE, MU, NG, RW, SN, TN, TZ, UG, ZA. 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.

NameTypeReqDescription
api_keystring–API key (bypasses x402; metered for invoicing)
countrystringyesISO country code
fromstring–YYYY-MM-DD, default today
receiptboolean–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 (GE…
taxstring––
tostring–YYYY-MM-DD, max 366 days after from
year_endstring–MM-DD financial year end
NameTypeReqDescription
bind_series–––
disclaimer–––
error––Present on a free refusal or error; no charge
evidencearray––
explanation–––
how_to_payarray––
http_endpointstring––
jobstring––
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
statusstring––
x_next_bind–––

No examples provided.

register_alert ~374

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.05. First 3 deliveries are free; later deliveries are $0.05 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: ["<exact official source.url>"] → 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.

NameTypeReqDescription
api_keystring–Optional prepaid key stored on the subscription to fund deliveries after the trial. This call does not meter it.
seriesarray–Value watches, e.g. ["za/vat-registration-threshold", "ke/*", "*"]
sourcesarray–Exact official-source URLs from a series source.url. Unknown URLs are refused free.
urlstringyesWebhook endpoint that will receive HMAC-SHA256 signed events
NameTypeReqDescription
bind_series–––
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
how_to_payarray––
http_endpointstring––
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
x_next_bind–––

No examples provided.

settlement_date ~550

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.

NameTypeReqDescription
api_keystring–API key (bypasses x402; metered for invoicing)
business_daysinteger–The offset you are trading under (T+n)
calendarsarrayyesCalendar ids to intersect: two-letter ISO country codes, plus 'eu.t2' for the euro cash leg
instrument_classstring–Instrument class — a government bond never inherits an equity cycle
marketstring–ISO country of the market whose cited cycle should apply (with instrument_class)
receiptboolean–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 (GE…
trade_datestringyesTrade/reference date, YYYY-MM-DD. Day 0: never counted, never rolled.
NameTypeReqDescription
basis–––
bind_series–––
confidence_labelstring–Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules
countrystring––
coverage_labelstring–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
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
how_to_payarray––
http_endpointstring––
label_basisobject–Inputs and the rule ids that produced the two labels
no_chargeboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
provenance––Cited official sources behind the answer
question–––
receipt––Ed25519 answer receipt when receipt=true on a paid success
statusstring–Answer status, e.g. computed or an honest no-answer status
x_next_bind–––

No examples provided.

validate_tax_id ~209

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.

NameTypeReqDescription
api_keystring–API key
countrystringyesISO country code
idstringyesThe tax ID / VAT number as written; spaces, dots, dashes and a VAT country prefix are accepted
NameTypeReqDescription
as_ofstring––
bind_series–––
check_levelstring––
countrystring––
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
how_to_payarray––
http_endpointstring––
id_typestring––
no_chargeboolean––
normalisedstring|null––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
reasonstring––
reason_codestring|null––
sourcesarray––
statusstring––
validboolean|null––
x_next_bind–––

No examples provided.

verify_answer_receipt ~315

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.

NameTypeReqDescription
public_key_pemstring–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_urlstring–Optional GET /certified/public-key URL used only when public_key_pem is omitted. Ignored when the PEM is present.
receipt–yesAnswer 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.
signature_valuestring–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.
NameTypeReqDescription
bind_series–––
disclaimer–––
error––Present on a free refusal or error; no charge
explanation–––
how_to_payarray––
http_endpointstring––
no_chargeboolean––
okboolean––
payment_requiredboolean–true when the call needs payment; how_to_pay explains x402 or card
price_usdnumber––
whystring––
x_next_bind–––

No examples provided.

Install

How do I install the Afriref: cited government reference data MCP server?

Afriref: cited government reference data is a hosted endpoint at https://afriref.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · afriref.dev

# add to Claude Code
claude mcp add --transport http dev-afriref-reference-data 'https://afriref.dev/mcp'
Common questions

What is the Afriref: cited government reference data MCP server?

Afriref: cited government reference data is an MCP server listed in the public MCP registry as dev.afriref/reference-data. Cited official data: tax, VAT, CPI, policy rates, wages, holidays, FX. 128 countries+EU, 7 regions. This page covers its hosted endpoint (https://afriref.dev/mcp).

Is the Afriref: cited government reference data MCP server safe to use?

Afriref: cited government reference data scores 87 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Afriref: cited government reference data MCP server expose?

Afriref: cited government reference data exposes 35 tools: list_series, get_public_holidays, get_public_holidays_worldwide, get_key_balance, is_business_day, and 30 more. Their descriptions and schemas cost roughly 10,625 tokens of context every time the server is loaded.

Does the Afriref: cited government reference data MCP server require authentication?

No. We connected to Afriref: cited government reference data without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Afriref: cited government reference data MCP server still maintained?

Afriref: cited government reference data is still listed as active in the MCP registry. We last reached this channel on 7 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the Afriref: cited government reference data MCP server?

VerifyMCP ran 13 checks on Afriref: cited government reference data, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.