_ registry / mcp + a2a http-sse · checked 1h ago

afriref

https://afriref.dev

Registry code: 069698efe6f42928

api record

Paid answer tools (check_minimum_wage, compute_vat, count_working_days, settlement_date, compute_income_tax, compute_statutory_interest, compute_payroll) take optional receipt, a boolean that defaults to false. When receipt is true, a paid success embeds an Ed25519 answer receipt (kind answer_receipt). The receipt is included in the answer price — no extra USDC. HTTP 402 and free refusals do not include a receipt. An answer receipt is not a series certified extract and is not legal advice. It only covers the computation over the cited series as of last_confirmed. Series certified extracts…

endpoint
https://afriref.dev/mcp
door code
585a167e295733da
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is afriref live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is afriref free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does afriref have?
35 tools: get_series, charge_sale, business_days_between, is_business_day, get_public_holidays, add_business_days, compute_vat, compute_statutory_interest, ….
Is afriref safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.8%

90 days 98.8%· all time 99.1%

latency
807ms

last good check

priced tools
3

of 35 tools

_ answered our checks, 90 days 1004 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • degraded → live
  • live → degraded· HTTP 522
_ what it is for
used for
  • compute vat for an amount
  • calculate income tax
  • check a salary against minimum wage
  • count working days in a country
  • get public holidays
takes → gives
data → data
tools
15 reads1 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts, and USDC settlements on base into the address this listing's priced doors name, read off the chain. Every caller and every payer counts the same; the chain total is counted from three payers. The address also stands behind 7 other origins: the chain figures are the gateway's, not this listing's alone. How it is counted.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

payers on base
18

distinct

settlements
606

last 2026-11-09

received on chain
100.341 USDC

concentrated, shared-payto

_ what it can do 35 tools
3 paid4 open 28 never probed 7 of 35 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • settlement_date reads 0.02 USDC paid never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "trade_date",
        "calendars"
      ],
      "properties": {
        "market": {
          "type": "string",
          "description": "ISO country of the market whose cited cycle should apply (with instrument_class)"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "calendars": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 4,
          "minItems": 1,
          "description": "Calendar ids to intersect: two-letter ISO country codes, plus 'eu.t2' for the euro cash leg"
        },
        "trade_date": {
          "type": "string",
          "description": "Trade/reference date, YYYY-MM-DD. Day 0: never counted, never rolled."
        },
        "business_days": {
          "type": "integer",
          "maximum": 30,
          "minimum": 0,
          "description": "The offset you are trading under (T+n)"
        },
        "instrument_class": {
          "enum": [
            "cash_equity",
            "etf",
            "corporate_bond",
            "government_bond",
            "tbill",
            "repo",
            "primary_issuance",
            "other"
          ],
          "type": "string",
          "description": "Instrument class — a government bond never inherits an equity cycle"
        }
      }
    }
    arguments 56 lines
  • invoice_payable 0.4 USDC paid never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "principal"
      ],
      "properties": {
        "as_of": {
          "type": "string",
          "description": "YYYY-MM-DD payment date or day asked about; default today"
        },
        "debtor": {
          "enum": [
            "business",
            "public_authority",
            "consumer"
          ],
          "type": "string",
          "description": "Default business"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "bf",
            "bj",
            "bw",
            "ci",
            "cm",
            "dz",
            "eg",
            "et",
            "ma",
            "ml",
            "mu",
            "mz",
            "na",
            "ne",
            "sn",
            "tg",
            "tn",
            "za"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "due_date": {
          "type": "string",
          "description": "YYYY-MM-DD contractual due date"
        },
        "principal": {
          "type": "number",
          "description": "Unpaid amount, local currency"
        },
        "terms_days": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "Agreed payment term in days"
        },
        "invoice_date": {
          "type": "string",
          "description": "YYYY-MM-DD; with terms_days instead of due_date"
        }
      }
    }
    arguments 74 lines
  • get_snapshot reads 0.02 USDC paid 23h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "api_key": {
          "type": "string",
          "description": "API key"
        }
      }
    }
    arguments 10 lines
  • get_calendar reads open 25h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "series": {
          "type": "string",
          "description": "Optional series id (for example policy-rate). Omit for every series. A valid country with no match stays free."
        },
        "country": {
          "type": "string",
          "description": "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."
        }
      }
    }
    arguments 14 lines
  • get_key_balance open 5h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "api_key": {
          "type": "string",
          "description": "API key. Optional when sent as the X-API-Key header on /mcp."
        }
      }
    }
    arguments 10 lines
  • list_series reads open 23h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "detail": {
          "type": "boolean",
          "description": "Default false. Without country, false returns a compact index (country -> series ids). true returns the full catalog, which is large."
        },
        "country": {
          "type": "string",
          "description": "Optional ISO country code. Returns full per-series metadata (source, freshness, bands) for that country only."
        }
      }
    }
    arguments 14 lines
  • get_changes reads open 25h ago

    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.05). For a filing freeze of the current value, GET /v1/certified/{country}/{series} ($0.10).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "since": {
          "type": "string",
          "description": "YYYY-MM-DD. Omit for the server default (last 30 days). Free, unmetered."
        }
      }
    }
    arguments 10 lines
  • get_series reads unknown 15h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "series"
      ],
      "properties": {
        "series": {
          "type": "string",
          "description": "Series id, e.g. policy-rate, vat, minimum-wage"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        }
      }
    }
    arguments 58 lines
  • charge_sale unknown 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "seller_country",
        "amount"
      ],
      "properties": {
        "band": {
          "type": "string",
          "description": "VAT band key, e.g. reduced"
        },
        "amount": {
          "type": "number",
          "description": "Sale amount"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "amount_is": {
          "enum": [
            "net",
            "gross"
          ],
          "type": "string",
          "description": "net adds VAT (default); gross extracts it"
        },
        "buyer_type": {
          "enum": [
            "B2B",
            "B2C",
            "unknown"
          ],
          "type": "string",
          "description": "Default unknown"
        },
        "buyer_country": {
          "type": "string",
          "description": "Omit for single-country rate maths"
        },
        "seller_country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 (EL = Greece, UK = United Kingdom)"
        }
      }
    }
    arguments 52 lines
  • business_days_between unknown 10h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Range end, YYYY-MM-DD"
        },
        "from": {
          "type": "string",
          "description": "Range start, YYYY-MM-DD"
        },
        "country": {
          "type": "string",
          "description": "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."
        }
      }
    }
    arguments 23 lines
  • is_business_day unknown 10h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "date"
      ],
      "properties": {
        "date": {
          "type": "string",
          "description": "Date to classify, YYYY-MM-DD"
        },
        "country": {
          "type": "string",
          "description": "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."
        }
      }
    }
    arguments 18 lines
  • get_public_holidays reads unknown 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country"
      ],
      "properties": {
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "subdivision": {
          "type": "string",
          "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."
        }
      }
    }
    arguments 53 lines
  • add_business_days unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "date",
        "n"
      ],
      "properties": {
        "n": {
          "type": "integer",
          "maximum": 500,
          "minimum": -500,
          "description": "Business days to add; negative walks backward"
        },
        "date": {
          "type": "string",
          "description": "Start date (day 0), YYYY-MM-DD"
        },
        "country": {
          "type": "string",
          "description": "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."
        }
      }
    }
    arguments 25 lines
  • compute_vat reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "amount"
      ],
      "properties": {
        "mode": {
          "enum": [
            "add",
            "extract"
          ],
          "type": "string",
          "description": "add = amount is net (default); extract = amount is gross"
        },
        "amount": {
          "type": "number",
          "description": "Amount in the country's own currency"
        },
        "api_key": {
          "type": "string",
          "description": "API key"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        }
      }
    }
    arguments 71 lines
  • compute_statutory_interest reads unknown never probed

    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 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "principal"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Period end, YYYY-MM-DD, exclusive."
        },
        "days": {
          "type": "number",
          "description": "Day-count days. Omit when from and to are set. If both are sent and disagree, the answer is refused free (HTTP 400)."
        },
        "from": {
          "type": "string",
          "description": "Period start, YYYY-MM-DD, inclusive. Pair with to. Day count is calendar days from inclusive to to exclusive (UTC dates)."
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "principal": {
          "type": "number",
          "description": "Principal in the country's own currency. Must be a finite number greater than 0."
        }
      }
    }
    arguments 75 lines
  • compute_payroll reads unknown never probed

    PAID ($0.05). 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "gross"
      ],
      "properties": {
        "basic": {
          "type": "number",
          "description": "Nigeria: basic pay component"
        },
        "gross": {
          "type": "number",
          "description": "Gross pay in local currency"
        },
        "period": {
          "enum": [
            "month",
            "year"
          ],
          "type": "string",
          "description": "Period the gross covers (default month)"
        },
        "sector": {
          "enum": [
            "public",
            "private"
          ],
          "type": "string",
          "description": "Nigeria: public applies NHF; private (default) sets NHF 0"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "ng",
            "ke"
          ],
          "type": "string",
          "description": "Payroll is supported for Nigeria (ng) and Kenya (ke)"
        },
        "housing": {
          "type": "number",
          "description": "Nigeria: housing allowance"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "transport": {
          "type": "number",
          "description": "Nigeria: transport allowance"
        },
        "annual_rent": {
          "type": "number",
          "description": "Nigeria: annual rent paid (unlocks rent relief)"
        },
        "nhis_premium": {
          "type": "number",
          "description": "Nigeria: NHIS employee premium if deducted"
        },
        "pensionable_pay": {
          "type": "number",
          "description": "Kenya: pensionable pay for NSSF tiers"
        },
        "insurance_premium": {
          "type": "number",
          "description": "Kenya: insurance premium for 15% relief"
        }
      }
    }
    arguments 75 lines
  • cost_hire unknown 13h ago

    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: KE, NG. 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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "gross"
      ],
      "properties": {
        "gross": {
          "type": "number",
          "description": "Gross pay, local currency"
        },
        "period": {
          "enum": [
            "month",
            "year"
          ],
          "type": "string",
          "description": "Default month"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "ke",
            "ng"
          ],
          "type": "string",
          "description": "ISO country code with a full cost-this-hire dossier"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "start_date": {
          "type": "string",
          "description": "YYYY-MM-DD; returns the first working day on or after it"
        },
        "subdivision": {
          "type": "string",
          "description": "Contribution region where held (e.g. CA-QC)"
        },
        "hours_per_week": {
          "type": "number",
          "description": "Lets an hourly wage floor be checked"
        },
        "taxable_income": {
          "type": "number",
          "description": "Annual taxable income; applies the income-tax schedule"
        }
      }
    }
    arguments 55 lines
  • domain_check unknown 5h ago

    PAID ($0.01). Use when mail lands in spam, before an email campaign, for vendor due diligence or to confirm a Microsoft 365 tenant: graded SPF, DKIM, DMARC, MX, MTA-STS, DNSSEC, CAA, TLS and domain age, plus BIMI and blocklist info, each with the exact fix record. Non-intrusive. $0.01 per domain. Returns a 0-100 score and, per check (spf, dkim, dmarc, mx, tls = website certificate, m365, registration, mta_sts, tls_rpt, dnssec, caa, bimi, dnsbl = UCEPROTECT blocklist), a pass/warn/fail/info grade, the finding and the exact record or step that fixes it. Info checks do not move the score. Invalid, nonexistent or private-only domains are refused free. MCP: pass api_key (an Afriref key, card credit at https://afriref.dev/pricing); per-call x402/MPP payment is HTTP only, so without a key the result is an api_key_required error naming the HTTP endpoint.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain or hostname, e.g. example.com (no URL, no IP)"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        }
      }
    }
    arguments 17 lines
  • evidence_pack unknown 5h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country"
      ],
      "properties": {
        "series": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 3,
          "description": "1 to 3 series ids to certify"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        }
      }
    }
    arguments 66 lines
  • compare_series unknown 23h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "series",
        "countries"
      ],
      "properties": {
        "series": {
          "type": "string",
          "description": "Series id from list_series, e.g. vat"
        },
        "api_key": {
          "type": "string",
          "description": "API key"
        },
        "countries": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "ISO 3166-1 alpha-2 codes on this brand, at most 10"
        }
      }
    }
    arguments 27 lines
  • get_country_brief unknown 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country"
      ],
      "properties": {
        "api_key": {
          "type": "string",
          "description": "API key"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        }
      }
    }
    arguments 53 lines
  • charge_sale_certified unknown 15h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "seller_country",
        "amount"
      ],
      "properties": {
        "band": {
          "type": "string",
          "description": "VAT band key, e.g. reduced"
        },
        "amount": {
          "type": "number",
          "description": "Sale amount"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "amount_is": {
          "enum": [
            "net",
            "gross"
          ],
          "type": "string",
          "description": "net adds VAT (default); gross extracts it"
        },
        "buyer_type": {
          "enum": [
            "B2B",
            "B2C",
            "unknown"
          ],
          "type": "string",
          "description": "Default unknown"
        },
        "buyer_country": {
          "type": "string",
          "description": "Omit for single-country rate maths"
        },
        "seller_country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 (EL = Greece, UK = United Kingdom)"
        }
      }
    }
    arguments 52 lines
  • verify_answer_receipt reads unknown 15h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "receipt"
      ],
      "properties": {
        "receipt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            }
          ],
          "description": "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": {
          "type": "string",
          "description": "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": {
          "type": "string",
          "description": "Optional GET /certified/public-key URL used only when public_key_pem is omitted. Ignored when the PEM is present."
        },
        "signature_value": {
          "type": "string",
          "description": "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."
        }
      }
    }
    arguments 36 lines
  • register_alert changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Webhook endpoint that will receive HMAC-SHA256 signed events"
        },
        "series": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "description": "Value watches, e.g. [\"za/vat-registration-threshold\", \"ke/*\", \"*\"]"
        },
        "api_key": {
          "type": "string",
          "description": "Optional prepaid key stored on the subscription to fund deliveries after the trial. This call does not meter it."
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "description": "Exact official-source URLs from a series source.url. Unknown URLs are refused free."
        }
      }
    }
    arguments 33 lines
  • hire_compare unknown 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "hires"
      ],
      "properties": {
        "hires": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "country",
              "gross"
            ],
            "properties": {
              "gross": {
                "type": "number"
              },
              "country": {
                "enum": [
                  "ae",
                  "au",
                  "ca",
                  "de",
                  "es",
                  "gb",
                  "it",
                  "mx",
                  "pl",
                  "us"
                ],
                "type": "string"
              },
              "subdivision": {
                "type": "string"
              },
              "hours_per_week": {
                "type": "number"
              }
            }
          },
          "maxItems": 5,
          "minItems": 2,
          "description": "2 to 5 hires"
        },
        "period": {
          "enum": [
            "month",
            "year"
          ],
          "type": "string",
          "description": "Default month"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        }
      }
    }
    arguments 65 lines
  • compute_income_tax reads unknown never probed

    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. 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.10 and is not an MCP tool) and is not legal advice. Verify with verify_answer_receipt against /certified/public-key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "taxable_income"
      ],
      "properties": {
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "taxable_income": {
          "type": "number",
          "description": "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)"
        }
      }
    }
    arguments 63 lines
  • count_working_days reads unknown 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Range end, YYYY-MM-DD, inclusive"
        },
        "from": {
          "type": "string",
          "description": "Range start, YYYY-MM-DD, inclusive"
        },
        "api_key": {
          "type": "string",
          "description": "API key"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "subdivision": {
          "type": "string",
          "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."
        }
      }
    }
    arguments 72 lines
  • invoice_check unknown 10h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "seller_country",
        "amount"
      ],
      "properties": {
        "as_of": {
          "type": "string",
          "description": "YYYY-MM-DD; default today"
        },
        "amount": {
          "type": "number",
          "description": "Invoice amount, local currency"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "due_date": {
          "type": "string",
          "description": "YYYY-MM-DD contractual due date"
        },
        "amount_is": {
          "enum": [
            "net",
            "gross"
          ],
          "type": "string",
          "description": "Default net"
        },
        "buyer_type": {
          "enum": [
            "B2B",
            "B2C",
            "unknown"
          ],
          "type": "string"
        },
        "terms_days": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "Agreed payment term in days"
        },
        "vat_charged": {
          "type": "number",
          "description": "VAT amount on the invoice, to be checked"
        },
        "buyer_tax_id": {
          "type": "string",
          "description": "Needs buyer_country"
        },
        "invoice_date": {
          "type": "string",
          "description": "YYYY-MM-DD; with terms_days instead of due_date"
        },
        "buyer_country": {
          "type": "string",
          "description": "ISO code; omit for a domestic invoice"
        },
        "seller_tax_id": {
          "type": "string"
        },
        "seller_country": {
          "type": "string",
          "description": "ISO country code of the seller"
        }
      }
    }
    arguments 76 lines
  • validate_tax_id unknown 25h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 40,
          "minLength": 1,
          "description": "The tax ID / VAT number as written; spaces, dots, dashes and a VAT country prefix are accepted"
        },
        "api_key": {
          "type": "string",
          "description": "API key"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        }
      }
    }
    arguments 60 lines
  • get_filing_deadlines unknown 27h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Window end, YYYY-MM-DD. Default from + 365 days; at most 400 days after from"
        },
        "tax": {
          "enum": [
            "vat",
            "paye",
            "cit"
          ],
          "type": "string",
          "description": "Only this tax's rules and dates"
        },
        "from": {
          "type": "string",
          "description": "Window start, YYYY-MM-DD. Default today"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "year_end": {
          "type": "string",
          "description": "Company accounting year end, MM-DD (e.g. 06-30). Applies to rules marked year_end_variable"
        }
      }
    }
    arguments 74 lines
  • domain_age unknown 13h ago

    PAID ($0.005). Not for registries without RDAP, e.g. .za/.co.za, .me, .de, .io, .eu: refused free (422). Use when you need to know which registrar holds a domain, how old it is, and whether it is a risky newly-registered domain. $0.005. From the registry's RDAP: registrar name and IANA ID (no registrant or contact data), created, expires, last changed, status flags, DNSSEC delegation, nameservers; fail under 30 days old or expired, warn under 180 days, expiring within 30 days or on hold. A registry without RDAP is refused free. MCP: pass api_key (an Afriref key, card credit at https://afriref.dev/pricing); per-call x402/MPP payment is HTTP only, so without a key the result is an api_key_required error naming the HTTP endpoint.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain or hostname, e.g. example.com (no URL, no IP)"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        }
      }
    }
    arguments 17 lines
  • get_series_history reads unknown 13h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "series"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Latest effective date, YYYY-MM-DD"
        },
        "from": {
          "type": "string",
          "description": "Earliest effective date, YYYY-MM-DD"
        },
        "series": {
          "type": "string",
          "description": "Series id"
        },
        "api_key": {
          "type": "string",
          "description": "API key"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        }
      }
    }
    arguments 66 lines
  • get_public_holidays_worldwide unknown 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country"
      ],
      "properties": {
        "api_key": {
          "type": "string",
          "description": "Any valid API key. Optional when the key is sent as the X-API-Key header on /mcp."
        },
        "country": {
          "enum": [
            "ae",
            "ao",
            "ar",
            "at",
            "au",
            "bb",
            "bd",
            "be",
            "bf",
            "bg",
            "bh",
            "bj",
            "bo",
            "br",
            "bs",
            "bw",
            "bz",
            "ca",
            "cd",
            "cf",
            "cg",
            "ch",
            "ci",
            "cl",
            "cm",
            "cn",
            "co",
            "cr",
            "cy",
            "cz",
            "de",
            "dk",
            "do",
            "dz",
            "ec",
            "ee",
            "eg",
            "es",
            "et",
            "eu",
            "fi",
            "fj",
            "fr",
            "ga",
            "gb",
            "gh",
            "gq",
            "gr",
            "gt",
            "gy",
            "hk",
            "hn",
            "hr",
            "hu",
            "id",
            "ie",
            "il",
            "in",
            "iq",
            "is",
            "it",
            "jm",
            "jo",
            "jp",
            "ke",
            "kr",
            "kw",
            "kz",
            "lk",
            "ls",
            "lt",
            "lu",
            "lv",
            "ma",
            "ml",
            "mt",
            "mu",
            "mx",
            "my",
            "mz",
            "na",
            "ne",
            "ng",
            "ni",
            "nl",
            "no",
            "np",
            "nz",
            "om",
            "pa",
            "pe",
            "pg",
            "ph",
            "pk",
            "pl",
            "pt",
            "py",
            "qa",
            "ro",
            "rs",
            "rw",
            "sa",
            "sb",
            "se",
            "sg",
            "si",
            "sk",
            "sn",
            "sv",
            "sz",
            "td",
            "tg",
            "th",
            "tn",
            "to",
            "tr",
            "tt",
            "tw",
            "tz",
            "ua",
            "ug",
            "us",
            "uy",
            "uz",
            "vn",
            "vu",
            "ws",
            "za",
            "zm"
          ],
          "type": "string",
          "description": "ISO country code, any covered country"
        },
        "subdivision": {
          "type": "string",
          "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."
        }
      }
    }
    arguments 152 lines
  • next_filings unknown 27h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "YYYY-MM-DD, max 366 days after from"
        },
        "tax": {
          "enum": [
            "vat",
            "paye",
            "cit"
          ],
          "type": "string"
        },
        "from": {
          "type": "string",
          "description": "YYYY-MM-DD, default today"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "eg",
            "gh",
            "ke",
            "mu",
            "ng",
            "rw",
            "sn",
            "tn",
            "tz",
            "ug",
            "za"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        },
        "year_end": {
          "type": "string",
          "description": "MM-DD financial year end"
        }
      }
    }
    arguments 55 lines
  • check_minimum_wage reads unknown 27h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "amount",
        "period"
      ],
      "properties": {
        "amount": {
          "type": "number",
          "description": "Wage to check, in the country's own currency"
        },
        "period": {
          "enum": [
            "month",
            "day",
            "hour",
            "week"
          ],
          "type": "string",
          "description": "Period the amount covers — must match the statutory floor's period"
        },
        "api_key": {
          "type": "string",
          "description": "API key (bypasses x402; metered for invoicing)"
        },
        "country": {
          "enum": [
            "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"
          ],
          "type": "string",
          "description": "ISO country code"
        },
        "receipt": {
          "type": "boolean",
          "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.10; that SKU is not an MCP tool)."
        }
      }
    }
    arguments 74 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 069698efe6f42928.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/069698efe6f42928/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/069698efe6f42928/badge.svg)](https://brick.blue/agent/069698efe6f42928?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.