内容
# 数据挪威
**通过 [data.norge.no](https://data.norge.no) 查找和获取挪威公共数据 — 直接从 Claude Code 获取。**
问问自己“我在哪里可以找到关于这个的数据?” — 让 Claude 为你查找。这是一个小型 Claude Code **插件**,包含两个部分,它们共同工作:
- 🔎 一个 **`/查找数据源`-命令/技能**,在共同数据目录中迭代搜索,找到与主题相关的公共数据集和 API;
- 🧰 一个 **MCP 服务器**,提供搜索、获取元数据和下载数据等工具。
它不需要 **任何 API 密钥**,几乎不需要设置,因为 data.norge.no 背后的 API 是完全开放的。并且它**始终提供许可证和署名要求**,以便在需要时对源进行署名。
> **英文原文:** 一个 Claude Code 插件,用于查找和获取挪威开放政府数据,来自 data.norge.no。包含一个 `/查找数据源` 技能(迭代数据源发现)和一个 MCP 服务器(搜索/元数据/下载)。无需 API 密钥。始终显示许可证和所需署名。参见下面的工具表格和 *署名* 部分。
---
## 开始使用
### 选项 A — 作为插件(推荐:命令 + MCP 合一)
在 Claude Code 中:
```text
/plugin marketplace add tenki-labs/datanorge-mcp
/plugin install datanorge@datanorge-mcp
```
这将连接 `/查找数据源` 技能和 MCP 工具。如果需要,请重新启动 Claude Code。唯一的要求是 **Node.js 18+**。
### 选项 B — 仅 MCP 服务器(不含技能)
如果您只想要工具,直接从 GitHub 获取,无需克隆或 npm 发布:
```bash
claude mcp add datanorge -- npx -y github:tenki-labs/datanorge-mcp
```
### 选项 C — 从源代码(开发)
```bash
git clone https://github.com/tenki-labs/datanorge-mcp.git
cd datanorge-mcp
npm install # 也会通过 "prepare" 进行构建
```
在目录中打开 Claude Code(会自动获取捆绑的 [`.mcp.json`](.mcp.json)),或显式注册:`claude mcp add datanorge -- node /绝对路径/dist/index.js`。
---
## 使用方法
像平常一样用挪威语提问 — 技能会触发类似的问题:
- *“我在奥斯陆哪里可以找到空气质量数据?”*
- *“有没有关于电动汽车充电站的开放数据?”*
- *“是否有关于每个市镇人口的官方统计数据?”*
… 或者直接使用命令:
```text
/查找数据源 人口 每个市镇
```
Claude 会迭代搜索、完善搜索、获取详细信息,并呈现一个包含来源的简短列表 — **包括如何署名每个来源**。
### 工具(MCP)
| 工具 | 功能 |
|---|---|
| `search_datasets` | 在数据集目录中搜索 |
| `get_dataset` | 完整的元数据 + 下载链接 + **许可证/署名** |
| `search_apis` | 在 API 目录中搜索(SSB、Kartverket、MET 等) |
| `get_api` | 一个 API 的端点 URL |
| `fetch_data` | 获取实际数据(CSV/JSON/XML/GeoJSON) |
典型流程:**搜索 → 获取数据集 → 获取数据**。
---
## 署名 / 属性
这是很重要的,工具会自动帮助您做到这一点。
当您使用您在这里找到的数据时,您有义务根据 **数据集的许可证** 提供来源 — 而不是 data.norge.no。`get_dataset` 和 `get_api` 因此始终显示一个 **“署名 / 属性”部分**,其中包含许可证和预制的来源引用:
- **NLOD** (挪威公共数据许可证) — **需要署名**:
> 包含在挪威公共数据许可证(NLOD)下的数据,由 *{发布者}* 提供。
- **CC BY 4.0** 等 — **需要署名**:
> “*{标题}*” 由 *{发布者}* 提供,许可证为 CC BY 4.0。来源:*{链接}*。
- **CC0 / 公共领域** — 不需要署名,但通常建议链接到来源。
- **未明确许可证** — 在使用前请检查来源页面的条款。
如果您在报告、备忘录或应用程序中进一步处理数据:**请附上署名** — 不要只是提及它的存在。您也可以链接到 data.norge.no 上的数据集。
---
## 工作原理
服务器与两个开放的、无身份验证的 FDK 端点通信:
- **搜索** — `POST https://search.api.fellesdatakatalog.digdir.no/search/{type}`
- **资源** — `GET https://resource.api.fellesdatakatalog.digdir.no/v1/{type}/{id}`
`fetch_data` 然后直接从目录指向的分布/端点 URL 下载(这些通常位于发布者自己的网站上,例如 SSB、Kartverket、Statens vegvesen)。
### 限制
- **速率限制:** 搜索 API 允许 ~10 次请求/分钟。服务器在 HTTP 429 时自动重试。
- **下载限制:** `fetch_data` 默认读取最大 256 KB(高达 5 MB 通过 `maxKilobytes`)。二进制内容仅返回元数据。
- **语言:** 挪威语的搜索词最有效;结果在可用时包括 `nb`/`nn`/`en`。
---
## 开发
```bash
npm install # 安装 + 构建
npm run watch # 更改时构建
npm run smoke # 针对实时 API 进行端到端 MCP 检查
npm run inspector # 打开 MCP Inspector 连接到服务器
```
结构:
[`src/index.ts`](src/index.ts) 注册 MCP 工具 ·
[`src/fdk.ts`](src/fdk.ts) 是 FDK 客户端 ·
[`src/format.ts`](src/format.ts) 格式化响应并分类许可证/署名 ·
[`skills/查找数据源/SKILL.md`](skills/查找数据源/SKILL.md) 是技能 ·
[`commands/查找数据源.md`](commands/查找数据源.md) 是斜杠命令 ·
[`.claude-plugin/`](.claude-plugin/) 是插件和市场清单的清单。
## 发布(维护者)
软件包在版本标签推送时自动发布到 npm:
```bash
npm version patch
git push --follow-tags
```
这会触发 [`.github/workflows/publish.yml`](.github/workflows/publish.yml)。它需要一个具有发布权限到 `@tenki-labs` 范围的 `NPM_TOKEN` 机密。插件和 MCP 安装无论如何都可以通过 `npx` 直接从 GitHub 获取,无需 npm 发布。
---
## 许可证
[MIT](LICENSE) Tenki Labs.
数据由 [data.norge.no](https://data.norge.no) 提供,由数字化和公共服务总局(Digdir)运营。该项目与 Digdir 无关或获得其批准。请遵循每个数据集的许可证 — 参见上面的 *署名*。