MCP server for AI agents — EU VAT rates, GDPR articles, EUR-Lex regulation search, and EU company VAT validation. Free, no API key.
Four tools with clear action verbs and reasonable descriptions (avg 140 chars). All have input schemas with type definitions and parameter descriptions. However, output schemas are entirely undocumented, LLMs cannot predict response structure. Error handling is present but generic (no recovery guidance). Parameter constraints are loose (e.g., country accepts any string despite being ISO 2-letter code). No tool annotations (readOnlyHint, etc.). Composition is sound: each tool has one responsibility, but no pagination support for potentially large result sets (search_eu_law could return 45+ regulations).
Get current VAT rates for EU member states. Includes standard, reduced, super-reduced, and parking rates.
Look up GDPR articles by number or search by keyword. Returns article summary and key points.
Search major EU regulations, directives, and decisions. Covers 45+ key EU laws including GDPR, AI Act, MiCA, DSA, DMA, NIS2, DORA, PSD2, CSRD, and more.
Validate an EU VAT number via the official VIES system. Returns company name and address if valid.
No output schemas documented. LLMs cannot predict response structure (fields, types, nesting). Forces trial-and-error parsing of text responses.
Parameter 'country' in get_vat_rates accepts any string but should be constrained to ISO 2-letter codes. No enum or regex pattern enforced. LLMs may pass invalid values.
search_eu_law returns results for 45+ regulations with no pagination, limit, or offset parameters. Large result sets will exhaust context window and degrade LLM reasoning.
Error messages are generic ('Error calling VIES API: <msg>') and do not guide recovery. No distinction between retryable (timeout) vs user-fixable (invalid VAT format) vs fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in the schema, forcing LLMs to infer safety from descriptions.