Skip to main content
Glama

Search a national company register by name

search_company
Read-onlyIdempotent

Find a company by name in Norway's Brønnøysundregistrene or UK Companies House, returning matching hits with confidence scores to pick the right entity before retrieving the full report.

Instructions

Search a national company register by name, when you have a name rather than an identifier.

country="NO" searches Brønnøysundregistrene / Enhetsregisteret (brreg) for Norwegian companies — the norway company lookup tool for the norwegian business registry when the organisasjonsnummer (orgnr, org.nr) is not yet known. country="GB" is the uk company search: Companies House by company name, returning each hit's company number (company registration number, CRN).

Use it when a user gives you a company name, then call lookup_company with the id of the right hit for the full report — a search hit is deliberately thin (name, legal form, status, city) and must not be acted on directly. limit is 1-100 (default 10). Hits arrive in the register's own relevance order, so read each hit's confidence rather than assuming the first row is the best one. Zero hits is not an error: hits is [], total is 0, and hint says what to try next — Norwegian names are registered upper-case and often carry an 'AS', 'ASA' or 'NUF' suffix, and UK names a 'LIMITED', 'LTD', 'PLC' or 'LLP' one, worth dropping before concluding a company does not exist.

On error, this tool raises with the error text {"error": {"code", "message", "hint"}}. bad_request means limit was out of range or name was empty — fix and retry. unsupported_country means call list_countries first. upstream_error/upstream_timeout means the national register is unavailable; wait roughly a minute and retry at most once more.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesCompany name to search for, free text — not an identifier. Use lookup_company once you have the id of the right hit.
limitNoMaximum hits to return. 1-100, default 10; a value outside that range is a bad_request, not a silent clamp.
countryNoISO-3166-1 alpha-2 country code. 'NO' = Norway (Brønnøysundregistrene / Enhetsregisteret), 'GB' = United Kingdom (Companies House). 'UK' is not a country code here and is rejected. Call list_countries for the current set rather than hard-coding one.NO

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNoWhat to do next, e.g. 'call lookup_company with the id of the right hit'.
hitsNoBest matches, best first: always sorted by `confidence` descending. Hits that score equally keep the order the upstream register returned them in.
queryYesThe name that was searched for.
totalNoTotal matches upstream, which may exceed len(hits).
cachedNoServed from cache.
countryYesISO-3166-1 alpha-2, upper-case.
registryYesRegistry slug.
truncatedNoTrue when `total` exceeds the returned hits.
fetched_atNoUTC timestamp of the fetch.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, and the description adds substantial behavioral detail beyond them: search hits are deliberately thin, order is the register's own relevance order, zero hits returns an empty array and hint, and errors have a structured shape with retry guidance. It also notes that 'UK' is rejected and country codes should not be hard-coded, reinforcing the openWorldHint.

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 long but every sentence carries operational value. It is front-loaded with the core purpose and usage, then moves into edge cases and error handling in a logical order. No filler or tautological repetition; the length is justified by the tool's 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?

The description is complete for a search tool of this complexity. It covers return-value expectations (thin hits, confidence, relevance order), zero-hit semantics, error codes and retry policy, supported countries, and how to proceed to `lookup_company`. The presence of an output schema makes it unnecessary to document every return field, and the description still adds useful context about interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description adds meaning beyond the schema: it explains what each country code maps to, why `name` is free text rather than an identifier, the exact bounds and failure behavior for `limit`, and the presence of a `confidence` field on hits. This significantly improves the agent's ability to use the parameters correctly.

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, resource, and scope: "Search a national company register by name, when you have a name rather than an identifier." It explicitly contrasts with `lookup_company`, which is the sibling it must not be confused with, and explains the two supported country-specific registers.

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?

The description gives explicit when-to-use guidance: use it when the user provides a company name, then call `lookup_company` with the `id` of the right hit. It also covers when NOT to treat zero hits as an error, how to handle invalid input, and when to call `list_countries` first, leaving no ambiguity about tool routing.

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

Latest Blog Posts

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/foretak/registry-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server