FabTally Valid MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FabTally Valid MCP ServerCan you validate the VAT number DE123456789?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| $0.003 | Flagship. EU/EEA VAT: |
| $0.001 |
|
| $0.002 |
|
| $0.002 |
|
| $0.002 |
|
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 toolsdecode_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.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | Yes | A 17-character Vehicle Identification Number (excludes I, O, Q). | |
| x_payment | No | x402 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name. | |
| query | No | Free-text place, e.g. "Munich, Bavaria, Germany" or "France". | |
| state | No | State/province/subdivision name or code (within the country). | |
| country | No | Country name or ISO 3166-1 alpha-2/alpha-3 code. | |
| x_payment | No | x402 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The email address to validate. | ||
| x_payment | No | x402 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | The IBAN (spaces/dashes tolerated), e.g. DE89 3704 0044 0532 0130 00. | |
| x_payment | No | x402 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | x402 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_number | Yes | The VAT number without the country prefix (prefix is tolerated and stripped). | |
| country_code | Yes | 2-letter EU VAT country code (e.g. IE, DE, FR; GB/XI for Northern Ireland; GR accepted as EL). |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v1.0.0- First observed
decode_vin - First observed
geo_lookup - First observed
validate_email - First observed
validate_iban - First observed
validate_vat
TDQS
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.
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.
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.
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
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
Email, phone, domain, URL & OFAC verification; phishing and IBAN checks via x402.
Free EU VAT (VIES) + pan-EU company data (10 registers), payable in EURC/USDC via x402.
Commerce validators: live EU VAT (VIES), EORI, email/MX lookups; IBAN/ABA/GTIN checksums; VAT rates.
SLA'd EU VAT validation on VIES. Honest 3-state result, never guesses. 100 free lookups.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceValidates 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.-
- AlicenseNot gradedqualityBmaintenanceValidates JSON syntax and optionally checks against a JSON Schema, with pay-per-call via x402 micropayments.MIT
- AlicenseNot gradedqualityBmaintenanceValidates 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

MadTaco MCP Serverofficial
AlicenseAqualityBmaintenanceProvides 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.13123MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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