Skip to content

org.scienceswarm/commerce-validators

by scienceswarm.org · remote · no sign-in to list tools · v1.1.1 · published by org.scienceswarm

Commerce validators: live EU VAT (VIES), EORI, email/MX lookups; IBAN/ABA/GTIN checksums; VAT rates.

Final · 1Changes · 5

10 tools: 1 do something that can't be undone, 5 change things and 4 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http commerce-validators https://mcp.scienceswarm.org/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Can't be undone 1Claude Code: ask
  • payout_reconciliationExplain why a payout is less than sales: walk gross -> deductions -> expected, and (if actual_deposit given) flag the unexplained gap (shortfall/surplus).No findings

    Why it is in this group

    • The name "payout_reconciliation" says "payout": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Explain why a payout is less than sales: walk gross -> deductions -> expected, and (if actual_deposit given) flag the unexplained gap (shortfall/surplus).
Changes things 5Claude Code: ask
  • check_email_domainCheck whether a domain can actually receive email (has MX records) via a real DNS-over-HTTPS lookup — validate a customer/supplier email's domain before sending or invoicing.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Check whether a domain can actually receive email (has MX records) via a real DNS-over-HTTPS lookup — validate a customer/supplier email's domain before sending or invoicing. An LLM can't know current DNS; this does the live lookup.
  • reorder_pointReorder point = lead-time demand + safety stock.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Reorder point = lead-time demand + safety stock. If on_hand is given, returns whether to reorder now and the days of cover remaining.
  • stripe_connect_splitCompute the Stripe Connect three-way split for one charge.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Compute the Stripe Connect three-way split for one charge. Returns what the buyer pays, what Stripe takes, what the platform nets (its application fee), and what the connected seller nets — plus the platform's effective take rate. fee_bearer: 'seller' | 'platform' | 'buyer' (who absorbs the Stripe processing fee). Rates are editable; defaults are US card standard 2.9%+$0.30.
  • validate_gtinValidate a GTIN / UPC / EAN barcode (GTIN-8/12/13/14) by its check digit.No findings

    Why it is in this group

    • The name "validate_gtin" says "validate": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    Validate a GTIN / UPC / EAN barcode (GTIN-8/12/13/14) by its check digit. Catches mistyped product barcodes in inventory/catalog workflows. Pure-algorithm.
  • vat_rate_by_countryEU VAT rates (standard / reduced / super-reduced / parking) for a country, from the maintained ibericode/vat-rates dataset (fetched live, cached 24h) — including which rate set was…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    EU VAT rates (standard / reduced / super-reduced / parking) for a country, from the maintained ibericode/vat-rates dataset (fetched live, cached 24h) — including which rate set was in force on an optional 'date' (YYYY-MM-DD) and the names of regional exceptions (e.g. Canary Islands). Input e.g. 'DE', 'FR', 'HU'.
Only reads 4Claude Code: allow
  • validate_aba_routingValidate a US ABA bank routing number (9 digits) by its checksum.No findings

    Why it is in this group

    • The name "validate_aba_routing" says "validate": a word for reading.
    Description, as the server wrote it
    Validate a US ABA bank routing number (9 digits) by its checksum. Catch typos before initiating an ACH/wire payout. Pure-algorithm; nothing leaves the machine.
  • validate_eoriValidate an EORI number (Economic Operators Registration and Identification) against the official EU customs database (live lookup).No findings

    Why it is in this group

    • The name "validate_eori" says "validate": a word for reading.
    Description, as the server wrote it
    Validate an EORI number (Economic Operators Registration and Identification) against the official EU customs database (live lookup). An EORI is required for EU imports/exports — check a trading partner's or your own EORI before customs filings / freight bookings. Input e.g. 'DE1234567890123' (country code + number).
  • validate_eu_vatValidate an EU VAT number against the official EU VIES service (live government lookup).No findings

    Why it is in this group

    • The name "validate_eu_vat" says "validate": a word for reading.
    Description, as the server wrote it
    Validate an EU VAT number against the official EU VIES service (live government lookup). Returns whether it is registered/valid and, if available, the registered trader name + address. An LLM cannot know this without the real lookup — use this before invoicing/reverse-charging an EU B2B customer. Input e.g. 'DE811569869' or 'IE6388047V' (country code + number).
  • validate_ibanValidate an IBAN (International Bank Account Number) by structure + the ISO 7064 mod-97 checksum.No findings

    Why it is in this group

    • The name "validate_iban" says "validate": a word for reading.
    Description, as the server wrote it
    Validate an IBAN (International Bank Account Number) by structure + the ISO 7064 mod-97 checksum. Catches typos/invalid accounts before you initiate a transfer. Pure-algorithm; no data leaves the machine.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http commerce-validators https://mcp.scienceswarm.org/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__commerce-validators__validate_iban",
      "mcp__commerce-validators__validate_aba_routing",
      "mcp__commerce-validators__validate_eu_vat",
      "mcp__commerce-validators__validate_eori"
    ],
    "ask": [
      "mcp__commerce-validators__validate_gtin",
      "mcp__commerce-validators__check_email_domain",
      "mcp__commerce-validators__vat_rate_by_country",
      "mcp__commerce-validators__stripe_connect_split",
      "mcp__commerce-validators__payout_reconciliation",
      "mcp__commerce-validators__reorder_point"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as commerce-validators. Review it before you use it.