Brreg MCP Server
Provides access to Brønnøysundregistrene (Brreg), the Norwegian Business Registry, enabling search and retrieval of company information, subunits, roles, organization forms, municipalities, NACE industry codes, and tracking updates for Norwegian businesses.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Brreg MCP Server search for companies named 'Norsk Hydro' in Oslo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Brreg MCP Server
A Model Context Protocol (MCP) server for interacting with Brønnøysundregistrene (Brreg) API - Norwegian Business Registry.
Features
Company Search: Search for companies with various filters
Company Details: Get detailed information about specific companies
Company Roles: Retrieve roles and board members
Subunit Search: Search for business units/subunits
Subunit Details: Get detailed information about specific subunits
Organization Forms: Get organization forms and their descriptions
Municipalities: Get Norwegian municipalities and their details
Role Information: Get role types, role group types, and representatives
Updates Tracking: Get updates for companies and subunits
NACE Codes: Search and filter by NACE industry codes with hierarchical support
Error Handling: Comprehensive error handling with validation
Type Safety: Full TypeScript support with proper type definitions
Related MCP server: CompanyIQ MCP Server
Installation
Option 1: Install from npm (Recommended)
# Install globally
npm install -g brreg-mcp-server
# Or install locally in your project
npm install brreg-mcp-serverOption 2: Clone from source
# Clone repository
git clone https://github.com/david/brreg-mcp-server.git
cd brreg-mcp-server
# Install dependencies
npm install
# Build project
npm run build
# Start server
npm startDevelopment
# Run in development mode
npm run devMCP Tools
1. search_companies
Search for companies in Norwegian Business Registry.
Parameters:
name(string): Company name (free text, 1-180 characters)organizationNumber(array): Organization numbers (9 digits each)parentCompany(string): Parent company organization numberfromEmployees(number): Minimum number of employeestoEmployees(number): Maximum number of employeesbankrupt(boolean): Filter by bankruptcy statusregisteredInVAT(boolean): Filter by VAT registrationregisteredInBusinessRegister(boolean): Filter by business register statusorganizationForm(array): Organization forms (e.g., AS, ENK)municipalityNumber(array): Municipality numbers (4 digits each)industryCode(array): Industry codes (e.g., 41.109, 01.1)page(number): Page number (default: 1)size(number): Page size (default: 20)sort(string): Sort field and order (e.g., antallAnsatte,ASC)
2. get_company
Get detailed information about a specific company.
Parameters:
organizationNumber(string, required): Organization number (9 digits)
3. get_company_roles
Get all roles for a specific company.
Parameters:
organizationNumber(string, required): Organization number (9 digits)
4. search_subunits
Search for business units/subunits.
Parameters:
name(string): Subunit nameorganizationNumber(array): Organization numbersparentCompany(string): Parent companyfromEmployees(number): Minimum employeestoEmployees(number): Maximum employeesregisteredInVAT(boolean): VAT registration statuspage(number): Page numbersize(number): Page size
5. get_subunit
Get detailed information about a specific subunit.
Parameters:
organizationNumber(string, required): Organization number (9 digits)
6. get_organization_forms
Get all organization forms.
Parameters:
page(number): Page number (default: 1)size(number): Page size (default: 20)sort(string): Sort field and order (e.g., kode,ASC)
7. get_organization_forms_for_units
Get organization forms for main units.
Parameters:
page(number): Page number (default: 1)size(number): Page size (default: 20)sort(string): Sort field and order (e.g., kode,ASC)
8. get_organization_forms_for_subunits
Get organization forms for subunits.
Parameters:
page(number): Page number (default: 1)size(number): Page size (default: 20)sort(string): Sort field and order (e.g., kode,ASC)
9. get_organization_form
Get specific organization form by code.
Parameters:
organizationCode(string, required): Organization form code (e.g., AS, ENK, ASA)
10. get_municipalities
Get all Norwegian municipalities.
Parameters:
page(number): Page number (default: 1)size(number): Page size (default: 20)sort(string): Sort field and order (e.g., navn,ASC)
11. get_municipality
Get specific municipality by municipality number.
Parameters:
municipalityNumber(string, required): Municipality number (4 digits)
12. get_role_types
Get all role types.
13. get_role_group_types
Get all role group types.
14. get_role_representatives
Get all role representatives.
15. get_company_updates
Get updates for companies with optional filters.
Parameters:
date(string): Show updates from and including this timestamp (ISO-8601)updatedBefore(string): Show updates to and including this timestamp (ISO-8601)updateId(number): Show only updates from and including update ID (>= 1)organizationNumber(array): Comma-separated list of organization numbersincludeChanges(boolean): Include the changes that caused the update to be publishedpage(number): Page number (default: 1)size(number): Page size (default: 20, max: 10000)sort(string): Sort field and order (e.g., id,ASC). Only id is supported
16. get_subunit_updates
Get updates for subunits with optional filters.
Parameters:
date(string): Show updates from and including this timestamp (ISO-8601)updatedBefore(string): Show updates to and including this timestamp (ISO-8601)updateId(number): Show only updates from and including update ID (>= 1)organizationNumber(array): Comma-separated list of organization numbersincludeChanges(boolean): Include the changes that caused the update to be publishedpage(number): Page number (default: 1)size(number): Page size (default: 20, max: 10000)sort(string): Sort field and order (e.g., id,ASC). Only id is supported
17. search_nace_codes
Search NACE industry codes with hierarchical filtering support using the full SN2025 classification.
Parameters:
searchText(string): Text to search for in NACE code names, short names, codes, or notesparentCode(string): Get all child codes for a specific NACE parent code (e.g., "01.1" will return all subcategories)exactCode(string): Get specific NACE code by exact codelevel(string): Filter by NACE level (1-5). Level 1 = sections, Level 2 = divisions, Level 3 = groups, Level 4 = classes, Level 5 = national subcategoriesincludeHierarchy(boolean): Include full hierarchical path in results (default: true)includeNotes(boolean): Include detailed notes in results (default: false)
18. get_services
Get all available services from Brreg API.
Usage Examples
Search for software companies in Oslo
{
"name": "search_companies",
"arguments": {
"industryCode": ["62"],
"municipalityNumber": ["0301"],
"fromEmployees": 10,
"size": 50
}
}Get company details
{
"name": "get_company",
"arguments": {
"organizationNumber": "123456789"
}
}Get subunit details
{
"name": "get_subunit",
"arguments": {
"organizationNumber": "987654321"
}
}Get organization forms
{
"name": "get_organization_forms",
"arguments": {
"page": 1,
"size": 50
}
}Get specific organization form
{
"name": "get_organization_form",
"arguments": {
"organizationCode": "AS"
}
}Get municipalities
{
"name": "get_municipalities",
"arguments": {
"page": 1,
"size": 20,
"sort": "navn,ASC"
}
}Get company updates
{
"name": "get_company_updates",
"arguments": {
"date": "2024-01-01T00:00:00.000Z",
"size": 50,
"includeChanges": true
}
}Search NACE codes
{
"name": "search_nace_codes",
"arguments": {
"searchText": "software",
"level": "4",
"includeHierarchy": true
}
}Get NACE codes by parent
{
"name": "search_nace_codes",
"arguments": {
"parentCode": "62",
"includeNotes": true
}
}Configuration
Claude Desktop Setup
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"brreg": {
"command": "npx",
"args": ["brreg-mcp-server"]
}
}
}Or if installed globally:
{
"mcpServers": {
"brreg": {
"command": "brreg-mcp-server"
}
}
}Error Handling
The server provides comprehensive error handling:
Validation Errors: Invalid input parameters
Not Found Errors: Company or resource not found
Rate Limit Errors: API rate limits exceeded
Server Errors: Temporary server issues
Network Errors: Connection problems
Data Types
The server provides proper TypeScript types for:
Company information
Subunit data
Role information
API responses
Error responses
License
MIT License
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests
Submit a pull request
Support
For issues related to the Brreg API itself, visit Brreg's documentation.
For issues with this MCP server, please create an issue in the repository.
Available Tools
18 toolsget_companyA
Get detailed information about a specific company by organization number
Inputs: organizationNumber (required).
get_company_rolesA
Get all roles for a specific company
Inputs: organizationNumber (required).
get_company_updatesC
Get updates for companies with optional filters
Inputs: date, page, size, sort, +4 more.
get_municipalitiesB
Get all municipalities
Inputs: page, size, sort.
get_municipalityB
Get specific municipality by municipality number
Inputs: municipalityNumber (required).
get_organization_formB
Get specific organization form by code
Inputs: organizationCode (required).
get_organization_formsC
Get all organization forms
Inputs: page, size, sort.
get_organization_forms_for_subunitsC
Get organization forms for subunits
Inputs: page, size, sort.
get_organization_forms_for_unitsC
Get organization forms for main units
Inputs: page, size, sort.
get_role_group_typesB
Get all role group types
Inputs: no named parameters.
get_role_representativesB
Get all role representatives
Inputs: no named parameters.
get_role_typesB
Get all role types
Inputs: no named parameters.
get_servicesA
Get all available services from the Brreg API
Inputs: no named parameters.
get_subunitA
Get detailed information about a specific subunit by organization number
Inputs: organizationNumber (required).
get_subunit_updatesC
Get updates for subunits with optional filters
Inputs: date, page, size, sort, +4 more.
search_companiesC
Search for companies in the Norwegian Business Registry with various filters
Inputs: name, page, size, sort, +11 more.
search_nace_codesA
Search NACE industry codes with hierarchical filtering support using the full SN2025 classification
Inputs: level, exactCode, parentCode, searchText, +2 more.
search_subunitsB
Search for subunits (business units) in the Norwegian Business Registry
Inputs: name, page, size, toEmployees, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Most tools are clearly distinct, targeting different resources (companies, subunits, municipalities, roles, organization forms, NACE codes) or actions (search vs. get). However, the multiple organization-form tools (get_organization_forms, get_organization_forms_for_units, get_organization_forms_for_subunits, get_organization_form) could be slightly confusing, though their descriptions clarify the different scopes.
All tool names follow a consistent verb_noun pattern in snake_case, using 'get_' for single resource retrieval and 'search_' for query operations. There are no mixed conventions or vague verbs, making the naming highly predictable.
With 18 tools, the server is slightly on the higher end of the ideal range, but each tool serves a distinct purpose within the Norwegian Business Registry domain. The count feels justified given the variety of reference data (municipalities, organization forms, roles) and core entities (companies, subunits, updates).
The tool surface covers the main read-only workflows for the Brreg API: retrieving companies, subunits, roles, updates, and reference data. Minor gaps exist, such as no direct endpoint for listing a company's subunits, but these can be worked around with search_subunits. The inclusion of reference data and services makes the set fairly comprehensive.
Maintenance
Related MCP Connectors
Norwegian company search, accounts, roles, groups and websites from Brønnøysund, remote MCP.
Norway's company register (Enhetsregisteret) for AI: lookup, search, name resolution, key financials
Machine-verifiable Norwegian company authority: status, roles and coded signing authority.
Brønnøysund Register Centre (BRREG) MCP — Norway's official business register. Enhetsregisteret…
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables comprehensive access to the Norwegian Business Registry API for querying company information, board members, subsidiaries, organizational data, and voluntary organizations. Provides real-time access to over 1 million registered Norwegian entities with detailed corporate structure and governance data.1510 npm8MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides comprehensive Norwegian business intelligence through Brønnøysund and Statistics Norway APIs, enabling company search, financial analysis, ownership mapping, market research, and automated financial data extraction.-
- AlicenseNot gradedqualityDmaintenanceProvides access to Norway's official business registry for searching companies, looking up organizational details, and identifying company roles and sub-units. It utilizes data from Brønnøysundregistrene to enable detailed queries by industry, municipality, or organization number.9 npmMIT
- AlicenseAqualityDmaintenanceEnables direct access to Norwegian company data — lookup, search, roles, subunits, and live updates — through the free Brønnøysund Open Data API.554 npm2MIT