Skip to main content
Glama

nordic-data

Server Details

Company, KYB, VAT, sanctions, LEI and address data for 15 EU countries.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Mnymann/nordic-data-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 8 of 8 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: address autocomplete, basic company lookup, enriched company data, French history timeline, full KYB report, LEI lookup, sanctions screening, and VAT validation. There is some thematic overlap among company tools, but they operate at different levels of detail and serve different needs.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., autocomplete_address, lookup_company, validate_vat), but company_enriched, kyb_full, and fr_history deviate by using noun-based or abbreviation styles. The pattern is mostly predictable and still readable.

Tool Count5/5

With 8 tools, the count is well-scoped for a data service covering company information, addresses, sanctions, VAT, and LEI. Each tool provides a specific, valuable operation without redundancy or bloat.

Completeness4/5

The tool set covers core data needs (company lookup, enrichment, KYB, addresses, sanctions, VAT, LEI) but lacks a general company search by name and tools for specific regions beyond France. Minor gaps exist, but the overall surface is sufficient for most use cases.

Available Tools

8 tools
autocomplete_addressA
Read-onlyIdempotent
Inspect

Address autocomplete using each country's authoritative register: DAWA (DK), Kartverket (NO), BAN (FR official), MML (FI), and Nominatim (others). Returns ranked address suggestions with coordinates. Supports 15 countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Tier note: NL and DE require a Starter+ subscription — free-tier API keys receive HTTP 402 'upgrade_required'; do NOT retry on 402.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPartial address — street name, postcode, city, or any combination. Min 2 characters.
countryYesISO 3166-1 alpha-2 country code, lowercase.

Output Schema

ParametersJSON Schema
NameRequiredDescription
suggestionsNoRanked address candidates, best match first.
Behavior5/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint) already indicate safe, idempotent read. Description adds key behaviors: returns ranked suggestions with coordinates, covers 15 countries, and discloses subscription limitation for NL/DE with 402 error handling. No contradictions.

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?

Compact paragraph with clear flow: data source claim, output description, supported countries list, and critical tier note. Every sentence adds value with no redundancy or weak language.

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?

Given the complexity of multi-country autocomplete and presence of an output schema, the description covers sources, countries, output type (ranked with coordinates), and error handling for upgraded subscriptions. Could mention pagination or rate limits but overall sufficient for agent usage.

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?

Input schema already documents both parameters (query and country) with 100% coverage. Description adds minimal extra semantics beyond schema, such as clarifying query is partial address and country is ISO alpha-2 lowercase. Baseline 3 is appropriate as schema carries the burden.

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?

Clearly describes the tool as an address autocomplete using authoritative registers per country. Distinguishes itself from sibling tools (all company/KYB/sanctions/VAT related) by focusing on address lookup with specific country-level data sources.

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?

Explicitly states when to use (address autocomplete), lists supported countries, and provides a critical usage constraint: NL/DE require a Starter+ subscription and 402 errors should not be retried. Lacks explicit when-not-to-use or alternatives, but siblings are unrelated, so context is clear.

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

company_enrichedA
Read-onlyIdempotent
Inspect

Enriched company data: basic registry data + DAWA-validated address with lat/lng + industry statistics (DST for DK, SSB for NO, etc.) + Wikidata enrichment (website, employees, CEO, ticker, logo, Wikipedia URL). One call, multiple sources. Supports 15 countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Tier note: NL and DE use paid upstream registries — free-tier API keys receive HTTP 402 'upgrade_required'; do NOT retry on 402. On paid tiers, NL costs 5x quota and DE costs 3x.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNational company identifier — same format as lookup_company.
countryYesISO 3166-1 alpha-2 country code, lowercase.

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressNoDAWA-validated address with lat/lng (or country equivalent).
registryNoSame shape as lookup_company output.
wikidataNoPublic profile from Wikidata.
industry_statsNoNational industry statistics (DST for DK, SSB for NO, etc.).
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as true/true/false, indicating a safe, idempotent read operation. The description adds behavioral details beyond annotations: it explains the multi-source aggregation, the specific data sources (DAWA, DST, SSB, Wikidata), and the error handling for paid upstream registries (HTTP 402). This provides useful context that annotations alone do not cover.

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 four sentences, each adding value: first sentence lists data types and sources, second emphasizes efficiency, third enumerates countries, fourth provides a critical usage note. It is front-loaded with the main purpose. Some minor redundancy (e.g., 'One call, multiple sources' is already implied) but overall concise and well-structured.

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?

Given the tool has an output schema (so return values are documented separately), the description covers the key aspects: what data is aggregated, which countries are supported, and a notable error handling case (402 on NL/DE). It does not mention rate limits or authentication requirements, but annotations cover safety and idempotency. For a read-only data retrieval tool with good schema support, the description is sufficiently complete.

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?

Input schema has 100% description coverage: 'id' is described as 'National company identifier — same format as lookup_company' and 'country' as 'ISO 3166-1 alpha-2 country code, lowercase.' The description adds a cross-reference for 'id' to the sibling tool 'lookup_company', which aids understanding. Baseline is 3 due to high schema coverage, but the cross-reference and clarity justify a 4.

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 explicitly states 'Enriched company data' and enumerates the specific data types included (basic registry, validated address, industry statistics, Wikidata enrichment). It distinguishes from the sibling tool 'lookup_company' by emphasizing the multi-source aggregation and broader scope. The purpose is clear and unambiguous.

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 context for use: 'One call, multiple sources' implies this tool is for comprehensive data retrieval. It also includes a critical usage note about paid tiers for NL and DE, advising against retrying on HTTP 402. However, it does not explicitly state when to use this versus alternative sibling tools like 'lookup_company' or 'kyb_full', so usage guidance is present but not exhaustive.

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

fr_historyA
Read-onlyIdempotent
Inspect

French company history timeline. Returns one event per change to the company's name, activity (NAF code), status (active/closed), legal form, or social-economy flag, derived from INSEE Sirene 3.11's bitemporal periodesUniteLegale array. Includes 'initial:' events that show the state at company creation (date, name, NAF code, etc.). Input: 9-digit SIREN number. Cost: 1 quota unit; free tier supported (France is not tier-gated, unlike NL and DE). Cache: 24h server-side. Errors: 400 invalid_id_format (not 9 digits), 403 non_diffusible (SIREN exists but is privacy-protected under art. R123-232-1), 404 not_found, 503 upstream_unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit French SIREN number. Examples: 652014051 (Carrefour), 775670417 (LVMH). No spaces or punctuation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of history events derived.
sigleNoAcronym / short name, if any.
sirenNo9-digit SIREN echoed back.
eventsNoChronologically ordered events. Each event has 'initial:<field>' type for the baseline period or a plain field name for subsequent changes.
sourceNoUpstream data source — 'api.insee.fr'.
fetchedAtNoISO-8601 timestamp when the data was fetched upstream.
sourceNoteNoProvenance note describing the upstream API and field set used.
periodCountNoNumber of bitemporal periods returned by INSEE.
dateCreationNoISO-8601 date the legal entity was created.
categorieEntrepriseNoINSEE company size category: PME, ETI, GE.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. Description adds behavioral details: cache duration, quota cost, error conditions, and data source (INSEE Sirene bitemporal array). No contradictions.

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?

Description is somewhat verbose but well-structured, each sentence provides distinct information. Could be slightly shortened without losing clarity, but overall efficient.

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?

Given the presence of an output schema (not shown but exists), the description adequately covers purpose, input, errors, caching, and data scope. It explains the types of events ('initial:' fields) and underlying array, providing sufficient context for an agent.

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 covers the parameter with description and pattern (100% coverage). Description adds value with concrete examples (Carrefour, LVMH) and explicit formatting rules (no spaces/punctuation).

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

Purpose4/5

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

Description clearly states it provides a timeline of French company history events, covering changes to key attributes. It does not explicitly differentiate from sibling tools like lookup_company or company_enriched, but the purpose is specific and well-defined.

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

Usage Guidelines3/5

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

Description includes input format, cost, cache, and error codes, providing some guidance. However, it lacks explicit when-use vs alternatives (e.g., when to use history vs current snapshot), so usage context is partial.

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

kyb_fullA
Read-onlyIdempotent
Inspect

Full Know-Your-Business master report for a company across 15 EU countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Aggregates 9 sections: identity, registered address (geocoded), key persons & directors, financial statements, official filings, LEI + corporate ownership, VAT registration, sanctions + PEP screening, adverse media (GDELT 2.0), and a composite risk score. Single call. Cold cache typically completes in 10-15s; warm cache returns in <100ms. Cached 6h on success, 60s when partial. Partial responses: if any of the 9 sections time out, the report still returns with 'truncated: true' and 'sectionsUnavailable: [{section, reason}]' — caller can retry in 60s for a complete report. Tier note: NL and DE use paid upstream registries — free-tier API keys receive HTTP 402 'upgrade_required'; do NOT retry on 402. On paid tiers, NL costs 5x quota and DE costs 3x.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNational company identifier — same format as lookup_company (e.g. DK CVR 8 digits, NO orgnr 9 digits).
countryYesISO 3166-1 alpha-2 country code, lowercase.
Behavior5/5

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

Beyond annotations (readOnlyHint, idempotentHint), the description details performance (cold 10-15s, warm <100ms), caching durations (6h success, 60s partial), partial response format (truncated: true, sectionsUnavailable), and tier restrictions (402 error, quota multipliers). No contradictions with annotations.

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?

Information is front-loaded with purpose, then sections, performance, caching, partial responses, and tier notes. Every sentence is informative with no redundancy. Appropriate length for the complexity.

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?

Despite no output schema, the description fully explains what the report contains (9 sections), response behavior (truncated, sectionsUnavailable), performance characteristics, and error handling. Enough for an agent to use the tool 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 covers 100% of parameters. Description adds value by listing the 15 supported country codes and clarifying that the id format matches lookup_company, providing context beyond the schema's enum and description.

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 produces a 'Full Know-Your-Business master report' and lists the 9 specific sections aggregated. It distinguishes from siblings like lookup_company and screen_sanctions by offering a comprehensive single-call report.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: single call vs. individual tools, partial response retry logic, and specific warnings for NL and DE paid tiers (do not retry on 402). Also clarifies caching behavior and result availability.

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

lookup_companyA
Read-onlyIdempotent
Inspect

Look up basic company data (name, address, status, industry, VAT registration, founding date) from official European business registries. Supports 15 countries: DK (CVR), NO (Brønnøysund), SE (Bolagsverket), FI (YTJ/PRH), IE (CRO), UK (Companies House), FR (INSEE Sirene), DE (Handelsregister), CZ (ARES), PL (KAS+KRS), LV (Uzņēmumu reģistrs), EE (Ariregister), NL (KvK), BE (KBO), LU (RCSL). Tier note: NL and DE use paid upstream registries (KvK and Handelsregister). Free-tier API keys will receive HTTP 402 with error 'upgrade_required' — do NOT retry on 402; surface the upgrade URL from the error message to the user. On paid tiers, NL calls cost 5x quota units and DE calls cost 3x; all other countries cost 1x.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNational company identifier. DK=CVR (8 digits), NO=orgnr (9), SE=orgnr (10), FI=Y-tunnus (NNNNNNN-D), IE=CRO (1-7), UK=8 chars, FR=SIREN (9), DE=HRB number, CZ=IČO (8), PL=NIP (10) or KRS (10), LV=11 digits, EE=8 digits, NL=KvK (8 digits), BE=BCE/KBO (10 digits), LU=RCSL (B + digits).
countryYesISO 3166-1 alpha-2 country code, lowercase. One of: dk, no, se, fi, ie, uk, fr, de, cz, pl, lv, ee, nl, be, lu.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoNational company identifier as supplied.
vatNoVAT registration metadata (number, registered flag).
nameNoRegistered legal name.
sourceNoUpstream registry name (CVR, Brønnøysund, etc.).
statusNoRegistry status, e.g. active, dissolved, bankrupt.
addressNoRegistered address as returned by the source registry.
countryNoISO 3166-1 alpha-2 country code (lowercase).
foundedNoISO-8601 founding date.
industryNoIndustry classification (NACE / national code + label).
Behavior4/5

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

Annotations already indicate the tool is read-only and idempotent. The description adds valuable behavioral context: HTTP 402 handling for free-tier NL/DE requests, cost quota differences, and that it uses official registries. No rate limits or pagination details are given, but the added context is significant.

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 moderately concise; it front-loads the core purpose and then adds necessary tier details. It could be tightened slightly but is well-organized and easy to parse.

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?

Given the output schema exists (not shown), the description covers all key aspects: purpose, supported countries, parameter format hints, free-tier restrictions, and error handling. It is complete enough for an agent to correctly invoke the tool.

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 coverage is 100% with detailed parameter descriptions for 'id' (formats per country) and 'country' (enum). The description does not add significant new semantics beyond the schema; it only provides tier context for certain countries, which is already inferable.

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 looks up basic company data from official European registries, lists the fields (name, address, etc.) and the 15 supported countries, making the purpose very specific and distinct from siblings like company_enriched or kyb_full.

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 guidance on when to use the tool (for basic company data from 15 countries) and includes important usage notes like 'do NOT retry on 402' and cost multipliers for paid tiers. However, it does not explicitly contrast with sibling tools to help the agent choose between them.

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

lookup_leiA
Read-onlyIdempotent
Inspect

Look up a Legal Entity Identifier (LEI) via GLEIF — the global standard for entity identification. Returns legal name, registered address, status, parent + ultimate parent relationships, and child entities (subsidiaries). Also supports reverse lookup from a national company number to LEI across 15 countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Tier note (reverse mode only): NL and DE use paid upstream registries — free-tier API keys receive HTTP 402 'upgrade_required'; do NOT retry on 402.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNational company ID. Required when mode='reverse'.
leiNo20-character ISO 17442 Legal Entity Identifier. Required when mode='lei'.
modeYes'lei' = look up by LEI directly. 'reverse' = look up LEI from national company number.
countryNoISO 3166-1 alpha-2 country code, lowercase. Required when mode='reverse'.
include_relationshipsNoIf true, also fetch parent and child entities. Only applies when mode='lei'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leiNo20-character ISO 17442 identifier.
statusNoISSUED / LAPSED / RETIRED / etc.
legal_nameNo
registrationNoGLEIF registration metadata (initial date, last update, status).
legal_addressNo
relationshipsNoOnly present when include_relationships=true.
headquarters_addressNo
Behavior5/5

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

Discloses behavioral traits beyond annotations: returns relationships, supports reverse lookup across 15 countries, and explains 402 behavior. Annotations already indicate read-only, idempotent, non-destructive; description adds valuable nuance without contradiction.

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 slightly verbose but well-organized: purpose first, then data returned, then modes, then a critical note. Every sentence provides useful information; no filler.

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 tool with 5 parameters (1 required), 100% schema coverage, and output schema present, the description adequately covers usage, modes, return values, and error handling. No gaps remain.

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?

Input schema has 100% coverage, so baseline is 3. Description adds value by explaining the reverse lookup scope (15 countries), the tier-dependent behavior for NL/DE, and the conditional nature of include_relationships (only applies when mode='lei').

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?

Clearly states the tool looks up a Legal Entity Identifier (LEI) via GLEIF and lists specific data returned (legal name, address, status, parent/child relationships). Distinguishes from siblings on the same server (e.g., lookup_company, company_enriched) by focusing on the global LEI standard.

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

Usage Guidelines5/5

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

Explicitly describes two modes (lei and reverse) with required parameters for each. Provides critical guidance: a tier note warns that NL and DE use paid upstream registries and advises against retrying on HTTP 402, preventing wasted API calls.

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

screen_sanctionsA
Read-onlyIdempotent
Inspect

Screen one or more names against UN, EU, OFAC and PEP sanctions lists (768K+ entries via OpenSanctions). Returns match scores with source attribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
fuzzyNoEnable fuzzy matching. Default true.
namesYesArray of person or company names to screen. Max 1000 names per call.
min_scoreNoMinimum fuzzy match score, 0-1. Default 0.7. Lower values return more (lower-confidence) matches.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNoOne entry per input name, in submission order.
checked_atNoISO-8601 timestamp of the screening.
Behavior4/5

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

Beyond annotations (readOnly, idempotent), the description adds the data scale (768K+ entries) and return format (match scores with source attribution), though does not cover edge cases or detailed behavior.

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 remarkably concise: two sentences front-load the core purpose and add relevant context (data source, return format) without superfluous 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?

Given the presence of an output schema (not shown but confirmed), the description provides sufficient context for usage understanding, though it could hint at output structure or score interpretation.

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?

All three parameters are fully described in the schema (100% coverage), and the description adds no further parameter-specific context, so baseline score applies.

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 screens names against specific sanctions lists (UN, EU, OFAC, PEP) via OpenSanctions, distinguishing it from sibling tools like company_enriched or validate_vat.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives, though the context of sibling tool names implies its use for sanctions screening vs. other business data lookups.

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

validate_vatA
Read-onlyIdempotent
Inspect

Validate a VAT registration number against the official EU VIES service (or HMRC for GB). Returns validity status, registered name, and registered address.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesISO 3166-1 alpha-2 country code, UPPERCASE. Use GB for the United Kingdom (HMRC), not UK. Supports all EU member states plus GB and NO.
vat_numberYesVAT number WITHOUT country prefix — just the digits/characters. Example: for DK29403473, pass '29403473'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoRegistered company name, if disclosed by the source.
validNoTrue if VIES / HMRC confirms the number is registered and active.
sourceNoEither 'VIES' or 'HMRC'.
addressNoRegistered address, if disclosed.
countryNoCountry code echoed back (uppercase).
checked_atNoISO-8601 timestamp of the validation.
vat_numberNoSubmitted VAT number (without country prefix).
Behavior4/5

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

The description adds useful context beyond annotations: it specifies the official service used (VIES/HMRC) and the return fields (validity, name, address). No contradictions with readOnlyHint and idempotentHint. It could mention error handling but is still strong.

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 two sentences, concise and front-loaded. Every sentence earns its place: first explains the action, second explains the return. 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?

Given that an output schema exists, the description adequately summarizes return values. Parameters are fully described. Minor missing details (e.g., error handling, rate limits) but overall complete for a validation tool with good annotations.

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 has 100% description coverage, and the description adds a valuable example for vat_number (without country prefix). It also clarifies the country code format (UPPERCASE, GB for UK). This adds meaning 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 clearly states the verb 'Validate', the resource 'VAT registration number', and the specific service (EU VIES or HMRC for GB). It also distinguishes itself from siblings like autocomplete_address and lookup_company, which do different things.

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

Usage Guidelines3/5

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

The description implies when to use (to validate VAT numbers) but does not provide explicit guidance on when not to use or compare to siblings. No exclusions or alternatives are mentioned.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.