Context7
Up-to-date docs for AI agents
作者提供的说明(英文原文)
Norway's company register (Enhetsregisteret) for AI: lookup, search, name resolution, key financials
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://brreg.publifye.com/mcp在终端中运行这条命令
claude mcp add --transport http brreg https://brreg.publifye.com/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"brreg": {
"url": "https://brreg.publifye.com/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"brreg": {
"type": "http",
"url": "https://brreg.publifye.com/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://brreg.publifye.com/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过域名 publifye.pro 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(1.0.0)于上个月进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Context7, Codebase Memory, Exa
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
| Endpoint | https://brreg.publifye.com/mcp |
| Transport | Streamable HTTP |
| Auth | OAuth 2.1 + PKCE (S256), DCR open · no API keys |
| Registry | pro.publifye/brreg (server.json) |
| Product site | https://brreg.publifye.com |
| What it solves | https://publifye.com/brreg |
| Capability tools | 9 (full schemas) |
{ "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](../../docs/connect.md).
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 units | 463,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.
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.
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.
| Area | The question it answers | Tools |
|---|---|---|
| [Lookup and name resolution](tools/lookup.md) | You have a number or a name — which organisation is it? | 2 |
| [Search and structure](tools/search.md) | Which organisations match, and how do they belong together? | 2 |
| [Place and distance](tools/place.md) | Who is registered near here, and how far apart are they? | 2 |
| [Key financials](tools/financials.md) | What has it filed, and what do the figures say? | 1 |
| [Codes and freshness](tools/reference.md) | Which filter values exist, and which edition of the register is this? | 2 |
Machine-readable: [tools.json](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.
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.
// 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.
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.
entity_financialsentity_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).
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 value | What you get |
|---|---|
financials | Key figures from the latest filed annual accounts, with the year they belong to |
filings | The years actually filed — which also answers for banks and insurers, whose key figures Regnskapsregisteret does not serve |
location | The Kartverket address point of the registered address, or null with a reason |
unit | The matrikkel parcel at that address — matrikkelnummer, grunnkrets, parish and tettsted |
buildings | The 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.
match term cannot reach one either — personal-data records contribute no values to the fields match reads.[PROVENANCE.md](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
只显示了开头部分;其余内容请在仓库中阅读