vat.support VAT Compliance
Server Details
EU/UK VAT compliance for AI agents: number validation, rate lookups, reverse-charge checks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
5 toolsreverse_charge_certificateAInspect
Generate an EU Art. 196 reverse-charge eligibility verdict for a B2B service invoice between two EU Member States. Validates the customer's VAT ID via VIES and returns a printable certificate. Returns INELIGIBLE for same-country, non-EU, or invalid VAT cases.
| Name | Required | Description | Default |
|---|---|---|---|
| service_type | No | Type of service: professional_services | digital_services | transport | telecom | event_admission | |
| customer_vat_id | No | Customer VAT identifier including country prefix (e.g. 'IT12345678901') | |
| customer_country | Yes | Customer ISO-3166-1 alpha-2 (e.g. 'IT') | |
| supplier_country | Yes | Supplier ISO-3166-1 alpha-2 (e.g. 'DE') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and handles it well: it discloses VIES validation, the production of a printable certificate, and the conditions that yield INELIGIBLE (same-country, non-EU, invalid VAT). It does not mention external dependency failures or output formatting, but the core behavior is clearly disclosed.
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?
Two dense sentences with no filler. The central verdict, VIES check, certificate output, and key ineligibility conditions are all front-loaded and every sentence 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?
The description covers the main decision logic and VIES dependency, but there are gaps: customer_vat_id is described as validated yet is optional in the schema, and there is no output schema or return-structure clarification. An agent might not know what happens if customer_vat_id is omitted or what the certificate payload looks like.
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 description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining that customer_vat_id is validated via VIES and that country values determine eligibility (same-country, non-EU). This helps the agent understand how the parameters interact.
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 states a specific verb ('Generate') and a precise resource ('EU Art. 196 reverse-charge eligibility verdict for a B2B service invoice between two EU Member States'). It also distinguishes itself from sibling VAT tools by focusing on an eligibility verdict plus a printable certificate, not just a VAT-number check or rate lookup.
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 gives a clear target scenario—B2B services between two EU Member States—and states when INELIGIBLE is returned. However, it does not explicitly route the agent away from sibling tools like vat_compliance_full or vat_number_check, nor does it name alternatives or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vat_compliance_fullAInspect
Run the full 10-question VAT compliance gap analysis. Returns compliance score (0–100), risk band, itemised findings with Article citations, and source verification per finding.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | Q1..Q10 answers. Q1=ISO country, Q2=array of supply types, Q3=B2B|B2C|MIXED, Q4=array of countries, Q5A=annual cross-border B2C revenue in EUR (numeric; legacy strings under_10k/over_10k/unsure still accepted), Q6=array of registration countries or ['NONE'], Q7B=UNION|IOSS|NONE, Q8=array of marketplaces, Q9=yes|no, Q10=under|over|both|na. | |
| language | No | en, ru, es, zh-CN |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the responsibility for disclosing behavior. It clearly describes what the analysis returns: compliance score (0-100), risk band, itemised findings with Article citations, and source verification per finding. It does not explicitly state side-effect status, but a gap analysis is inherently a non-mutating evaluation.
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 one sentence, front-loaded with the action and resource, and concisely lists the key return elements without fluff. Every phrase 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?
Since there is no output schema, the description's breakdown of return values is essential and well provided. The input schema fully documents parameters. It lacks explicit alternative tool guidance, but for a single-purpose analysis tool the overall description is largely complete.
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 description coverage is 100% and the schema already explains the answers object and language parameter, including Q1..Q10 format and accepted legacy strings. The tool description only reinforces the 10-question structure and does not add meaning 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 ('Run') and a specific resource ('full 10-question VAT compliance gap analysis'). It clearly distinguishes this as a comprehensive analysis tool versus the narrower sibling tools like vat_number_check or vat_rate_lookup.
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 states the tool runs the full 10-question analysis but gives no explicit guidance on when to choose this over alternatives such as vat_registration_check or reverse_charge_certificate. The word 'full' implies comprehensive use, but no when-not conditions or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vat_number_checkAInspect
Validate a single EU/UK VAT identifier against VIES (EU) or HMRC (UK). Returns name + address when available.
| Name | Required | Description | Default |
|---|---|---|---|
| vat_id | Yes | Full VAT identifier including country prefix (e.g. 'DE123456789' or 'GB123456789') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the core behavior (external validation via VIES/HMRC and returning name/address when available), but it does not mention possible failures, network dependency, latency, or what happens for invalid or unregistered VAT numbers.
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 two sentences with no filler. It front-loads the main purpose and adds the key return detail without unnecessary elaboration.
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 simple single-parameter tool, the description covers the essential information: what is validated, against which systems, and what is returned. It lacks explicit sibling differentiation and error-handling details, but nothing needed to invoke it 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 description coverage is 100%, so the schema already documents vat_id fully, including the country-prefix requirement. The description adds only that the VAT identifier is 'single' and 'EU/UK', which is marginal beyond the schema. Baseline 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 identifies the action ('Validate'), the target resource ('a single EU/UK VAT identifier'), and the validation sources (VIES/HMRC). It does not explicitly distinguish itself from the similar-sounding sibling vat_registration_check, so it misses full sibling differentiation.
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 usage is implied by the description: use it to validate a single EU/UK VAT identifier against VIES or HMRC. However, it does not explicitly state when to prefer this tool over vat_registration_check or vat_compliance_full, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vat_rate_lookupAInspect
Look up the applicable VAT rate for a country (and optional rate type), sourced from the EU TEDB (Taxes in Europe Database).
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO-2 country code | |
| rate_type | No | Defaults to 'standard' if omitted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries the burden. It discloses the data source (EU TEDB) which adds trust/context, but doesn't say whether the lookup hits a live API, returns cached data, or what happens for unsupported countries. Mutating or read-only is implied (lookup is read) but not explicit.
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?
One clear sentence, properly front-loaded with the action and resource. No waste, though it could mention the default rate type explicitly in text to reinforce the schema.
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?
A simple two-parameter lookup with a well-documented schema. The description plus schema covers core usage; no output schema means return format isn't promised, but for a rate lookup it's likely a numeric rate. Missing minor context like coverage scope (EU only?) and response shape, but adequate for basic use.
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 (ISO-2 code and enum). Description adds source context but no additional parameter details beyond 'optional rate type'. Baseline 3 is appropriate since schema already explains the parameters well.
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?
Clear verb+resource: 'look up the applicable VAT rate for a country' with optional rate type. It distinguishes itself from a generic lookup by naming the EU TEDB source, but doesn't name any sibling alternatives.
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?
Implied usage: a lookup tool for VAT rates, with rate_type defaulting to standard. No explicit when/how to choose this over other tools, and no exclusions or context about when it applies (e.g., EU vs non-EU).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vat_registration_checkCInspect
Determine whether a business needs to register for VAT in a given country, given customer type and annual revenue.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ||
| supply_types | No | Supply mix — `goods`, `digital_services`, `professional_services`, etc. Defaults to `[goods]` when omitted. | |
| customer_type | No | ||
| sale_countries | No | Other countries where the business sells | |
| annual_revenue_eur | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what decision is made but not how thresholds are applied, what output format is returned, or which inputs are actually required versus optional. The description also omits any assumptions, limitations, or country-specific handling details.
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 a single focused sentence with no filler, and it front-loads the core purpose. It is efficiently written, though its brevity means it can't carry the behavioral and parameter detail the tool needs.
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 annotations and no output schema, the description leaves too much unstated. It doesn't describe the return result, threshold logic, or how optional parameters like supply_types and sale_countries affect the decision. It also creates ambiguity by naming customer_type and annual_revenue while only country is required in the schema.
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 description coverage is only 40%, so the description must compensate, but it only mentions customer type and annual revenue as inputs and adds no semantic detail such as thresholds or units. It doesn't clarify the required country parameter or the roles of supply_types and sale_countries. The added value over the schema is minimal.
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 identifies the tool's function: it determines whether a business needs to register for VAT in a country, using customer type and annual revenue as key inputs. This is specific enough to distinguish it from related tools like vat_rate_lookup or vat_number_check, though it doesn't explicitly contrast with siblings such as vat_compliance_full.
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 implies the tool should be used when an agent needs a VAT registration eligibility decision with customer type and revenue available. However, it provides no explicit guidance on when not to use it, no alternative tool recommendations, and no indication of how it fits alongside vat_compliance_full or reverse_charge_certificate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Validate EU, UK, AU VAT numbers for AI agents. EU ViDA e-invoicing compliance.
EU compliance checks for AI agents: sanctions, company, VAT ID, IBAN, email. Pay per call.
European business verification for AI agents: registry, VAT, sanctions, IBAN. Pay-per-call x402.
SLA'd EU VAT validation on VIES. Honest 3-state result, never guesses. 100 free lookups.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI assistants to answer tax compliance questions (VAT, sales tax, GST) and validate EU VAT numbers in real time via the VIES registry.217MIT
- AlicenseNot gradedqualityCmaintenanceSLA'd EU VAT number validation for AI agents via VIES, with caching and circuit-breaking to handle flaky upstream, returning valid/invalid/unavailable responses.MIT
- FlicenseAqualityDmaintenanceEuropean business compliance suite for AI agents — 28 tools covering tax ID validation (PT, ES, FR, DE, IT, UK, NL), IBAN verification, EU VAT rates, invoice requirements, e-invoicing rules, payment terms, labor calendar helpers, VAT breakdown calculations and invoice schema validation for 18+ European countries.28
- AlicenseNot gradedqualityBmaintenanceValidates EU, UK, and AU VAT numbers against live sources and uses AI pattern analysis to detect invoice fraud.209MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a distinct primary purpose: registration, validation, rate lookup, reverse-charge certification, and full compliance analysis. There is slight overlap because reverse_charge_certificate also validates VAT IDs via VIES, but the descriptions clearly differentiate the outputs and use cases.
Most tools follow a descriptive snake_case pattern with a vat_ prefix, such as vat_number_check and vat_registration_check. reverse_charge_certificate and vat_compliance_full deviate slightly from the prefix/pattern but remain consistently readable.
Five tools is a well-scoped size for a VAT compliance server. Each tool covers a distinct compliance need without unnecessary redundancy or bloat.
The set covers the core VAT compliance workflow: registration eligibility, VAT number validation, rate lookup, reverse-charge eligibility, and a broad gap analysis. Some edge cases like reverse charge for goods or detailed place-of-supply rules are not explicitly covered, but the core domain is well served.