Turkish IBAN, Tax Number & National ID Validation
Server Details
Checksum validation of Turkish IBANs, tax numbers (VKN) and national IDs (TCKN). Nothing stored.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool targets a distinct identifier type (IBAN, 11-digit national ID, 10-digit company tax number) with no functional overlap. Descriptions even clarify the tricky boundary between TCKN and VKN, so misselection is unlikely.
All three tools follow the same validate_<noun> snake_case pattern. The nouns are unambiguous and map directly to the domain objects.
A focused validation server with exactly the three identifiers it advertises; nothing extraneous and nothing thin about the set. Three well-differentiated tools is a good scope for this purpose.
The three core Turkish identifier validations are all present and form a coherent lifecycle-free surface. Minor gaps like batch validation or combined multi-field validation are workarounds an agent can handle by calling tools repeatedly.
Available Tools
3 toolsvalidate_ibanValidate a Turkish IBANARead-onlyIdempotentInspect
Validates a Turkish (TR) IBAN: 26 characters, structure, reserved digit and ISO 13616 mod-97 checksum. Returns the normalized and grouped form, the 5-digit bank code and the account number part. Format and checksum only: a valid result does not prove the number is registered or belongs to anyone. Inputs are not stored or logged.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | IBAN; spaces and hyphens are ignored |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| type | Yes | |
| parts | Yes | |
| valid | Yes | |
| checks | Yes | |
| formatted | Yes | |
| normalized | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the bar is lower; the description still adds real value by spelling out what is checked (length, structure, reserved digit, mod-97), what validity does NOT prove, and that inputs are not stored or logged. That privacy/scope disclosure goes beyond the annotations, though no rate-limit or error-shape info is given.
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 core action and checks, then caveats and privacy note. Efficient, though the returned fields are enumerated somewhat redundantly given an output schema exists.
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?
For a single-parameter read-only validator with an output schema and full annotation coverage, the description supplies everything an agent needs: scope of validation, the meaning of a positive result, and data-handling assurances.
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%, so the single 'iban' parameter and its space/hyphen handling are already documented. The description adds no format examples or normalization details beyond what the schema states, so the baseline 3 applies.
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 (validates) plus resource (Turkish/TR IBAN) with the standard named (ISO 13616). The 'Turkish (TR) IBAN' scoping distinguishes it cleanly from the national-ID and tax-number siblings.
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?
The intended use (checking IBAN format/checksum) is implied by the description and the 'format and checksum only' caveat clarifies scope of use. But it never explicitly says when to call this versus validate_national_id or validate_tax_number, nor any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_national_idValidate a Turkish national ID number (TCKN)ARead-onlyIdempotentInspect
Validates the check digits of an 11-digit Turkish national identity number (T.C. Kimlik Numarası, TCKN), which individuals also use as their tax number. The number is personal data: it is not echoed back. It does not confirm the person exists. Format and checksum only: a valid result does not prove the number is registered or belongs to anyone. Inputs are not stored or logged.
| Name | Required | Description | Default |
|---|---|---|---|
| tckn | Yes | 11-digit TCKN |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| type | Yes | |
| valid | Yes | |
| checks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent read, but the description adds substantial context they do not carry: the input is echoed back nowhere, inputs are neither stored nor logged, and a pass proves only checksum validity, not registration or ownership. This is exactly the privacy/limit disclosure an agent needs for handling personal data.
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 what it does, then limits and privacy in order of importance; every sentence is functional. The two consecutive caveats about existence and ownership restate the same idea, which is defensible emphasis but slightly redundant.
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?
Covers the three things an agent needs for this tool: what is validated, what a pass does not imply, and how the sensitive input is handled. An output schema is present, so return shape need not be restated.
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% and there is only one parameter, so the baseline would be 3. However the description adds a real constraint the schema omits: the value must be 11 digits, while the schema merely sets maxLength 64. That closes a genuine gap the structured field leaves open.
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 and resource (validates the check digits of an 11-digit TCKN) and scopes it precisely to format/checksum rather than existence. The note that individuals also use this number as their tax number hints at the boundary with validate_tax_number, so an agent can distinguish it from siblings 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?
Clear about the context in which the tool applies (pure format/checksum validation of a Turkish ID) and explicitly warns what a positive result does NOT mean. It stops short of explicitly routing between siblings — e.g. 'use validate_tax_number for corporate VKN' — so it lacks the explicit alternative-selection guidance of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_tax_numberValidate a Turkish tax number (VKN)ARead-onlyIdempotentInspect
Validates the check digit of a 10-digit Turkish tax identification number (Vergi Kimlik Numarası, VKN) used by companies. Format and checksum only: a valid result does not prove the number is registered or belongs to anyone. Inputs are not stored or logged.
| Name | Required | Description | Default |
|---|---|---|---|
| vkn | Yes | 10-digit VKN |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| type | Yes | |
| valid | Yes | |
| checks | Yes | |
| normalized | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations, which already declare readOnly/idempotent/non-destructive/closed-world. It adds that inputs are not stored or logged and, crucially, that a valid result proves only checksum correctness, not real-world existence or ownership — a semantic caveat an agent cannot infer from annotations.
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 with zero filler; the scope and the 'checksum only' caveat are front-loaded before the privacy note.
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 explanation is unnecessary. For a single-parameter validation tool with full annotation coverage, everything an agent needs to call it correctly and interpret its result is present.
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%, so the baseline is 3; the description still adds meaning by naming the input (VKN / Vergi Kimlik Numarası) and noting it applies to companies, disambiguating it from personal identification numbers. It does not note the schema's maxLength of 64 versus the stated 10 digits, leaving a minor mismatch unexplained.
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 (validates) and a precisely scoped resource: the check digit of a 10-digit Turkish tax identification number used by companies. The domain scope alone separates it cleanly from validate_iban and validate_national_id without ambiguity.
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?
Usage is strongly implied by the narrow scope, and the description supplies an important exclusion: this is format/checksum only and does not confirm registration or ownership. It does not explicitly route the agent among its siblings, but their domains are disjoint so routing is self-evident.
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.
3 tool updates
- First observed
validate_iban - First observed
validate_national_id - First observed
validate_tax_number
Related MCP Connectors
Validates Luhn, IBAN, ISBN, EAN/UPC, SWIFT/BIC, and EU VAT checksums and formats.
Validate IBAN, VAT, SWIFT, LEI, and credit card numbers
Offline check-digit validation for IBAN, BIC, EU VAT, GTIN/EAN/UPC and ISBN. Format check only.
Validate IBAN, EU VAT, card numbers, ISBN, BIC, EAN and postcodes
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to query Turkey's public data, including central-bank FX rates, earthquake catalog, weather forecasts, public holidays, and offline validation of Turkish ID, tax, and IBAN numbers, with sourced and timestamped responses.4450 npm1MIT
- 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.419 npmApache 2.0
- AlicenseAqualityBmaintenanceEnables AI agents to query Türkiye-specific data and logic without API keys: official central-bank exchange rates and currency conversion, live AFAD/Kandilli earthquakes, the official holiday calendar with business-day math, IBAN/TCKN/VKN validation, province and district lookup, prayer times, weather forecasts, plus Turkish-correct text casing and amounts written out in words. All 17 tools are read-only, with most working fully offline.17MIT
- AlicenseAqualityDmaintenanceEnables Turkish tax research, calculation, and document management using official GİB resources, including legislation search, tax computation, invoice validation, and circular drafting.131MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.