Skip to main content
Glama
7nashinick

norwegian-data-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NORWEGIAN_DATA_MCP_CACHENoSet to 'off' to disable caching. By default, caching is enabled.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_companiesA

Search the Norwegian company register (Enhetsregisteret) by name and/or filters. Returns up to limit companies with orgnr (9-digit organisation number), organisational form, address, industry code (naeringskode, NACE), employee count, and status flags (konkurs = bankrupt, underAvvikling = being dissolved). Use when the user names a company without an orgnr or asks 'find companies that...'. If you already have an orgnr, call get_company instead. Example: name='Equinor'. Example: naeringskode='11.05' (breweries), kommunenummer='0301' (Oslo), min_employees=10.

get_companyA

Full record for one Norwegian company by its 9-digit organisation number (orgnr): registered name, business and postal address, industry codes with text, organisational form, employee count, registration dates, VAT registration, bankruptcy/dissolution status, institutional sector. Falls back to sub-unit (underenhet) lookup if the orgnr is a business location rather than a legal entity. Use search_companies first if you only have a name. Example: orgnr='923609016' (Equinor ASA).

get_company_rolesA

Board and management of a Norwegian company by orgnr: chair (styrets leder), board members, CEO (daglig leder), auditor (revisor), with names and resignation flags. Answers 'who is on the board of X', 'who runs X', 'who audits X'. Data from Enhetsregisteret; role holders can be persons or companies. Example: orgnr='923609016'.

get_company_financialsA

Latest filed annual accounts (aarsregnskap) for a Norwegian company from Regnskapsregisteret: revenue (driftsinntekter), operating profit (driftsresultat), net result (aarsresultat), total assets (sumEiendeler), equity (egenkapital), debt split, accounting period and currency. Only the most recent filed year is available; a link to the official annual-report PDF is included. Answers 'what was X's revenue/profit'. Not available for all entities (sole proprietorships may not file); a clear 'no accounts filed' answer is returned, not an error. Example: orgnr='923609016'.

get_group_structureA

Registered group structure (konsern) for a Norwegian company by orgnr: the parent and its subsidiaries as a nested tree with ownership stakes (eierandel). Answers 'what companies does X own', 'is X part of a group', 'who are X's subsidiaries'. Companies outside a registered group get a clear answer, not an error. Example: orgnr='923609016' (Equinor) returns its subsidiary tree.

get_exchange_ratesA

Daily NOK exchange rates from Norges Bank (the central bank). Pass ISO currency codes; every column is normalized to NOK per 1 unit of the currency, most recent periods business days. Use for 'USD/NOK rate', 'how has the krone moved against the euro'. For interest rates use get_key_series(series='interest_rates') instead. Example: currencies=['USD', 'EUR'], periods=30.

search_statisticsA

Search Statistics Norway's ~7,000 statistical tables by keyword. Returns table IDs with titles, time coverage, and last-updated dates. Always the first step for statistics questions unless get_key_series covers it (CPI, population, unemployment, house prices, wages, interest rates; use that instead, it is one call). After finding a table, call get_table_info to see its variables, then get_statistics to fetch numbers. Example: query='electricity prices household'. Example: query='innvandring' (Norwegian works too).

get_table_infoA

Structure of one SSB table before fetching data: its variables (dimensions), the value codes each accepts, time span, and any successor table if this one is closed. Use between search_statistics and get_statistics when you need a specific breakdown (region, industry, age group); skip it when defaults are fine (totals, recent periods). Example: table_id='07459' shows Region, Kjonn (sex), Alder (age), Tid (time) and their codes.

get_statisticsA

Fetch numbers from an SSB table as a compact CSV table. With no selection, sensible defaults apply: totals where the table allows it and the last 12 periods, good for 'recent trend' questions. For breakdowns, pass selection mapping variable codes (from get_table_info) to value-code lists; expressions allowed: ['from(2020M01)'], ['top(24)'], ['*'] (all). If the table is closed, its successor is used or suggested in hints. Example: table_id='14700' (CPI) with no selection returns the last 12 months. Example: table_id='07459', selection={'Region': ['0301'], 'Tid': ['top(5)']} returns Oslo population for the last 5 years.

get_key_seriesA

One-call shortcut for Norway's most-requested numbers, no table IDs needed: cpi (consumer price index + 12-month inflation), population, unemployment (LFS, seasonally adjusted), house_prices (existing-dwellings index), wages (average monthly earnings), interest_rates (NIBOR + Norges Bank policy rate). Returns the last periods observations. Use for 'what is inflation in Norway', 'Norway's population', 'Norwegian interest rates' instead of the search/info/fetch chain. Example: series='cpi', periods=24.

search_addressA

Search official Norwegian addresses. Returns matched addresses with coordinates (lat/lon, EPSG:4258), municipality (kommune), postal code/place, and cadastral identifiers (gardsnummer/bruksnummer, i.e. gnr/bnr), so this also resolves address to property ID in one call. Handles partial input and typos. Use for 'where is ' and as the first step before get_property. For place names that are not street addresses (mountains, lakes, farms), use get_place. Example: query='Karl Johans gate 22, Oslo'.

reverse_geocodeA

Nearest official Norwegian addresses to a coordinate. Returns addresses with distance in meters, municipality, and cadastral identifiers. Use for 'what address is at lat X, lon Y' or to anchor GPS positions. Example: lat=59.9139, lon=10.7522, radius=100.

get_propertyA

Locate a Norwegian cadastral property (matrikkelenhet) by matrikkel number: kommunenummer + gardsnummer/bruksnummer (gnr/bnr), e.g. from a search_address result. Returns the property's representation point (lat/lon) and optionally its boundary polygon (GeoJSON). NOTE: Norway's open APIs do not expose owners, buildings, or valuations; those require a licensed Matrikkel agreement, so say so rather than guessing. Example: kommunenummer='0301', gardsnummer=207, bruksnummer=100.

get_placeA

Search official Norwegian place names (stedsnavn): mountains, lakes, valleys, farms, islands, neighborhoods. Returns name, type (navneobjekttype), municipality, and coordinates. Use when the target is not a street address; for street addresses use search_address. Example: query='Galdhøpiggen'. Example: query='Preikestolen'.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.5/5.0

Scored across 14 tools

Disambiguation5/5

Every tool targets a clearly distinct resource or action, and descriptions explicitly delimit boundaries (e.g., search_companies vs. get_company, search_address vs. get_place, get_statistics vs. get_key_series). The statistics pipeline (search, table info, fetch, shortcut) and address/property tools have non-overlapping roles that an agent can follow without confusion.

Naming Consistency5/5

All 14 tool names use consistent snake_case with a verb_noun pattern (search_companies, get_company_roles, reverse_geocode, etc.). There are no mixed conventions or ambiguous prefixes.

Tool Count5/5

14 tools is within the ideal range for a multi-domain public-data server, and each tool covers a necessary read operation (search, get, or reverse lookup) for companies, statistics, addresses, or exchange rates. No tool feels redundant or out of place.

Completeness4/5

The surface covers core workflows for companies (search, full record, roles, financials, group), statistics (discovery, metadata, fetch, key series), and addresses/properties/places. Minor gaps remain, such as no shareholder/ownership lookup and only the most recent financial year, which could cause dead ends for some ownership or historical queries.

Maintenance

ActivityMaintained
ResponsivenessNo issues