{
  "markdown": "<div align=\"center\">\n\n<img src=\"docs/logo.svg\" width=\"96\" height=\"96\" alt=\"Qiniso\" />\n\n# Qiniso\n\n**The deterministic fact-verification layer for AI agents.**\n\n*Verified, trustworthy data tools for AI agents. \"Qiniso\" means \"truth\" in Zulu.*\n\n[Website](https://qinisolabs.github.io/qiniso/) · [npm](https://www.npmjs.com/package/@qinisolabs/qiniso) · [MCP endpoint](https://qiniso.qinisolabs.workers.dev/mcp) · [MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=qiniso)\n\n</div>\n\n---\n\nAgents 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.\n\nIt'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.\n\n> On arbitrary identifiers, a frontier LLM validates them **wrong ~91% of the time, cold and silently. Qiniso: 0%.**\n\n## Add it to Claude\n\nSettings → Connectors → **Add custom connector**, and paste — no login, no key:\n\n```\nhttps://qiniso.qinisolabs.workers.dev/mcp\n```\n\nStateless, reads no user data, requires no secrets.\n\n## Use it as a library\n\nEvery check is also a typed function — no MCP required:\n\n```bash\nnpm i @qinisolabs/qiniso\n```\n\n```ts\nimport { validateIban, validateVat } from \"@qinisolabs/qiniso\";\n\nvalidateIban(\"GB82 WEST 1234 5698 7654 32\");\n// { valid: true, country: \"United Kingdom\", ... }\n```\n\n## What it verifies — 56 tools across 8 domains\n\n| Domain | Tools |\n| --- | --- |\n| **Identifiers** | IBAN, payment card (Luhn + brand), ISBN-13, VIN, GTIN/UPC/EAN barcodes (+ GS1 country) |\n| **Web / network** | TLD & domain (IANA root zone), IP, UUID, URL, email |\n| **Finance** | ISIN, CUSIP, SEDOL, LEI, US ABA routing |\n| **Crypto** | Ethereum (EIP-55), Bitcoin (Base58Check / Bech32) addresses |\n| **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 |\n| **Academic** | ISBN-10, ISSN, ORCID |\n| **Locale** | Phone (global), date parsing, currency, holidays (~200 countries), UK VAT-by-date |\n| **Addresses** | UK/US address parsing |\n\nEach 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).\n\n## What it is *not*\n\n- **Not a live-data provider.** It verifies facts you give it; it does not return the current time, weather, or live exchange rates.\n- **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.)\n- **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.\n\n## Architecture\n\nA 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.\n\n```bash\nnpm install\nnpm run build\nnpm test\n```\n\n## License\n\nApache-2.0\n",
  "bytes": 3865,
  "sha": "c27904c95a1d2c764839da941e0a49032946d6af18c0a505fe27d0ef428124cb",
  "repo_slug": "qinisolabs/qiniso",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_qinisolabs_qiniso_90e94be5/readme"
}