Brreg

pro.publifye由 publifye.pro 發布v1.0.0更新於 Oct 24, 2026

Norway's company register (Enhetsregisteret) for AI: lookup, search, name resolution, key financials

已驗證Streamable HTTP可網頁執行位置與生活金融商業與電商

概覽

AI 產生的概覽

託管型 MCP 伺服器,讓助理以結構化方式存取挪威企業登記冊:依組織機構號查詢、名稱解析、帶篩選的搜尋、位置與距離、關鍵財務資料。

可以做什麼
依組織機構號查詢企業並驗證檢查碼,或將名稱解析為排序後的候選,標示為唯一、歧義或未解析,可選回傳財務資料、申報年度、地址座標、地塊與建築欄位。使用法律形式、市鎮、NACE 行業代碼、部門、員工人數區間、註冊日期等以 AND 組合的篩選條件搜尋登記冊,並可用正規表達式比對名稱、地址、電子郵件、電話或網站。尋找某點或某公司半徑內註冊的企業,並測量最多 50 個地點之間的直線距離。取得關鍵財務資料、已申報年度以及挪威統計局的行業基準,並依年度索取已申報年報的限時連結。
適用情境
適合助理回答有關挪威組織的問題:透過編號或名稱辨識公司、依行業、規模或位置篩選公司、查看附近註冊了哪些企業,或取得關鍵財務資料與申報歷史。它是唯讀參考資料,不能取代官方登記冊。
執行需求
遠端 Streamable HTTP 端點,無需本機安裝。需要 Publifye 帳號和付費 Brreg 方案(Personal、Business 或 Self-hosted),首次使用時在瀏覽器中透過 OAuth 2.1 加 PKCE 登入;無需 API 金鑰。需要能存取該託管服務的網路。
安裝前請注意
透過 Stripe 以信用卡支付的付費訂閱;有每日呼叫額度與每分鐘限制。登入綁定 Publifye 帳號。它不是權威登記冊,與 Brønnøysundregistrene 無隸屬關係。不含角色、人員或所有權資料;獨資經營者的部分資訊被隱去。申報年報僅以限時掃描連結形式提供,呼叫會被記錄(但不記錄參數)。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Brreg,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/pro.publifye%2Fbrreg/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "brreg": {
      "type": "http",
      "url": "https://brreg.publifye.com/mcp"
    }
  }
}

README

Brreg — Norwegian company register MCP server for Claude, Cursor and any MCP client

Brreg gives an AI assistant Brønnøysundregistrene's Enhetsregisteret as structured data: look an organisation up by organisasjonsnummer, turn a name into candidates without a silent pick, search with filters, regular expressions or a point and a radius, find who is registered near a place and how far apart two are, and see how organisations belong together — with key financials from Regnskapsregisteret, and an industry benchmark from Statistics Norway, when you ask for them. It runs as a hosted MCP server over HTTPS.

Endpointhttps://brreg.publifye.com/mcp
TransportStreamable HTTP
AuthOAuth 2.1 + PKCE (S256), DCR open · no API keys
Registrypro.publifye/brreg (server.json)
Product sitehttps://brreg.publifye.com
What it solveshttps://publifye.com/brreg
Capability tools9 (full schemas)

Connect

jsonc
{ "mcpServers": { "brreg": { "type": "http", "url": "https://brreg.publifye.com/mcp" } } }

Claude Code: claude mcp add --transport http brreg https://brreg.publifye.com/mcp, then /mcp to sign in.

The OAuth flow runs in the browser on first use, with a Publifye account. Access is granted through that sign-in only; there is no API key to create, copy or rotate. The discovery chain is the same as for the other servers: ../../docs/connect.md.

The register

The edition the live service was serving on 2026-09-29, acquired that morning from Brønnøysundregistrene's bulk files:

Main units (enheter)1,175,793
Sub-units (underenheter)866,095
Sole proprietorships (ENK), among the main units463,827

The register is rebuilt from the full files every week. An entry Brønnøysundregistrene removes from open data is dropped within 24 hours. snapshot_status returns the age and counts of whichever edition is current, and every successful result names the edition it came from.

A number is exact; a name is not

entity_lookup takes an organisasjonsnummer, checks its checksum, and is never fuzzy.

entity_resolve takes a name and returns candidates, with resolution set to unique, ambiguous or unresolved and the order of the candidates stated. It never claims the first candidate is the organisation. Norwegian spellings are compared through one documented key — æ, ø and å folded, legal forms such as AS and ASA stripped, former names matched — so the comparison can be checked rather than trusted.

No language model is involved in answering a call. Every successful result carries the licence attribution and names the edition it came from, so an answer can be traced back to its source.

What the tools do

Every tool is documented with its exact description, annotations and input schema — 9 in all, generated from the service's own tools/list, never written by hand.

AreaThe question it answersTools
Lookup and name resolutionYou have a number or a name — which organisation is it?2
Search and structureWhich organisations match, and how do they belong together?2
Place and distanceWho is registered near here, and how far apart are they?2
Key financialsWhat has it filed, and what do the figures say?1
Codes and freshnessWhich filter values exist, and which edition of the register is this?2

Machine-readable: tools.json carries all 9 callable tools (9 capability, 0 session/cache) with full JSON Schema, plus every excluded bucket listed by name so the count is auditable.

All nine are read-only. Two are marked open-world: entity_lookup, which with live=true checks the entry against data.brreg.no, and entity_financials, which goes to Regnskapsregisteret for figures the service does not yet hold.

Four ways to narrow a search

entity_search takes at least one of query, address, website, match or a filter, and everything you give is AND'ed together.

Filters. kind, org_form, municipality, postcode, city, nace, sector, status, public_body, vat_registered, parent_orgnr, employees_min/max, registered_from/to. The values come from code_list, so a filter is a code you looked up, not a guess.

Regular expressions. match takes 1 to 4 {field, pattern} terms over activity, address, city, email, name, phone or website. A pattern is RE2, at most 200 bytes, matched case-insensitively against the normalised field value — NFC, lower-cased, whitespace-collapsed and truncated to 256 bytes, so a pattern anchored deep into a long activity text may find nothing — and you anchor it yourself: ^post matches at the start, an unanchored pattern matches anywhere, and . tests that the field is present at all. One pattern per field; an invalid, over-long, over-complex or empty-string-matching pattern rejects the whole call with invalid_filter before any work is done. snapshot_status lists the fields the installed edition can match, in match_fields.

jsonc
// generic company inboxes in a given industry{ "nace": "94.91", "match": [ { "field": "email", "pattern": "^(post|info|kontakt|firmapost)[.0-9]*@" } ] }

A point and a radius. lat, lon and radius_km — all three or none — list the organisations whose registered address falls inside the circle, nearest first, each with distance_km and the address point it was measured from. Give a name query as well and the order stays relevance, with the radius acting as a filter. The radius is at most 10 km on its own, or 50 km together with another filter, and the centre must fall within latitude 57.5 to 81.5 and longitude 4 to 32.

The point is the Kartverket address point of the registered address — the business address for a main unit, the location address for a sub-unit. It is not a building footprint and not necessarily where the work is done. Sharing a point is the norm rather than the exception — an accountant's office, a shared business park — so each result says how many records share its point. Addresses given as c/o, post boxes, foreign addresses and addresses that do not match the address register get no point and never appear in a radius search.

Cursor. Paging has no depth limit: follow the cursor to the end of the result set. offset is a first-call convenience only, capped at 10,000.

Near a place, and how far

entity_nearby lists the organisations registered within a radius of a point, nearest first. The centre is either lat and lon or an orgnr — that organisation's own registered address, so "who is near this company" is one call; the anchor itself is left out of its results. The same caps apply as for a radius search: 10 km on its own, 50 km with another filter.

entity_distance measures from one place to up to 50 others and answers nearest first. A place is an orgnr or a lat/lon pair. The number is the straight-line distance between two registered address points — not a driving or walking distance and not a travel time; across a fjord the road can be many times longer. A place with no usable point is still answered, with located: false and the reason, never silently dropped.

Money: entity_financials

entity_financials is the tool for figures. include chooses key_figures (the default), filings — the years actually filed, which also answers for banks and insurers, whose key figures Regnskapsregisteret does not serve — and sector_benchmark, which sets the figures against Statistics Norway's statistics for the industry and size band. The benchmark is per industry, never per company, and names the level that answered. Figures are fetched from Regnskapsregisteret only when this tool asks, then stored; a year already held is not fetched again. document_year hands over that year's filed accounts as an expiring link (see below).

What a lookup can add

entity_lookup returns the register entry. Ask for more in fields — financials and filings are still accepted here, fetched only when asked for, though entity_financials is the front door for them:

fields valueWhat you get
financialsKey figures from the latest filed annual accounts, with the year they belong to
filingsThe years actually filed — which also answers for banks and insurers, whose key figures Regnskapsregisteret does not serve
locationThe Kartverket address point of the registered address, or null with a reason
unitThe matrikkel parcel at that address — matrikkelnummer, grunnkrets, parish and tettsted
buildingsThe existing buildings at that address, when one of them is not a home

document_year returns that year's filed annual accounts as an expiring private link — a scanned image with no text layer, not structured figures, and not a second route to them. The filing itself never travels in an MCP response: what comes back is a link, a size, a checksum and an expiry.

unit and buildings describe the parcel and the buildings at the registered address. They are not a statement about property the organisation owns or occupies, and there is no owner data anywhere in the service.

What it does not do

  • No roles or persons — no board members, managing directors or owners.
  • Not the authoritative register. Brreg is operated by Publifye AS and is not affiliated with Brønnøysundregistrene. For anything legally binding, use the official record at https://virksomhet.brreg.no.
  • Not a reidentification tool. It is a register of organisations and cannot be used to look people up; there are no address-only lookups of individuals.
  • No bulk export. A search answers a page at a time, followed by cursor; there is no download of the register.
  • Sole proprietorships are held back. E-mail and phone numbers, former names and activity text are not shown; they get no map point, no parcel and no buildings; and a search without a name never lists them. A match term cannot reach one either — personal-data records contribute no values to the fields match reads.
  • No structured annual accounts. Key figures and the list of filed years are structured data; the accounts themselves are not. A filed year can be handed over as a scanned copy on request, and a scan is where it ends — there are no machine-readable notes, line items or auditor's reports.
  • No property ownership. Nothing from grunnboken; the parcel is the one at the registered address.

Data and licence

PROVENANCE.md records each dataset, how it reaches the service, how fresh it is, and what is withheld. Two licences apply, and a result carries the ones its own content needs.

Enhetsregisteret and Regnskapsregisteret are open data from Brønnøysundregistrene under the Norwegian Licence for Open Government Data (NLOD 2.0). Every successful result carries the attribution the licence asks for:

Inneholder data under Norsk lisens for offentlige data (NLOD) tilgjengeliggjort av Brønnøysundregistrene.

Address points, parcels and buildings come from Kartverket's Matrikkelen under Creative Commons Attribution 4.0 (CC BY 4.0). A result that carries a coordinate or a distance carries the Kartverket attribution too, and says what Publifye changed — the points were matched to each organisation's registered address and do not show where a business physically operates. A result that carries a parcel or buildings also carries the private-register notice that utleveringsforskriften § 5 tenth paragraph requires:

Opplysningene utleveres fra et privat register (utleveringsforskriften § 5 tiende ledd).

The same regulation's third paragraph forbids using information from grunnboken and matrikkelen for advertising or marketing without the consent of the party it concerns. That applies to you as a caller, not only to us.

Industry benchmarks come from Statistics Norway (SSB) tables 12910 and 12936 under CC BY 4.0. A result that carries a benchmark carries SSB's attribution block beside the NLOD one.

Your questions

See DATA-HANDLING.md for what is logged about a call — never its arguments — and what leaves the service on your behalf.

Limits

Daily callsa per-account allowance set by the plan, reset at midnight UTC
Key financialsup to 30 fresh fetches from Regnskapsregisteret per minute per account; beyond that, figures already fetched or a note saying when to retry
Filed documentsup to 3 fresh document fetches per minute per account; a link lives 15 minutes, and a filing over 40 MiB is not relayed — the answer names the open source URL instead
Response sizeabout 24 KiB by default, adjustable from 4 to 48 KiB; longer results continue with a cursor valid for 15 minutes
Radiusat most 10 km on its own, 50 km together with another filter
Search depthnone — a cursor pages to the end of the result set; offset skips at most 10,000 on the first call

Plans

Access needs a Brreg plan on a Publifye account. The current plans:

PlanPriceDaily tool calls
PersonalNOK 49/month or NOK 490/year, incl. VATup to 200
BusinessNOK 480/month or NOK 4,800/year, excl. VAT (NOK 600 / NOK 6,000 incl. 25% VAT)up to 2,500
Self-hostedin development, by agreement — NOK 9,890/year excl. VAT; request a quoteno daily quota

Payment is by card at checkout, through Stripe. Plans and prices can change; the current ones are always on https://brreg.publifye.com, and where this page and the site differ, the site is right.

來源:services/brreg/README.md,提交 2d654d5

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v1.0.0最新Sep 23, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分