{"name":"com.gumballtools/check-digit","slug":"gumballtools-check-digit","title":"Check Digit Validator","description":"Validates IBAN/ISBN/EAN/Luhn checksums and finds the one wrong digit","url":"https://mcp.market/server/gumballtools-check-digit","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":8,"ok":8,"last_checked_at":"2026-09-21T07:55:53.116Z","last_ok_at":"2026-09-21T07:55:53.116Z","latency_ms":802},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/bwalvoord/gumball","website":"https://check-digit.gumballtools.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://check-digit.gumballtools.com/api/mcp"}],"packages":[],"tools":[{"name":"run","description":"Validate the check digit(s) on an IBAN, ISBN-10, ISBN-13, EAN-13, UPC-A, or Luhn-checked card number, and when it fails, try to say which digit is wrong.\n\nUse this instead of computing the checksum yourself. Mod-97 arithmetic on a rearranged 15-34 character IBAN, or a weighted sum mod 10/11 over 10-19 digits, is exactly the kind of long deterministic calculation language models get wrong silently and confidently — there is no way for a reader to tell a fabricated \"valid\" from a real one without redoing the math. This tool actually redoes the math, and when the checksum fails, searches for the single adjacent-digit swap or single-character substitution that would repair it, because a transposed pair is the most common real cause of a bounced payment or a mistyped barcode.\n\nIMPORTANT, and easy to get wrong: for ISBN-13/EAN-13/UPC-A and Luhn, the digit alphabet (0-9) almost exactly spans the checksum's modulus, so a failing check usually admits MANY equally valid single-digit substitutions — the math genuinely cannot narrow it to one digit unless the error was an adjacent transposition. When that happens, the response reports the full candidate list rather than picking one; treat that as the honest answer, not a failure to find it. IBAN (mod 97) is the exception and usually does localize to one digit.\n\nInputs: `input` (the number; spaces and hyphens are stripped automatically) and `format`, one of iban | isbn10 | isbn13 | ean13 | upca | luhn — required, never auto-detected, because the same digit string can be validly checked under more than one format with different results.\n\nRefuses rather than guesses: an IBAN country code not in the ISO 13616 length registry, the wrong length for a declared format, or characters outside the format's alphabet (e.g. a letter in a card number). A passing checksum is a syntax check only — it does not confirm an IBAN names an open account, an ISBN is a real book, or a card is active or unstolen.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"input":{"type":"string","description":"The number to check, e.g. \"DE89370400440532013000\". Spaces and hyphens are stripped automatically; anything else must match the declared format exactly."},"format":{"type":"string","enum":["iban","isbn10","isbn13","ean13","upca","luhn"],"description":"Which checksum to apply — one of: iban, isbn10, isbn13, ean13, upca, luhn. Required; a bare number is not auto-detected because the same digits can be validly checked under more than one format with different results."}},"required":["input","format"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T11:37:15.274Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:37:15.188Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1264ms"]},"poisoning":{"score":15,"max":15,"notes":["1 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://check-digit.gumballtools.com/api/mcp","reachable":true,"authRequired":false,"latencyMs":1264,"serverInfo":{"name":"check-digit","version":"0.1.0"}}],"packages":[],"repo":{"found":false,"owner":"bwalvoord","repo":"gumball","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}