Qiniso
OfficialQiniso provides 56+ deterministic validation and formatting tools for verifying structured facts using checksums and authoritative data — catching errors that LLMs would silently get wrong.
Identifiers
validate_iban– IBAN (country, length, mod-97 checksum)validate_card– Payment card (Luhn + brand detection)validate_isbn– ISBN-13 (prefix + mod-10)validate_vin– Vehicle VIN (ISO 3779 check digit)validate_gtin– Product barcode (EAN-8/UPC-A/EAN-13/GTIN-14 + GS1 country)validate_imei– Device IMEI/IMEISV (Luhn + TAC)validate_gln– GS1 Global Location Numbervalidate_sscc– GS1 Serial Shipping Container Code
Web / Network
validate_tld– TLD against IANA root-zone listvalidate_domain– Domain structure + IANA TLD checkvalidate_ip– IPv4 or IPv6 addressvalidate_uuid– UUID version/variantvalidate_url– URL (WHATWG standard + TLD check)validate_email– Email syntax + TLD check
Finance
validate_isin– ISIN (ISO 6166 Luhn)validate_cusip– CUSIP (mod-10)validate_sedol– SEDOL (weighted mod-10)validate_lei– LEI (ISO 17442 MOD 97-10)validate_routing– US ABA routing number (weighted mod-10)
Crypto
validate_eth_address– Ethereum address (EIP-55 checksum)validate_btc_address– Bitcoin address (Base58Check or Bech32/Bech32m)
National & Tax IDs Validate IDs from 20+ countries including Brazil (CPF, CNPJ), South Africa, Spain, India, Italy, Poland, Netherlands, Belgium, Sweden, Norway, Finland, Portugal, Turkey, China, Germany, France, Switzerland, Mexico, Croatia, Romania, Bulgaria, Estonia, Czech/Slovak Republics, plus EU/UK/EFTA VAT numbers.
Academic
validate_isbn10– ISBN-10 (mod-11)validate_issn– ISSN (mod-11)validate_orcid– ORCID (ISO 7064 MOD 11-2)
Locale & Date
validate_phone– Phone number validation and E.164 normalisation by countryparse_date– Ambiguous dates to ISO 8601 (en-GB or en-US)format_currency– Money formatting by locale and ISO 4217 currencyis_holiday– Public/bank holiday check (~200 countries)next_holiday– Next public/bank holiday on or after a given datetax_rate– VAT/sales-tax rate lookup by date and country
Addresses
parse_address– Parse free-text UK or US addresses into structured fields (country, postcode, city, state)
Qiniso
The deterministic fact-verification layer for AI agents.
Verified, trustworthy data tools for AI agents. "Qiniso" means "truth" in Zulu.
Website · npm · MCP endpoint · MCP Registry
Agents confidently emit IBANs, phone numbers, domains, VAT numbers and crypto addresses that are subtly — and silently — wrong. Qiniso checks the structured facts an agent produces against checksums and curated authoritative data, so a bad value is caught instead of trusted.
It's the deterministic complement to the guardrail stack: security guardrails check whether output is safe, structure guardrails check it's well-formed, and hallucination guardrails ask another LLM if it's faithful to the prompt. None of them check whether a structured fact is actually correct against the real world — because that needs computation or curated data, not another model's opinion. That's Qiniso.
On arbitrary identifiers, a frontier LLM validates them wrong ~91% of the time, cold and silently. Qiniso: 0%.
Add it to Claude
Settings → Connectors → Add custom connector, and paste — no login, no key:
https://qiniso.qinisolabs.workers.dev/mcpStateless, reads no user data, requires no secrets.
Related MCP server: ibanforge
Use it as a library
Every check is also a typed function — no MCP required:
npm i @qinisolabs/qinisoimport { validateIban, validateVat } from "@qinisolabs/qiniso";
validateIban("GB82 WEST 1234 5698 7654 32");
// { valid: true, country: "United Kingdom", ... }What it verifies — 56 tools across 8 domains
Domain | Tools |
Identifiers | IBAN, payment card (Luhn + brand), ISBN-13, VIN, GTIN/UPC/EAN barcodes (+ GS1 country) |
Web / network | TLD & domain (IANA root zone), IP, UUID, URL, email |
Finance | ISIN, CUSIP, SEDOL, LEI, US ABA routing |
Crypto | Ethereum (EIP-55), Bitcoin (Base58Check / Bech32) addresses |
National & tax IDs | Brazil CPF/CNPJ, South Africa ID, Spain DNI/NIE, India Aadhaar, Italy, Poland, Netherlands, Belgium, Nordics, Portugal, Turkey, China, Germany Steuer-IdNr, France NIR, Switzerland AHV, Mexico CURP, Croatia OIB, Romania CNP, Bulgaria EGN, Estonia, Czech/Slovak rodné číslo, EU/UK VAT |
Academic | ISBN-10, ISSN, ORCID |
Locale | Phone (global), date parsing, currency, holidays (~200 countries), UK VAT-by-date |
Addresses | UK/US address parsing |
Each tool wraps an authoritative method — a published checksum standard, an audited library (libphonenumber-js, jsvat, date-holidays, @noble/hashes), or curated reference data (the IANA root zone, UK VAT history).
What it is not
Not a live-data provider. It verifies facts you give it; it does not return the current time, weather, or live exchange rates.
Not a credential sink. It never asks for secrets or API keys. (For JWT signature verification, use a library in your own runtime so the secret never leaves your machine.)
Not a registration check. It validates a VAT number's checksum, not whether it is live-registered (VIES); it confirms a domain's TLD is real, not that the domain is registered.
Architecture
A TypeScript monorepo. Each domain is a typed library in packages/*; the qiniso umbrella aggregates them and exposes one MCP server over three transports — stdio (local / npx), Streamable HTTP (self-host), and a Cloudflare Worker (the hosted edge endpoint). The same core powers the importable library.
npm install
npm run build
npm testLicense
Apache-2.0
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qinisolabs/qiniso'
If you have feedback or need assistance with the MCP directory API, please join our Discord server