nordic-registry-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_AUTH_TOKEN | No | Optional bearer token for authentication when running the server in HTTP mode. | |
| BOLAGSVERKET_CLIENT_ID | No | OAuth2 client ID for Sweden's Bolagsverket API. Required to enable Swedish registry tools. | |
| BOLAGSVERKET_CLIENT_SECRET | No | OAuth2 client secret for Sweden's Bolagsverket API. Required to enable Swedish registry tools. |
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| denmark_get_by_pnumberB | Get parent company for a production unit P-number. Returns the owning company's details. |
| denmark_get_companyA | Get company by 8-digit CVR number. DK prefix auto-removed. Returns summary by default; full=true for complete data with production units and owners. |
| denmark_get_production_unitsA | Get production units (P-numbers) for a Danish company by CVR. Paginated: 20 results per page by default (max 100). Use page parameter for more results. |
| denmark_search_by_phoneA | Find Danish company by phone number. +45 prefix auto-removed. Not all companies have registered phones. |
| denmark_search_companiesA | Search Danish companies by name. WARNING: Returns only ONE result (CVR API limitation). Large companies often have multiple legal entities. Try variations: "[Company] Denmark", "[Company] A/S", "[Company] DK", "[Company] Holding", or pre-merger names. If you have an 8-digit CVR number, use denmark_get_company instead. |
| finland_get_companyA | Get company by Y-tunnus (e.g., 0112038-9). FI prefix auto-removed. Returns summary by default; full=true for complete data with previous names and registry entries. |
| finland_search_companiesA | Search Finnish companies by name. Returns max 20 results per page. Common names return 900+ results. To narrow: use company_form=OY/OYJ for main companies, add location for city, or search exact name "Nokia Oyj" instead of "Nokia". If you have a Y-tunnus, use finland_get_company instead. |
| norway_batch_get_companiesA | Look up multiple companies at once (max 2000 org numbers). Returns company summaries and list of not_found entries. More efficient than individual lookups. |
| norway_get_companyA | Get company details by 9-digit org number. Returns compact summary by default; set full=true for complete data including all addresses, industry codes, and capital info. |
| norway_get_rolesA | Get board members, CEO, auditors, and other roles for a Norwegian company. Returns person names, birth dates, resignation status. For signature authority only, use norway_get_signature_rights. |
| norway_get_signature_rightsA | Get who can sign for a company (signaturrett) and prokura holders. For full board/role list, use norway_get_roles instead. |
| norway_get_subunitA | Get details for a specific sub-unit (branch office) by its org number. For listing all branches of a parent, use norway_get_subunits. |
| norway_get_subunit_updatesA | Get sub-unit (branch) registry changes since a timestamp. Not cached. For main company updates, use norway_get_updates. |
| norway_get_subunitsA | List all branches of a parent company by its org number. USE WHEN: "what branches does X have?", "list sub-units". For one specific branch by its own org number, use norway_get_subunit. To search branches by name, use norway_search_subunits. |
| norway_get_updatesA | Monitor main company registry changes since a timestamp (ISO 8601). USE WHEN: "what companies changed recently?", "registry updates". Not cached. For branch office changes only, use norway_get_subunit_updates. |
| norway_list_municipalitiesA | Get Norwegian municipality codes for filtering searches. Cached 24h. Example: Oslo = 0301. |
| norway_list_org_formsA | Get organization form codes (AS=limited, ENK=sole prop, NUF=foreign branch, etc.) with descriptions. Cached 24h. |
| norway_search_companiesA | Search Norwegian companies by name. If you have a 9-digit org number, use norway_get_company instead. Filters: org_form (AS/ENK/NUF), municipality, registered_in_vat, bankrupt, registered_in_voluntary. |
| norway_search_subunitsA | Search Norwegian branch offices by name. USE WHEN: "find branches named X" and you don't have the parent org number. Filter by municipality. For listing all branches of a known parent, use norway_get_subunits. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
This server cannot be deployed
TDQS
Scored across 19 tools
Tools are generally well-differentiated by country and resource type, with clear distinctions like norway_get_roles vs norway_get_signature_rights. However, some overlap exists between search and get tools across countries, which could cause minor confusion if an agent misinterprets the purpose of each.
All tool names follow a consistent pattern of country_prefix_verb_noun (e.g., denmark_get_company, norway_search_companies). This structured naming makes it easy to predict tool functions and navigate the set without ambiguity.
With 19 tools, the count is reasonable for covering multiple Nordic countries and various company registry operations. It might be slightly high, but each tool serves a distinct purpose, such as handling different countries or specific queries like updates and subunits, justifying the scope.
The tool set provides comprehensive coverage for company registry data across Denmark, Finland, and Norway, including CRUD-like operations (get, search), specialized queries (roles, updates, subunits), and utility functions (municipalities, org forms). No obvious gaps are present for the domain.