Skip to main content
Glama

lookup_company

Read-onlyIdempotent

Call before onboarding a supplier or customer to confirm the legal entity exists and is active. 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; the error message includes an upgrade URL. On paid tiers, NL calls cost 5x quota units and DE calls cost 3x; all other countries cost 1x.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
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).

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety profile is covered. The description adds valuable behavioral context beyond annotations: the 402 error behavior, the 'upgrade_required' message with upgrade URL, and the 5x/3x/1x quota unit costs for paid tiers. These are operational behaviors the annotations cannot convey. Slight gap: no mention of return format or pagination, but output schema exists.

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 information-dense but somewhat long. The first sentence front-loads the core purpose. However, the country list, format specs, and tier notes are packed densely into a long block. While everything earns its place, the structure could benefit from separating the legal-entity-check purpose from the operational/tier details. It's still far above the minimum viable threshold.

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 2-param lookup tool with 100% schema coverage, an output schema, and strong annotations (readOnly, idempotent), this description is comprehensive. It covers purpose, supported scope (15 countries), error handling (402 behavior), cost implications, and when/why to invoke. There is no output schema requirement to explain return values further, and no ambiguity remains about what the tool does or how to handle edge cases.

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%, so baseline is 3. However the description adds meaningful value beyond the schema: it explains supported countries at the country-registry level (mapping country codes to actual registries like CVR, Brønnøysund, Bolagsverket), and provides tier-specific caveats for NL/DE. The 'id' parameter's format per country is well documented in the schema, but the description's registry mapping adds real semantic value beyond what the schema enum provides.

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 states a specific verb+resource ('look up basic company data from official European business registries') and clearly distinguishes from siblings. It names the fields returned (name, address, status, industry, VAT registration, founding date). The context of 'before onboarding a supplier or customer' gives clear purpose. Differentiates from sibling tools like company_enriched (this is basic data) and 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 Guidelines5/5

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

Explicitly states when to use ('before onboarding a supplier or customer to confirm the legal entity exists and is active') and implicitly differentiates from siblings like company_enriched (basic vs enriched data). Provides concrete operational guidance: 'do NOT retry on 402' and explains tier differences (paid upstream registries for NL/DE, quota costs). These are actionable usage constraints.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a clearly distinct function: address autocomplete, company lookup, enriched company data, KYB report, LEI lookup, sanctions screening, VAT validation, French history, and three discovery meta-tools. The discovery tools (list_endpoints, get_endpoint_schema, call_endpoint) form a clean trio with distinct roles. There is minor overlap between company_enriched, kyb_full, and lookup_company, but their scopes are well-differentiated in the descriptions.

Naming Consistency4/5

The naming pattern is largely consistent with noun-based descriptive names (company_enriched, lookup_company, lookup_lei, validate_vat, screen_sanctions, autocomplete_address). Three discovery tools use verb-based names (list_endpoints, get_endpoint_schema, call_endpoint), and fr_history breaks the pattern as a country-specific tool. Minor inconsistency but readable and predictable overall.

Tool Count4/5

11 tools is within a reasonable range for a data-provider server that covers 15 countries and multiple data domains (entities, sanctions, VAT, addresses, LEI). Each tool addresses a distinct need. Slightly heavy given some overlap, but the count is justified by the breadth of coverage.

Completeness4/5

The core business-intelligence surface is well covered: company lookup, enriched data, full KYB, LEI, sanctions, VAT, address autocomplete, and French history. The discovery meta-tools (list_endpoints, get_endpoint_schema, call_endpoint) elegantly bridge gaps by exposing 230+ additional endpoints. Minor gaps: no dedicated UK-specific or non-French history tool, and screening is limited to sanctions/PEP without a dedicated adverse-media tool separate from kyb_full.