addrbookFor publishers
← The evidence ledger

Evidence row 32743

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.aidatatools-dev/data-quality-gate
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
ce71088e2cb484f122f3d957cf02f1e7afc715409bfb68f3d9eb86a6aafdc6f8
Leaf
0xdbd6b347603561b9bb2de86bcfddd9d481ff0e8fe28dfc69c9cb0696a05bcc99

What was observed

{
  "endpoints": [
    [
      "mcp",
      "https://www.aidatatools.dev/api/mcp_server"
    ],
    [
      "web",
      "https://www.aidatatools.dev/llms.txt"
    ]
  ],
  "name": "Data Quality Gate - deterministic post-scrape cleaner + verdict",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-08-12T07:23:32.533208Z",
        "status": "active",
        "statusChangedAt": "2026-08-12T07:23:32.533208Z",
        "updatedAt": "2026-08-12T07:23:32.533208Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "_meta": {
        "io.modelcontextprotocol.registry/publisher-provided": {
          "boundary": "20 rules, published in full and free at GET https://www.aidatatools.dev/api/clean -- readable before paying. 7 are applied automatically (information-preserving), 5 need an explicit opt-in (they change row count, type or schema), and 8 are only ever reported, with no option to turn them on: near-duplicates are never merged, ambiguous placeholders are never nulled ('None' is a surname, 'NA' is Namibia), full NFKC is never applied (it rewrites 10^2 to 102), and failed extractions ('captcha', 'access denied') are never deleted -- that value is what tells you the record must be re-scraped. Impossible values are never repaired at all.",
          "docs": {
            "boundary": "https://www.aidatatools.dev/api/clean",
            "full": "https://www.aidatatools.dev/llms-full.txt",
            "openapi": "https://www.aidatatools.dev/openapi.json",
            "summary": "https://www.aidatatools.dev/llms.txt"
          },
          "guarantees": "Deterministic and idempotent. No value is emptied, retyped or reordered by an automatic rule. A repair that would introduce a defect the original did not have is reverted and flagged. The audited tier's ledger restores the input byte for byte.",
          "measured": "Real 100-row Amazon scrape, 57,956 nested string values: 453 repairs, 0 reverts, 0 values emptied. A control set of legitimate-but-suspicious data (French accents, Persian ZWNJ, emoji ZWJ, 10^2, AT&T, surname 'None', 'NA') comes back byte-for-byte identical: 0 changes, 11 flags.",
          "positioning": "Deterministic post-scrape data cleaner and quality gate. Repairs how data was ENCODED -- residual HTML, mojibake ('Café' -> 'Café'), invisible characters, non-breaking spaces -- and never what it SAYS. No LLM: identical input always yields byte-identical output, so results can be cached, replayed and audited.",
          "tags": [
            "data cleaning",
            "scraping repair",
            "post-scrape sanitization",
            "deterministic data repair",
            "mojibake correction",
            "encoding repair",
            "scraper output cleaning",
            "auditable data repair"
          ],
          "tools": {
            "check_dataset_quality": "FREE here. The full quality verdict: score, per-check facts, and RELIABLE / USABLE_WITH_CLEANING / UNRELIABLE. Bought once per source, then cached.",
            "clean_scraped_data": "Free to call, but it does NOT return the repaired data -- its response has no 'data' key. It reports which rules would fire on your data and what needs your decision, then names the paid call that hands the data back: POST https://www.aidatatools.dev/api/clean, $0.04 via x402, no account or signup. Call it after every extraction run -- a verdict is cached per source, but dirt is produced fresh by every run.",
            "clean_scraped_data_audited": "Same, pointing at POST https://www.aidatatools.dev/api/clean/audit, $0.12: the repaired data plus a replayable, reversible ledger of every transformation."
          },
          "why_repair_is_paid": "Detection is free on this endpoint and always has been. The repaired artifact is the paid product, because it is re-bought on every extraction run rather than cached like a verdict. Both cleaning tools say so in their own descriptions, before they are called."
        }
      },
      "description": "Post-scrape data cleaner, no LLM: repairs mojibake, HTML, invisible chars. Plus a verdict.",
      "name": "io.github.aidatatools-dev/data-quality-gate",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://www.aidatatools.dev/api/mcp_server"
        }
      ],
      "title": "Data Quality Gate - deterministic post-scrape cleaner + verdict",
      "version": "0.3.0",
      "websiteUrl": "https://www.aidatatools.dev/llms.txt"
    }
  },
  "source": "mcp_registry",
  "summary": "Post-scrape data cleaner, no LLM: repairs mojibake, HTML, invisible chars. Plus a verdict."
}

What the leaf hashes

{"body":"ce71088e2cb484f122f3d957cf02f1e7afc715409bfb68f3d9eb86a6aafdc6f8","id":32743,"kind":"listing","method":"baseline/1","observed_us":1793025366878376,"prev":null,"subject":"mcp_registry:io.github.aidatatools-dev/data-quality-gate","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xdbd6ab94b36a8cbdd7e1794afbc114b1f84562fc12b25eef59d7ed9fa9b14924
  2. 0x6edfadb600008132899de144a21eee3d27394ff2667fa491dba112f9bfb6e955
  3. 0x0a90ab0719b507046ea7d70a3e14fbefb5412b208e5544715cb9ee63447528fb
  4. 0x7f9d760613de4cbce21b79a6811e1262488737617794fd34b2d25b9f96c58577
  5. 0xb1ebd8c1e2c60b0f024d67fc8e4cc8f38c2dffde8be9aaf18e833576bf256574
  6. 0xcfe36e296773bca07d68ea8dfaeaedfca8b7ad0f797ea554e066a327fcf9b780
  7. 0x9d9528abd6f1b0edee61597a4f9034b6d094f1a0dffee5897913c1a760b8169b
  8. 0x979121c2dc21857cef134d4fba1ffa2c1f45c8ec21449e4fcf17f5162e9c62a4
  9. 0xb12bf79b1127ae95b792528a83a4feec56a64daf72dfb69f7beeb7a0a4b7f092
  10. 0xafea070fa3cd55d0c50ec39d914de8a0022e87d64becb9dc6998df49697576c3
  11. 0x7ec512db50ffb560b82f17e53667bcea802a69de4d98e67a44363985fac7f4da
  12. 0x4b7a7525bd11eaa3154ce1b1171d1b54b83370163f39203e230c520e42560c4b
  13. 0xa4edde833302b48399053e2519aea1aed1074cd102bf4b553643df1866cce4ec
  14. 0x0b7541c75cc482a7134110311d7dbd02095d969ba21177de9b21a52a55981718
  15. 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON