Skip to content

Check Digit Validator

by gumballtools.com · remote · no sign-in to list tools · v0.1.0 · published by com.gumballtools

Validates IBAN/ISBN/EAN/Luhn checksums and finds the one wrong digit

Changes · 1

1 tool: 1 change things.

Scanned Oct 21, 2026

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

claude mcp add --transport http check-digit https://check-digit.gumballtools.com/api/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • Warnrun

    The server marks "run" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "run" says "run": a word for a change.

    What this check looks for

Tools

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

1 tool

Changes things 1Claude Code: ask
  • runValidate 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.1 finding

    Why it is in this group

    • The name "run" says "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "run" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "run" says "run": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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. Use 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. IMPORTANT, 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. Inputs: `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. Refuses 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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

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 0.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http check-digit https://check-digit.gumballtools.com/api/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": [],
    "ask": [
      "mcp__check-digit__run"
    ],
    "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 check-digit. Review it before you use it.