CheckDigit
Server Details
Offline check-digit validation for IBAN, BIC, EU VAT, GTIN/EAN/UPC and ISBN. Format check only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: get_meta returns service metadata while validate_code performs validation on a supplied identifier. There is no plausible way to confuse them, and each description clearly states scope and limitations.
Both names follow a clean snake_case verb_noun pattern (get_meta, validate_code). The convention is consistent and predictable across the entire surface.
Two tools is thin, but the server's scope is narrow — exposing a validation engine plus its metadata — so each tool clearly earns its place. A batch or multi-code validation variant would round out the surface, but nothing here is redundant.
The surface covers metadata discovery and one-shot validation across all advertised identifier types (IBAN, BIC, VAT, GTIN, ISBN), which is the core domain. Minor gaps exist: no batch validation and no check-digit generation, though agents can work around these by calling validate_code repeatedly.
Available Tools
2 toolsget_metaService version, supported formats and limitsARead-onlyIdempotentInspect
Return the service version and build, supported IBAN and VAT countries, GTIN formats, the disclaimer and the current limits. Does not count as a check. Read-only. Same data as GET /v1/meta.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| bic | No | |
| vat | No | |
| gtin | No | |
| iban | No | |
| build | No | |
| limits | No | |
| privacy | No | |
| service | Yes | |
| version | Yes | |
| endpoints | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds two things annotations do not: the billing/quota semantics ('does not count as a check') and endpoint parity ('Same data as GET /v1/meta'). No pagination or caching notes, but nothing is needed for a static metadata read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the return payload, then the quota caveat, then the REST equivalence. Every sentence carries distinct information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return value structure need not be described; annotations carry the safety profile; there are no parameters. The description adds the two non-structured facts an agent would otherwise guess at (no quota cost, REST parity), leaving no meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing to document and the baseline of 4 applies. The description correctly stays silent on inputs rather than inventing semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Return the service version and build') followed by a concrete enumeration of what is returned: supported IBAN/VAT countries, GTIN formats, disclaimer, limits. The clause 'Does not count as a check' explicitly differentiates it from the sibling validate_code, so an agent can pick correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Does not count as a check' tells the agent this call is free of validation-quota implications, which implicitly routes validation work to validate_code and metadata lookups here. Clear context, but there is no explicit when-to-use/when-not statement beyond that single differentiator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_codeValidate an IBAN, BIC, EU VAT number, GTIN/EAN/UPC or ISBNARead-onlyIdempotentInspect
Check the format and check digits of one identifier: IBAN (ISO 13616, per-country length and layout), BIC/SWIFT (ISO 9362 format and country), EU VAT number (offline checksum, VIES not queried), GTIN/EAN-8/UPC-A/EAN-13/GTIN-14 (GS1 mod 10) or ISBN-10/13. type "auto" (default) detects the type from the shape. Returns valid, a reason when invalid (e.g. the expected check digit), and normalized/formatted forms. Format check, not a compliance check: valid does not mean the account, registration or product exists. The code is sent in a POST body and not stored or logged. Read-only. Same engine, keys and limits as POST /v1/{type}.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The identifier to check, e.g. "DE89 3704 0044 0532 0130 00", "ATU13585627", "4006381333931" or "978-0-306-40615-7". Spaces, hyphens and dots are ignored. Max 64 characters. | |
| type | No | auto (default), iban, bic, vat, gtin or isbn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bban | No | |
| sepa | No | |
| type | No | |
| ean13 | No | |
| input | Yes | |
| valid | Yes | |
| format | No | |
| isbn10 | No | |
| isbn13 | No | |
| number | No | |
| reason | No | |
| country | No | |
| checksum | No | |
| bank_code | No | |
| formatted | No | |
| candidates | No | |
| normalized | No | |
| check_digit | No | |
| detected_as | No | |
| check_digits | No | |
| country_name | No | |
| vies_checked | No | |
| expected_check_digit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false; the description reinforces this and adds genuinely new disclosure — the code is sent in a POST body and not stored or logged, VIES is not contacted, and the same engine/keys/limits as POST /v1/{type} apply. It stops short of describing rate limits or latency concretely, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resources and supported formats, then caveats and privacy. Dense and mostly value-adding, though the long parenthetical format list is slightly heavy for a single paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still notes the returned fields (valid, reason, normalized/formatted forms), and it pre-empts the main misuse risk (format vs. existence) plus the privacy question. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), but the description adds real meaning beyond the enum: 'auto' detects the type from the shape, and normalization notes (spaces/hyphens/dots ignored) plus a 64-char cap align with the code parameter. The added signal is modest but useful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check/validate) and enumerates exactly which identifier standards it covers (IBAN ISO 13616, BIC ISO 9362, EU VAT, GS1 GTIN family, ISBN-10/13) with the detection mode. An agent can tell precisely what this tool does and does not validate without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear scoping conditions: 'Format check, not a compliance check', 'VIES not queried', and the auto-detect default. It does not name an alternative tool, but the only sibling (get_meta) is unrelated, so no meaningful routing ambiguity remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
get_meta - First observed
validate_code
Related MCP Connectors
Validates Luhn, IBAN, ISBN, EAN/UPC, SWIFT/BIC, and EU VAT checksums and formats.
Validate IBAN, EU VAT, card numbers, ISBN, BIC, EAN and postcodes
Validates IBAN/ISBN/EAN/Luhn checksums and finds the one wrong digit
Commerce validators: live EU VAT (VIES), EORI, email/MX lookups; IBAN/ABA/GTIN checksums; VAT rates.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceValidates and converts ISBN-10 and ISBN-13 numbers offline, checking check digits and supporting conversion between formats.14 npmMIT
- AlicenseAqualityDmaintenanceVerified validation of structured identifiers — IBAN, payment cards, ISBN-13 and VIN — for AI agents. Runs the real checksum algorithms (mod-97, Luhn, mod-10, ISO 3779) instead of letting the model guess, and returns structured results with clear errors.430 npmApache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to audit EU payment runs offline—validating IBANs, SEPA character sets, VAT numbers, and control sums—without uploading any data.8 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides a Luhn check-digit validation tool for numeric strings such as credit cards, IMEI, and national IDs.22 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.