mcpField
N
nordic-registry-mcp-server

nordic-registry-mcp-server

本地服务
github.com/olgasafonova商业与营销141 周前更新

关于 nordic-registry-mcp-server

nordic-registry-mcp-server 以只读方式访问挪威、丹麦、芬兰和瑞典的官方企业登记信息,适合需要核验企业状态、治理结构、签字权和申报文件的机构与分析人员。

主要功能

  1. 01搜索四个北欧国家的企业
  2. 02获取企业状态和业务详情
  3. 03查询董事会成员及企业职务
  4. 04核验法定签字权限
  5. 05访问瑞典年度报告
  6. 06批量核验挪威企业编号

适用场景

  1. 01核验许可或资助申请企业
  2. 02筛查供应商状态及破产情况
  3. 03审查董事会构成和签字权限
  4. 04根据登记信息核验企业编号清单

MCP 相关

提供 23 种工具,让 MCP 客户端查询四国公共登记 API。登记信息为只读;瑞典工具需要 OAuth2 凭据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"olgasafonova-nordic-registry": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BOLAGSVERKET_CLIENT_ID",
"-e",
"BOLAGSVERKET_CLIENT_SECRET",
"ghcr.io/olgasafonova/nordic-registry-mcp-server:1.0.2"
],
"env": {
"BOLAGSVERKET_CLIENT_ID": "<BOLAGSVERKET_CLIENT_ID>",
"BOLAGSVERKET_CLIENT_SECRET": "<BOLAGSVERKET_CLIENT_SECRET>"
}
}
}
}
启动命令docker run -i --rm -e BOLAGSVERKET_CLIENT_ID -e BOLAGSVERKET_CLIENT_SECRET ghcr.io/olgasafonova/nordic-registry-mcp-server:1.0.2
需要配置的环境变量
BOLAGSVERKET_CLIENT_ID密钥Bolagsverket OAuth2 client ID (only needed for Sweden tools)
BOLAGSVERKET_CLIENT_SECRET密钥Bolagsverket OAuth2 client secret (only needed for Sweden tools)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/olgasafonova/nordic-registry-mcp-server:1.0.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Nordic Registry MCP 服务

CI lint License CodeScene Average Code Health

这是什么?

只需几秒钟,即可核验挪威、丹麦、芬兰和瑞典公司的合法性。查询破产状态、董事会成员、签字授权和财务数据,无需在四个政府网站之间切换。

23 个工具,封装了 Brønnøysundregistrene、CVR、PRH 和 Bolagsverket 的公共 API。可与 Claude Desktop、Claude Code、Cursor 及任何 MCP 客户端配合使用。

功能:

  • 按名称搜索四个北欧国家的公司
  • 获取公司详情:状态、员工、行业、地址
  • 查询董事会成员、CEO、审计师和职位
  • 核实哪些人有权代表公司合法签字
  • 获取瑞典年度报告(årsredovisningar)
  • 批量查询,验证公司 ID 列表

不提供的功能:

  • 修改注册数据(只读)
  • 在会话之外存储或缓存个人数据
  • 收费(所有底层 API 均免费)

支持的国家

国家注册机构工具数ID 格式
挪威Brønnøysundregistrene129 位数字(例如,923609016 或 923 609 016)
丹麦CVR58 位数字(例如,10150817 或 DK-10150817)
芬兰PRH27+1 位数字(例如,0112038-9)
瑞典Bolagsverket410 位数字(例如,5560125790 或 556012-5790)

所有 API 均免费。挪威、丹麦和芬兰无需身份验证。瑞典使用 värdefulla datamängder API,需要 OAuth2 凭据(免费注册)。


可以做什么?

连接后,只需向 AI 提问:

你说……执行结果
“查找名为 Equinor 的挪威公司”搜索 Brønnøysundregistrene
“查询组织编号 923609016 的详情”返回完整公司信息
“923609016 的董事会成员有哪些?”列出董事会成员、CEO 和职位
“查找丹麦公司 Novo Nordisk”搜索 CVR 注册机构
“查询芬兰公司 Nokia”搜索 PRH 注册机构
“查询芬兰公司 0112038-9”返回 Nokia 的完整详情
“查询瑞典公司 5560125790”返回 Bolagsverket 中的公司信息
“列出瑞典公司 X 的年度报告”列出可用的 årsredovisningar

使用场景

案件处理:核验申请公司

在处理许可证申请、执照续期或补助申请时,核实申请公司是否存在且信誉良好。

You: "A company applied for an environmental permit. Org number 923609016.
      Check if they're active and who can sign on their behalf."

AI: Let me verify the company and check signing authority.
→ norway_get_company("923609016")
→ norway_get_signature_rights("923609016")

Result: Equinor ASA - Active since 1972, registered for VAT, 21,200 employees.
Authorized signatories: [Name 1] (CEO), [Name 2] + [Name 3] (joint signature).
The application signature matches an authorized signatory.
采购:签订合同前核验供应商

在授予市政合同之前,核实投标公司是否合法且未破产。

You: "We received bids from three Danish companies for the IT contract.
      CVR numbers: 10150817, 25063783, 37553472. Are they all legitimate?"

AI: I'll verify each company's status.
→ denmark_get_company("10150817")
→ denmark_get_company("25063783")
→ denmark_get_company("37553472")

Result:
- 10150817: Novo Nordisk A/S - Active, 47,000+ employees ✓
- 25063783: Mærsk A/S - Active, established company ✓
- 37553472: [Company name] - BANKRUPT ✗

Recommendation: Exclude 37553472 from consideration.
补助管理:核验非营利组织状态

在处理志愿组织的补助申请时,核实其是否已在 Frivillighetsregisteret 注册。

You: "An organization applied for cultural funding.
      They claim to be a registered non-profit. Org number 971274808."

AI: Let me check their voluntary organization status.
→ norway_get_company("971274808")

Result: Norges Røde Kors - Registered in Frivillighetsregisteret since 2009.
Organization form: FLI (Forening/lag/innretning).
Activity: Humanitarian aid and emergency response.
Confirmed as eligible non-profit organization.
监管监督:监测行业变化

跟踪受监管行业的新公司注册或状态变更。

You: "I need to monitor new companies in the financial sector.
      What relevant registrations happened this week?"

AI: Let me check recent registry updates.
→ norway_get_updates(since="2024-01-08T00:00:00Z", size=100)

Result: 12 new registrations in financial services sector:
- 3 new AS companies (aksjeselskap)
- 2 new NUF branches of foreign financial institutions
- 7 updates to existing financial companies
[List with org numbers for follow-up]
跨境协调:追踪跨国业务布局

与其他北欧机构协调时,识别公司在不同司法管辖区的业务布局。

You: "We're investigating a company that may operate across Nordic countries.
      Check if Volvo has registered entities in Norway and Denmark."

AI: Let me search both registries.
→ norway_search_companies("Volvo")
→ denmark_search_companies("Volvo")

Result: Found registered entities:
- Norway: Volvo Norge AS (org 923609016) - 450 employees, automotive
- Denmark: Volvo Danmark A/S (CVR 12345678) - 320 employees
Both are subsidiaries of Swedish parent company.
数据质量:验证登记提交信息

收到引用公司标识符的批量数据提交时,根据官方登记机构的数据进行验证。

You: "A ministry submitted a list of 50 org numbers for a new subsidy program.
      Validate which ones are current and active."

AI: I'll validate them against Brønnøysundregistrene.
→ norway_batch_get_companies([list of 50 org numbers])

Result:
- 47 companies: Active and valid ✓
- 2 companies: Marked as bankrupt - may need review
- 1 org number: Not found in registry - possibly incorrect

Flagged entries exported for manual review.
统计:按市镇分析公司构成

通过考察特定地区的企业构成,为政策分析提供支持。

You: "How many AS companies are registered in Oslo municipality?"

AI: Let me search with municipality filter.
→ norway_search_companies(query="*", org_form="AS", municipality="0301")

Result: Found 45,231 AS companies registered in Oslo (municipality 0301).
Paginated results available for detailed analysis.
尽职调查:核实董事会构成

在批准国家援助或超过门槛的合同之前,核实公司的治理情况。

You: "Check the board composition of company 914778271.
      We need this for the state aid application review."

AI: Let me retrieve their roles.
→ norway_get_company("914778271")
→ norway_get_roles("914778271")

Result: [Company name] - AS registered 2015
Board members:
- [Name 1] - Styreleder (Chair)
- [Name 2] - Styremedlem
- [Name 3] - Styremedlem
- [Name 4] - Daglig leder (CEO)
Auditor: [Audit firm name]
文档检索:获取瑞典年度报告

在处理跨境事务、审查瑞典公司时,查看可用的财务文件。

You: "A Swedish company applied for recognition in Norway.
      What financial reports are available for org 5560125790?"

AI: Let me check Bolagsverket for filed documents.
→ sweden_get_company("5560125790")
→ sweden_get_document_list("5560125790")

Result: [Company name] - Active Swedish AB
Available årsredovisningar: 8 annual reports (2016-2023)
Most recent: Financial year ending 2023-06-30, filed 2023-08-15.

快速开始

选项 1:下载二进制文件

前往 Releases,下载适用于你平台的版本。

选项 2:从源代码构建
git clone https://github.com/olgasafonova/nordic-registry-mcp-server.git
cd nordic-registry-mcp-server
go build .

需要 Go 1.24+


设置

Cursor Marketplace
/add-plugin nordic-registry
Claude Code CLI
claude mcp add nordic-registry ./nordic-registry-mcp-server
Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "nordic-registry": {
      "command": "/path/to/nordic-registry-mcp-server"
    }
  }
}

更改后重启 Claude Desktop。

无法使用? 告诉我们哪些地方不够方便——哪怕只写一句话也有帮助。


所有工具

挪威(Brønnøysundregistrene)
工具描述
norway_search_companies按名称搜索公司
norway_get_company按组织编号获取公司详情
norway_get_roles获取董事会成员、CEO 和审计师信息
norway_get_signature_rights获取签字权和代理权信息
norway_batch_get_companies一次查询多家公司
norway_get_subunits列出公司的分支机构
norway_get_subunit获取特定分支机构的详情
norway_search_subunits按名称搜索分支机构
norway_get_updates获取登记信息的最新变更
norway_get_subunit_updates获取分支机构的最新变更
norway_list_municipalities列出市镇代码
norway_list_org_forms列出组织形式代码(AS、ENK 等)
丹麦(CVR)
工具描述
denmark_search_companies按名称搜索公司(返回最匹配的单个结果)
denmark_get_company按 CVR 编号获取公司详情
denmark_get_production_units列出生产单位(P 编号),支持分页
denmark_search_by_phone按电话号码查找公司
denmark_get_by_pnumber按 P 编号获取公司

注意: 丹麦搜索只返回一个结果。大型公司通常有多个实体。如果第一个结果似乎不正确,可以尝试不同的名称,例如“[Company] Denmark”、“[Company] A/S”,或合并前的名称。

芬兰(PRH)
工具描述
finland_search_companies按名称搜索公司(支持分页,宽泛查询时使用筛选条件)
finland_get_company按企业 ID 获取公司详情

注意: “Nokia”这类常见名称会返回 900 多个结果。使用准确的法定名称(“Nokia Oyj”)、按 company_form(OY/OYJ)筛选,或按 location 筛选以缩小结果范围。

瑞典(Bolagsverket)

需要 OAuth2 凭据。设置 BOLAGSVERKET_CLIENT_ID 和 BOLAGSVERKET_CLIENT_SECRET 环境变量。

工具描述
sweden_get_company按组织编号获取公司详情
sweden_get_document_list列出年度报告(årsredovisningar)
sweden_download_document按文档 ID 下载年度报告
sweden_check_status检查 API 可用性和 OAuth2 状态

注意: 此 API 不支持按名称搜索瑞典公司,必须提供组织编号。


示例提示词

公司搜索
  • “查找名称为 Telenor 的挪威公司”
  • “搜索奥斯陆的 AS 公司”
  • “查找名称为 Carlsberg 的丹麦公司”
  • “查询芬兰公司 Kone”
  • “查找名称为 Røde Kors 的志愿组织”
公司详情
  • “获取挪威组织 923609016 的详情”
  • “查询 CVR 10150817”
  • “获取芬兰公司 0112038-9 的详情”
董事会与职务(仅限挪威)
  • “923609016 的董事会成员有哪些?”
  • “查找 Equinor 的 CEO”
  • “列出组织 914778271 的所有董事”
签字权(仅限挪威)
  • “谁有权代表公司 923609016 签字?”
  • “获取 Equinor 的签字权信息”
  • “谁拥有 914778271 的 prokura?”
分支机构
  • “923609016 有哪些分支机构?”
  • “搜索名称为 Equinor 的分支机构”
  • “列出 CVR 10150817 的生产单位”
注册信息更新(仅限挪威)
  • “自昨天以来有哪些公司发生了变更?”
  • “获取近期注册信息更新”
  • “近期有哪些分支机构发生了变更?”
批量操作(仅限挪威)
  • “查询这些公司:923609016、914778271、985399077”
  • “验证我电子表格中的这些组织编号”
  • “一次性获取多家挪威公司的详情”
参考数据(仅限挪威)
  • “列出所有挪威市镇”
  • “奥斯陆的市镇代码是什么?”
  • “AS 是什么意思?”
  • “列出组织形式代码”
电话与 P 编号查询(丹麦)
  • “查找电话号码为 33121212 的公司”
  • “查询生产单位 P 编号 1234567890”
瑞典查询
  • “获取瑞典公司 5560125790 的详情”
  • “查询 Volvo 在瑞典的组织编号”
  • “5560125790 有哪些年度报告可用?”
  • “列出瑞典公司 X 的 årsredovisningar”
  • “瑞典 API 是否正常运行?”

瑞典设置

瑞典 Bolagsverket API 需要 OAuth2 身份验证(免费)。

  1. 注册 värdefulla datamängder API(提交客户注册表)
  2. 访问开发者门户获取 OAuth2 凭据
  3. 设置环境变量:
    export BOLAGSVERKET_CLIENT_ID="your-client-id"
    export BOLAGSVERKET_CLIENT_SECRET="your-client-secret"
    

服务器启动时会记录瑞典凭据是否已配置。如果未配置,则不会注册瑞典工具。


HTTP 模式

如需远程访问或与其他工具集成:

# Start HTTP server
./nordic-registry-mcp-server -http :8080

# With authentication
./nordic-registry-mcp-server -http :8080 -token "your-secret-token"

# Full production setup
./nordic-registry-mcp-server -http :8080 \
  -token "your-secret-token" \
  -origins "https://app.example.com" \
  -rate-limit 60 \
  -trusted-proxies "10.0.0.0/8"
安全功能
  • Bearer 令牌身份验证:可通过 -token 标志或 MCP_AUTH_TOKEN 环境变量启用身份验证。如果绑定到非回环地址但未设置令牌,服务器将在启动时拒绝运行;绑定到回环地址(127.0.0.1、localhost)时,仍可在本地开发中免令牌运行。
  • CORS 保护:通过 -origins 标志限制来源(以逗号分隔)
  • 速率限制:通过 -rate-limit 按 IP 限制请求速率(每分钟请求数)
  • 受信任的代理:通过 -trusted-proxies,接受来自受信任网络的 X-Forwarded-For
  • 请求大小限制:默认 2 MB,请求正文最大 10 MB
端点

除 /health 和 /ready 探针外,所有端点均使用相同的身份验证路径:设置令牌后,访问 /、/metrics、/status 和 /tools 均需提供令牌。探针无需身份验证,方便编排器访问。

端点说明身份验证
/MCP 协议(Streamable HTTP)设置令牌后需要
/health存活检查公开
/ready就绪检查(验证 API 连通性)公开
/tools按国家列出所有工具设置令牌后需要
/status断路器统计信息设置令牌后需要
/metricsPrometheus 指标设置令牌后需要

架构

nordic-registry-mcp-server/
├── main.go                 # Entry point, HTTP/stdio transport, security middleware
├── internal/
│   ├── base/              # Shared HTTP client with resilience
│   │   └── client.go      # Connection pooling, retries, rate limiting
│   ├── errors/            # Shared error types
│   │   └── errors.go      # NotFoundError, ValidationError
│   ├── infra/             # Resilience infrastructure
│   │   ├── cache.go       # LRU cache with TTL
│   │   └── resilience.go  # Circuit breaker, request deduplication
│   ├── norway/            # Norwegian registry (Brønnøysundregistrene)
│   ├── denmark/           # Danish registry (CVR)
│   ├── finland/           # Finnish registry (PRH)
│   └── sweden/            # Swedish registry (Bolagsverket, OAuth2)
├── tools/
│   ├── definitions.go     # Tool specifications (23 tools)
│   ├── handlers.go        # MCP tool registration
│   └── registry.go        # Tool metadata types
├── metrics/               # Prometheus metrics (namespace: nordic_registry_mcp)
└── tracing/               # OpenTelemetry tracing

弹性功能

  • LRU 缓存:TTL 因端点类型而异(搜索:2 分钟,详情:5–15 分钟,文档:30 分钟,参考数据:24 小时)
  • 熔断器:连续失败 5 次后开启,恢复超时为 30 秒
  • 请求去重:相同的并发请求共用一次 API 调用
  • 速率限制:基于信号量的并发控制(15 个并发请求)
  • 带退避的重试:瞬时故障时采用带抖动的指数退避
  • 响应大小限制:API 响应为 10MB,文档下载为 100MB
  • 令牌效率:使用分页响应(默认 20 条结果),最大限度减少大模型上下文占用

文档

文档说明
设置指南安装、配置和故障排除
API 参考全部 23 个工具的完整参考,包含参数、返回值和示例
架构系统设计、请求流程、弹性模式
生产就绪性Linux 容器、Docker、Kubernetes、监控

开发

# Build
go build .

# Test
go test ./...

# Lint (requires golangci-lint)
golangci-lint run

未来愿景:与 Public 360° 集成

此服务旨在与 public360-mcp-server 协同工作。该服务为北欧公共部门组织使用的 Public 360° 文档和案件管理系统提供 AI 访问能力。

集成场景:

一名案件处理人员收到一家公司的许可申请。当前工作流程如下:

  1. 在 Public 360° 中打开案件
  2. 手动在 Brønnøysundregistrene 中查询该公司
  3. 确认该公司仍在运营且未破产
  4. 检查签署人是否拥有授权
  5. 将相关详情复制回案件

连接两个 MCP 服务后:

You: "I received permit application case 2024/12345.
      The applicant is org 923609016. Verify the company
      and check if the signature is valid."

AI: [Calls public360: sif_get_cases to get case details]
    [Calls nordic-registry: norway_get_company to verify company]
    [Calls nordic-registry: norway_get_signature_rights to check authority]

Result: Case 2024/12345 - Environmental permit application
        Applicant: Equinor ASA (923609016) - ACTIVE
        Signed by: [Name] - Authorized signatory ✓

        Recommendation: Signature is valid. Company is in good standing.

计划中的集成点:

北欧注册机构Public 360°使用场景
norway_get_companysif_get_enterprises将公司数据同步到联系人
norway_get_rolessif_get_contacts将董事会成员导入为联系人
*_search_companiessif_create_case使用经过验证的公司信息自动填充案件
sweden_download_documentsif_upload_file将年度报告附加到案件

这会将两个独立的数据源整合为一个互联的工作流,使 AI 能够在一次对话中验证外部数据并更新内部系统。

增强的注册数据(未来)

当前实现使用免费、开放的 API。通过付费服务可以获取更全面的数据:

瑞典(Bolagsverket)

当前(免费)付费服务潜力
基本公司信息董事会成员及其职务
年报(årsredovisningar)授权签字人(firmatecknare)
公司状态公司抵押(företagsinteckningar)
实时更新(而非每日批量更新)
历史董事会变更

我们目前使用的免费 värdefulla datamängder API 提供公司基本信息和年报。Bolagsverket 还提供授权签字人和公司抵押相关的其他电子服务。像 Roaring.io 这样的第三方聚合商会整合多个来源,提供丰富的数据集。

芬兰(PRH)

当前(免费)Virre 服务
基本公司详情董事会成员和董事总经理
数字财务报表(IXBRL)授权签字人
注册通知授权代理人
非数字财务报表
翻译后的商业登记簿摘录
公司章程

免费的 PRH Open Data API 提供每日更新的基本公司信息。Virre Information Service 提供董事会成员详情、签字人信息以及文件购买服务。签约客户批量访问时可享受折扣费用。

这为何重要:

挪威已通过免费的 Brønnøysundregistrene API 提供董事会成员、职务和签字权限。增加瑞典和芬兰的付费数据后,四个国家将实现一致的数据覆盖,可用于:

  • 核实谁有权签署合同
  • 尽职调查时检查董事会组成
  • 获取完整的财务文件

更多 MCP 服务

欢迎查看我的其他 MCP 服务:

服务描述Stars
gleif-mcp-server访问 GLEIF LEI 数据库。查询公司身份,验证法律实体。GitHub stars
mediawiki-mcp-server将 AI 连接到任意 MediaWiki wiki。搜索、阅读和编辑 wiki 内容。GitHub stars
miro-mcp-server使用 AI 控制 Miro 白板。创建看板、图表、思维导图等。GitHub stars
productplan-mcp-server与 ProductPlan 路线图交互。查询 OKR、创意和发布计划。GitHub stars
tilbudstrolden-mcp搜寻北欧杂货优惠。查找特价、规划餐食、跟踪开支。GitHub stars

许可证

Apache License 2.0

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。