Skip to main content
Glama
zvmzaretsky

FabTally Valid MCP Server

by zvmzaretsky

FabTally Valid — MCP server

A developer validation suite — the per-call utilities incumbents charge for (Vatstack $0.01–0.09/call) or lock behind subscriptions, unified. Fronts the Valid HTTP API at https://valid.fabtally.com. Holds no private key.

Tools (all paid; a call with no payment returns the decoded x402 402 challenge)

Tool

Price

What it does

validate_vat

$0.003

Flagship. EU/EEA VAT: {country_code, vat_number} → per-country format + checksum pre-check AND a live VIES lookup, returning valid/registered plus the registered company name & address when VIES has them (cached ~1h to shield the flaky VIES).

validate_iban

$0.001

{iban} → ISO 13616 length + mod-97 checksum, country, human-formatted grouping, and bank identifier (German Bankleitzahl, UK bank code + sort code, …) extracted from the BBAN where derivable. Pure-offline.

validate_email

$0.002

{email} → RFC-ish syntax + live MX-record (DNS) existence + disposable/throwaway-domain detection (bundled blocklist) + role-address flag (info@, admin@). Stateless & non-PII: the address is never stored and no SMTP mailbox is probed.

geo_lookup

$0.002

{query:"Munich, Bavaria, Germany"} or {country,state,city} → normalized names, ISO 3166-1/-2 codes, country→subdivision→city hierarchy, population and coordinates, over a bundled open dataset (no per-day API limits).

decode_vin

$0.002

{vin} → 17-char format + North-American check-digit validation and a full NHTSA vPIC decode: make, model, year, body class, engine, plant country. VIN-only (never plate→owner).

Every tool also accepts an optional x_payment (base64 x402 payload) that is forwarded as the X-PAYMENT header to settle the call and return the real result. Humans can instead prepay by card and use an X-FabTally-Key credit key against the HTTP API.

Related MCP server: json-validator

Transports

  • stdio (portable): npx fabtally-valid-mcp (bin: fabtally-valid-mcp)

  • streamable-http (hosted): https://valid.fabtally.com/mcp

Config: FABTALLY_VALID_BASE (default https://valid.fabtally.com).

Read-only, keyless, stateless, non-PII. Operated by Sunstone Soft (fabtally.com). Not legal, tax, or financial advice.

Available Tools

5 tools
decode_vinDecode a VIN via NHTSA vPIC (paid $0.002)AInspect

PAID $0.002 (x402, USDC on Base). Decode a Vehicle Identification Number: give {vin} and get a 17-char format + North-American check-digit validation and a full decode via NHTSA's public vPIC API — make, model, year, body class, engine, plant country and more. VIN-only (never plate→owner). Without payment returns the x402 challenge; pass x_payment to settle.

ParametersJSON Schema
NameRequiredDescriptionDefault
vinYesA 17-character Vehicle Identification Number (excludes I, O, Q).
x_paymentNox402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It discloses the paid nature ($0.002), the x402 payment mechanism, the fact that a challenge is returned without payment, and the VIN-only limitation. This goes beyond the minimum but does not cover rate limits or error behavior, which would be expected for a paid API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and front-loaded with the critical 'PAID $0.002' notice. Each sentence adds important information: the pricing/payment model, the core functionality and output examples, and the VIN-only restriction plus payment flow. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain return values, and it does so by listing the validation and decode results. It covers the payment challenge behavior and the VIN-only scope. While it could mention error cases or rate limits, the provided context is sufficient for an agent to invoke the tool initially. A minor gap is not specifying the exact response format beyond examples.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides complete descriptions for both parameters (vin: 17-character VIN excluding I/O/Q; x_payment: base64 x402 payload forwarded as X-PAYMENT). The description adds examples of decode fields (make, model, year, etc.) but not new parameter-specific detail. Since schema coverage is 100%, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool decodes a Vehicle Identification Number and lists the specific outputs (17-char format, check-digit validation, full decode via NHTSA vPIC API with make/model/year/body class/engine/etc.). It distinguishes this from sibling validation tools (VAT, IBAN, email, geo lookup) through the unique resource and API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes the tool is VIN-only and never converts plates to owners, which sets a clear boundary. It also explains the payment flow (without payment returns an x402 challenge; pass x_payment to settle), giving practical usage context. However, it does not explicitly compare against sibling tools or mention alternative VIN services, though the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_lookupResolve a country / state / city to ISO codes (paid $0.002)AInspect

PAID $0.002 (x402, USDC on Base). Resolve a place against a bundled open dataset (no per-day API limits). Give {query:"Munich, Bavaria, Germany"} OR {country, state, city} and get normalized names, ISO 3166-1/-2 codes, the country→subdivision→city hierarchy, population and coordinates, and confirmation the place exists. Without payment returns the x402 challenge; pass x_payment to settle.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name.
queryNoFree-text place, e.g. "Munich, Bavaria, Germany" or "France".
stateNoState/province/subdivision name or code (within the country).
countryNoCountry name or ISO 3166-1 alpha-2/alpha-3 code.
x_paymentNox402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It explicitly states the tool is paid ($0.002), describes the x402 challenge that occurs without payment, and explains that passing x_payment settles the call. It also notes the bundled dataset has no per-day limits. This gives the agent a complete behavioral model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loads the cost, and efficiently covers input formats, output details, and the 402/challenge/payment flow. There is no redundancy or fluff; every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a lookup tool with no output schema, this description is complete: it lists all types of returned data (names, codes, hierarchy, population, coordinates), explains the two input modes, discloses the payment requirement and settlement process, and mentions dataset characteristics. The agent has all necessary context to invoke and interpret the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for individual parameters, but the description adds critical cross-parameter semantics: it explains that the free-text 'query' can be used OR the structured 'country/state/city' fields, and clarifies the exact role of 'x_payment' in the payment flow. This goes beyond the schema's per-field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Resolve a place against a bundled open dataset' and lists specific outputs (ISO 3166-1/-2 codes, hierarchy, population, coordinates). This distinguishes it from sibling validation tools (VAT, IBAN, email, VIN) which operate in entirely different domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (geographic lookups) and explains the payment workflow. However, it does not explicitly mention when not to use it or name alternatives among siblings. Since the sibling tools are for different validation tasks, the use case is self-evident, but explicit exclusions would earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_emailValidate an email: syntax + MX + disposable + role (paid $0.002)AInspect

PAID $0.002 (x402, USDC on Base). Validate an email address: give {email} and get RFC-ish syntax validation, a LIVE MX-record (DNS) existence check, disposable/throwaway-domain detection (bundled blocklist), and a role-address flag (info@, admin@…). STATELESS and non-PII — the address is never stored and no SMTP mailbox is probed. Without payment returns the x402 challenge; pass x_payment to settle.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe email address to validate.
x_paymentNox402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility. It discloses the payment requirement, x402 challenge flow, statelessness, non-PII handling, no email storage, and no SMTP probing. This is comprehensive and gives the agent accurate expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured. It front-loads cost and purpose, lists checks, then covers statelessness and payment flow. Every sentence adds unique information, with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid tool with no output schema and no annotations, the description is remarkably complete. It explains the challenge-response payment flow, the types of results returned, and the stateless/non-PII guarantee, giving the agent enough context to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with basic descriptions for both parameters. The tool description adds meaningful context about x_payment: that omitting it returns a 402 challenge and supplying it settles the call. This goes beyond the schema's definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'validate' and the resource 'email address', then enumerates the specific checks (syntax, MX, disposable, role). This distinguishes it from sibling validation tools (VAT, IBAN, VIN, geo) by domain and functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: validating email addresses. It explicitly notes the tool does NOT probe SMTP mailboxes, providing a useful exclusion. However, it does not name alternative tools for mailbox checks or discuss when to choose this over other validators, so it falls short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ibanValidate an IBAN (mod-97) + extract bank code (paid $0.001)AInspect

PAID $0.001 (x402, USDC on Base). Validate an IBAN: give {iban} and get ISO 13616 length + mod-97 checksum validation, the country, the human-formatted grouping, and the bank identifier (e.g. German Bankleitzahl, UK bank code + sort code) extracted from the BBAN where derivable. Pure-offline. Without payment returns the x402 challenge.

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanYesThe IBAN (spaces/dashes tolerated), e.g. DE89 3704 0044 0532 0130 00.
x_paymentNox402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It reveals the paid nature, the challenge flow, pure-offline behavior, and exactly what data is returned. This gives the agent a strong understanding of side effects and prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no filler. Front-loaded with payment warning, then clear purpose, then payment behavior. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid tool with no output schema, the description is remarkably complete: it explains purpose, inputs, outputs, payment/challenge flow, and offline nature. Enough for an agent to select and invoke correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions, so baseline is 3. The description adds context about the IBAN parameter (e.g., bank identifier extraction) and the x_payment parameter via the challenge flow, but does not significantly enhance parameter-level understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Validate') plus resource ('an IBAN') and enumerates concrete outputs: ISO 13616 length, mod-97 checksum validation, country, formatting, and bank identifier. This clearly distinguishes it from sibling tools like validate_vat or validate_email.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly describes the context (pure-offline, paid, returns x402 challenge without payment), but does not explicitly name alternative tools or state when not to use it. The sibling names make the intended use obvious, yet explicit exclusions are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_vatValidate an EU VAT number via VIES (paid $0.003)AInspect

PAID $0.003 (x402, USDC on Base). FLAGSHIP. Validate an EU/EEA VAT number: give {country_code, vat_number} and get a per-country format + checksum pre-check AND a LIVE lookup against the official VIES service — returning valid/registered plus the registered company name & address when VIES provides them (cached ~1h to shield the flaky VIES). Without payment returns the x402 challenge; pass x_payment to settle.

ParametersJSON Schema
NameRequiredDescriptionDefault
x_paymentNox402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.
vat_numberYesThe VAT number without the country prefix (prefix is tolerated and stripped).
country_codeYes2-letter EU VAT country code (e.g. IE, DE, FR; GB/XI for Northern Ireland; GR accepted as EL).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the cost ($0.003, USDC on Base), the ~1h caching to handle flaky VIES, the return of company name/address, and the 402 challenge when unpaid. This is exceptional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads key information (cost, purpose). Minor promotional language ('FLAGSHIP') and some redundant phrasing keep it from being perfectly concise, but every sentence contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main action, payment flow, and expected outputs (valid/registered, company info, or challenge). Although there is no output schema, the description adequately sets expectations for return values and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with 100% coverage. The description adds minimal semantic value beyond restating the required inputs and the role of x_payment, so it meets the baseline without exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates EU/EEA VAT numbers with a specific verb and resource. It details the two-stage process (format/checksum pre-check plus live VIES lookup) and implicitly distinguishes it from sibling validators like validate_iban and validate_email.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on how to use the tool, including the payment prerequisite and the fallback to a 402 challenge. It does not explicitly name alternatives, but the domain-specificity makes the intended use obvious.

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. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observeddecode_vin
    • First observedgeo_lookup
    • First observedvalidate_email
    • First observedvalidate_iban
    • First observedvalidate_vat

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct entity type (VAT, IBAN, email, location, VIN) with no overlap. The descriptions clearly differentiate the validation/lookup purpose of each.

Naming Consistency4/5

Three tools follow the validate_<entity> pattern, while two use different verbs (geo_lookup, decode_vin). The pattern is still predictable and readable, but minor inconsistency exists.

Tool Count5/5

Five tools is a well-scoped number for a validation/lookup server. Each tool has a clear, distinct function and none feel redundant or excessive.

Completeness4/5

The server covers common validation and lookup needs well. A few additional validators (phone, credit card) could be added, but the current set is coherent and functional for its apparent purpose.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Validates EU and Northern Ireland VAT numbers against the official VIES service, returning validity, company name and address, and distinguishing invalid from unavailable. Supports bulk checking up to 100 VAT IDs.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Validates phone numbers worldwide (carrier, line type, country) via single or batch requests, with pay-per-call using x402 micropayments (USDC on Base) — no API key required.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides verification and utility APIs for AI agents to validate tax IDs, screen sanctions, verify companies, and inspect domains using prepaid USD credits, with no charge for failed checks.
    13
    123
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zvmzaretsky/validation-suite-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server