Skip to main content
Glama

Norwegian company local units (establishments)

get_norwegian_company_local_units
Read-only

Local units (underenheter, the Norwegian equivalent of French SIRET establishments) of a Norwegian company from the official Enhetsregisteret (Brønnøysundregistrene, NLOD 2.0), refreshed daily from the national bulk: each unit's own 9-digit orgnr, name, main activity (NACE-NO), secondary and auxiliary activities, headcount as published (effectif_publie tells whether the register recorded one), location and postal addresses, registration, activity-start and ownership-change dates, VAT registration — plus the unit count and cumulative published headcount, largest first. The bulk holds only units still registered. Legal persons only (a sole proprietorship's units carry a person's name and are refused, payment cancelled). A known legal person with no unit gets aucune_unite_locale: true. Paid via x402 ($0.01 in USDC or EURC).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes9-digit Norwegian organisasjonsnummer, no spaces, e.g. 923609016
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Behavioral transparency is strong: it discloses the official data source, daily refresh, that only still-registered units are in the bulk, the legal-person restriction, payment via x402, and the edge case where a known legal person has no units. This goes well beyond the readOnlyHint and openWorldHint annotations and helps the agent predict side effects and failure modes.

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 front-loaded with the core concept and packs a great deal of useful detail into a compact text. The first sentence is a very long enumeration of returned fields and metadata, which is dense but not wasteful. Minor structural improvement would come from splitting that sentence, but every clause earns its place.

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 tool's single required id parameter, the output schema, and the readOnly/openWorld annotations, the description covers everything an agent needs: source, scope, exclusions, edge cases, ordering, headcount semantics, and payment. There is no material gap that would cause incorrect invocation or misinterpretation.

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 the baseline is 3. The description adds meaningful parameter semantics by clarifying that the id must belong to a legal person and that sole-proprietorship calls are refused with payment cancelled. It also contextualizes api_key and x_payment by mentioning the $0.01 x402 charge and credit-payment behavior.

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 names a precise resource, 'local units (underenheter)' of a Norwegian company, and gives concrete content expectations such as orgnr, NACE activities, addresses, and headcounts. It is easy to distinguish from sibling Norwegian tools like get_norwegian_company_officers or get_norwegian_company_accounts, even without comparing schemas.

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 clearly communicates when the tool applies: for establishments of a legal-person Norwegian company. It also gives an important exclusion for sole proprietorships, whose units are refused. However, it does not explicitly name alternatives or say 'use this instead of X', so guidance about competing sibling tools is only implied.

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.

Resources