Skip to main content
Glama

Company profile (Brønnøysund)

get_company_profile
Read-onlyIdempotent

Resolve a 9-digit Norwegian organisation number into a company profile from Brønnøysund Enhetsregisteret, including name, organisational form, NACE codes, addresses, status, and MVA flag.

Instructions

Resolve a Norwegian organisasjonsnummer (9 digits) into a structured company profile from Brønnøysund Enhetsregisteret: display name, organisational form (AS / ENK / ASA …), NACE codes with descriptions, addresses, registration/dissolution dates, the active / dissolved status enum, the MVA-registered flag, and deduplicated person role CODES — never personal identifiers. Note the backing REST route is POST /api/v1/brreg/company-profile (org number in the JSON body), unlike the GET company siblings. For an evaluated compliance verdict, use get_company_summary instead; for the signaturrett/prokura role-code summary, the distress flags, or the annual-accounts filing status, use get_company_context instead. No sandbox mirror. Failure modes: NOT_FOUND, SCOPE_INSUFFICIENT (needs read:brreg), VALIDATION_FAILED. Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-register-search

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
org_numberYes9-digit Norwegian organisasjonsnummer (Brønnøysund Enhetsregisteret ID). Unlike the get_company_* tools, this input schema does NOT run the MOD-11 control-digit check — MOD-11 is enforced by the backing route, which returns ORG_NUMBER_INVALID_CHECKSUM (HTTP 400) when a well-formed 9-digit value fails it; correct the number rather than retrying the same one.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_metaNo
resultYesThe Brønnøysund company profile: display name, organisasjonsform, NACE codes + descriptions, addresses, registration/dissolution dates, MVA flag, and person role codes (never personal identifiers).
metadataYes
justificationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.1

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds meaningful behavioral context beyond that: the backing route is POST /api/v1/brreg/company-profile (counterintuitive for a read-only list tool), the MVA flag, the deduplication of person role CODES and never returning personal identifiers, and failure modes (NOT_FOUND, SCOPE_INSUFFICIENT, VALIDATION_FAILED). It also discloses that MOD-11 is enforced by the route and returns ORG_NUMBER_INVALID_CHECKSUM. A slight deduction because it doesn't describe pagination or detailed response shape, but the output schema exists to cover that.

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 dense but every sentence earns its place: the resolution behavior, the field list, the route difference, sibling routing, the sandbox note, failure modes, and cost are all useful. It is somewhat long and the garbled trailing text ('Call: 50 øre... Docs: https...') is noise that likely came from a corrupted prompt, which prevents a 5. The key behavioral and routing information is front-loaded, so an agent gets the gist in the first two sentences.

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 single required parameter, an existing output schema, and rich annotations, this description is largely complete. It even covers failure modes, cost, and a non-obvious route detail. It doesn't explicitly describe response pagination or the exact JSON shape, but the output schema presumably covers that, and the description already includes the most decision-relevant facts.

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?

Schema coverage is 100%, and the parameter description is unusually rich: it explains the pattern, gives an example, explicitly contrasts this tool with other get_company_* tools by stating it does NOT run MOD-11 client-side, and tells the agent what to do on ORG_NUMBER_INVALID_CHECKSUM (correct the number rather than retrying). This goes well beyond the schema's basic pattern and gives actionable guidance for the single required parameter.

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 uses a specific verb ('Resolve') plus a precise resource ('organisasjonsnummer into a structured company profile from Brønnøysund Enhetsregisteret') and enumerates the returned fields. It also differentiates this tool from get_company_summary and get_company_context by naming them and their alternate purposes, so an agent can distinguish among the get_company_* siblings.

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 explicitly states when to use get_company_profile versus get_company_summary ('evaluated compliance verdict') and get_company_context ('signaturrett/prokura role-code summary, distress flags, annual-accounts filing status'). It also flags the non-GET REST route and the absence of a sandbox mirror, which is practical routing guidance. The failure modes also help the agent decide whether this tool will work in a given context.

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