Token导航 LogoToken导航TokenDH.com
Nl Opendata MCP logo
数据服务stdio官方级别未说明来源级核验

Nl Opendata MCP

MCP Server

NL OpenData MCP Server是一个用于访问荷兰政府开放数据的模型上下文协议(MCP)服务器,支持从CBS和data.overheid.nl获取统计数据集,并提供查询、过滤、下载和分析功能。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
数据分析开放数据PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

soulnai

提供方

soulnai

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uvx nl-opendata-mcp

详细介绍

NL OpenData MCP服务器

全面 模型上下文协议(MCP) 用于访问荷兰政府公开数据的服务器 CBS(中央统计局)数据.政府.nl.

这是一个小型的附带项目,旨在试验MCP,看看它是否有助于访问荷兰政府的开放数据。 它还没有准备好生产,不应该用于生产。

我用Claude Desktop和LM Studio测试过它,它运行得很好。它应该适用于大多数MCP客户端。 结果始终取决于您使用的模型的质量。前沿模型很好地理解数据和mcp工具,并产生了良好的结果。本地模型可能无法理解工具调用并产生意外结果。

对于局部模型,我使用Devstral2小模型获得了最佳结果,gpt-oss 20b紧随其后。上下文长度是局部模型的一个非常有限的因素。Yo需要至少30000个令牌上下文长度才能进行基本分析。

______________________________________________________________________

✨ 特性

  • 📊 访问4800+CBS数据集 -浏览和查询人口、经济、健康、环境等统计数据
  • 🔍 智能搜索 -使用本地缓存按标题、摘要或两者搜索数据集,以获得快速结果
  • 📥 灵活的数据获取 -查询、过滤和下载CSV或Parquet格式的数据集
  • 🦆 DuckDB集成 -将数据集直接保存到DuckDB,以实现高效的SQL查询
  • 🐍 Python分析 -直接在数据集上执行Pandas代码,无需下载
  • 🗂️ 双源支持 -检查CBS OData和data.overheid.nl的可用性

______________________________________________________________________

📦 安装

使用uvx(推荐)

# Run directly from PyPI
uvx nl-opendata-mcp

# Or run directly from GitHub
uvx --from git+https://github.com/soulnai/nl-opendata-mcp.git nl-opendata-mcp

用pip/uv安装

# Install from PyPI
uv pip install nl-opendata-mcp

# Install from GitHub
uv pip install git+https://github.com/soulnai/nl-opendata-mcp.git

来源(发展)

# Clone the repository
git clone https://github.com/soulnai/nl-opendata-mcp.git
cd nl-opendata-mcp

# Install dependencies and package in editable mode
uv sync
uv pip install -e .

# Run the server
uv run nl-opendata-mcp

______________________________________________________________________

🔧 配置

克劳德桌面

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "nl-opendata-mcp": {
      "command": "uvx",
      "args": ["nl-opendata-mcp"]
    }
  }
}

LM 工作室

添加到LM Studio配置(mcp.json):

{
  "mcpServers": {
    "nl-opendata-mcp": {
      "command": "uvx",
      "args": ["nl-opendata-mcp"]
    }
  }
}

使用环境变量

服务器支持不同的传输模式:

# Default: stdio transport
uvx nl-opendata-mcp

# HTTP transport (port 8000)
TRANSPORT=http uvx nl-opendata-mcp

# SSE transport (port 8000)
TRANSPORT=sse uvx nl-opendata-mcp

______________________________________________________________________

🛠️ 可用工具

发现工具

工具说明
cbs_list_datasets列出CBS目录中的可用数据集
cbs_search_datasets按关键字搜索数据集(在标题、摘要或两者中)
cbs_check_dataset_availability检查数据集是否可通过CBS OData或data.overheid.nl获得
cbs_estimate_dataset_size在获取之前估计数据集大小(行、列、推荐策略)
cbs_inspect_dataset_details获取全面的数据集摘要(元数据、结构、示例数据)

元数据工具

工具说明
cbs_get_metadata统一元数据工具-获取信息、结构、维度值或自定义端点

cbs_get_metadata 类型:

  • metadata_type="info" -数据集描述(表信息)
  • metadata_type="structure" -列定义和数据类型(DataProperty)
  • metadata_type="endpoints" -可用元数据端点
  • metadata_type="dimensions" -带有过滤代码的维度值(需要 endpoint_name)
  • metadata_type="custom" -查询自定义终结点(需要 endpoint_name)

数据获取工具

工具说明
cbs_query_dataset通过过滤和列选择查询数据
cbs_save_dataset将数据集保存到CSV(使用 fetch_all=True 完整数据集)
cbs_save_dataset_to_duckdb将数据集保存到DuckDB以进行SQL查询

分析工具(默认禁用)

工具说明
cbs_analyze_remote_dataset在远程数据集上执行Python/Pandas代码
cbs_analyze_local_dataset在本地CSV文件上执行Python/Pandas代码

______________________________________________________________________

📖 使用示例

1.发现数据集

列出可用数据集:

Use cbs_list_datasets with top=20 to see the first 20 datasets

搜索人口数据:

Use cbs_search_datasets with query="bevolking" to find population datasets

仅在标题中搜索:

Use cbs_search_datasets with query="inflatie" and search_field="title"

______________________________________________________________________

2.探索数据集

获取全面概述(建议的第一步):

Use cbs_inspect_dataset_details with dataset_id="85313NED"

# Returns:
# - Source confirmation (CBS OData or data.overheid.nl)
# - Title and description
# - Column definitions with types
# - Sample data (first 5 rows)

在获取之前检查数据集大小:

Use cbs_estimate_dataset_size with dataset_id="85313NED"

# Returns:
# - Estimated row count
# - Column count
# - Recommended fetch strategy

获取详细的列结构:

Use cbs_get_metadata with dataset_id="85313NED" and metadata_type="structure"

# Returns CSV with: Key, Type, Title, Description for each column

______________________________________________________________________

3.查询数据

带分页的基本查询:

Use cbs_query_dataset with:
  - dataset_id="85313NED"
  - top=100
  - skip=0

使用OData筛选器进行查询:

Use cbs_query_dataset with:
  - dataset_id="85313NED"
  - filter="Perioden eq '2023JJ00'"
  - top=50

选择特定列:

Use cbs_query_dataset with:
  - dataset_id="85313NED"
  - select=["Perioden", "TotaleBevolking_1", "Mannen_2", "Vrouwen_3"]
  - top=100

多条件查询:

Use cbs_query_dataset with:
  - dataset_id="85313NED"
  - filter="Perioden eq '2023JJ00' and Leeftijd eq '10000'"

______________________________________________________________________

4.下载完整数据集

将完整数据集保存到CSV:

Use cbs_save_dataset with:
  - dataset_id="85313NED"
  - file_name="population_data.csv"
  - fetch_all=true

保存到DuckDB进行SQL分析(支持列选择):

Use cbs_save_dataset_to_duckdb with:
  - dataset_id="85313NED"
  - table_name="population"
  - fetch_all=true

# Creates datasets.db with table 'population'

______________________________________________________________________

5.分析数据

注意:默认情况下,分析工具处于禁用状态。要启用它们,请设置 USE_PYTHON_ANALYSIS=true 在环境中。让模型在客户端机器上编写和执行Python代码存在安全风险。仅建议高级用户使用。最好让模型查询并将数据保存到文件中,并让您的CLI LLM编码工具通过编写和执行脚本来分析它。如果您在非CLI环境(如LM Studio)中运行它,并且仍然希望赋予它分析数据的能力,则可以通过设置来启用它 USE_PYTHON_ANALYSIS=true 在环境中。

使用Pandas分析远程数据集:

Use cbs_analyze_remote_dataset with:
  - dataset_id="85313NED"
  - analysis_code="print(df.describe())"

统计计算:

Use cbs_analyze_remote_dataset with:
  - dataset_id="85313NED"
  - analysis_code="result = df['TotaleBevolking_1'].mean()"

过滤器和骨料:

Use cbs_analyze_remote_dataset with:
  - dataset_id="85313NED"
  - analysis_code="""
    filtered = df[df['Perioden'].str.contains('2023')]
    result = filtered.groupby('Leeftijd')['TotaleBevolking_1'].sum()
    print(result)
    """

分析本地CSV文件:

Use cbs_analyze_local_dataset with:
  - dataset_path="downloads/85313NED_full.csv"
  - analysis_code="print(df.info())"

______________________________________________________________________

6.使用元数据

获取分类代码(例如,性别类别):

Use cbs_get_metadata with:
  - dataset_id="85313NED"
  - metadata_type="dimensions"
  - endpoint_name="Geslacht"

获取时间段定义:

Use cbs_get_metadata with:
  - dataset_id="85313NED"
  - metadata_type="dimensions"
  - endpoint_name="Perioden"

______________________________________________________________________

🎯 常见工作流

工作流程1:快速数据探索

1. cbs_search_datasets(query="unemployment")              # Find relevant datasets
2. cbs_inspect_dataset_details(dataset_id="82809NED")     # Get overview
3. cbs_query_dataset(dataset_id="82809NED", top=10)       # Preview data

工作流程2:完整数据集分析

1. cbs_estimate_dataset_size(dataset_id="85313NED")       # Check size
2. cbs_save_dataset_to_duckdb(dataset_id="85313NED")      # Save to DuckDB
3. Query using DuckDB CLI or cbs_analyze_local_dataset

工作流程3:筛选数据导出

1. cbs_get_metadata(dataset_id="85313NED", metadata_type="structure")  # Get column names
2. cbs_get_metadata(dataset_id="85313NED", metadata_type="dimensions", endpoint_name="Perioden")  # Get period codes
3. cbs_query_dataset(dataset_id="85313NED", filter="Perioden eq '2023JJ00'", select=["..."])  # Query
4. cbs_save_dataset(dataset_id="85313NED", file_name="filtered_data.csv")  # Export

______________________________________________________________________

📁 输出格式

格式用例
CSV文件通用兼容性,适用于Excel、Pandas等。
DuckDBSQL查询,跨多个数据集连接

______________________________________________________________________

🔗 OData筛选器示例

CBS OData API使用OData v3语法进行筛选:

# Exact match
Perioden eq '2023JJ00'

# Substring match
substringof('Amsterdam', RegioS)

# Multiple conditions
Perioden eq '2023JJ00' and Leeftijd eq '10000'

# OR conditions
Geslacht eq '1100' or Geslacht eq '2000'

# Numeric comparisons
TotaleBevolking_1 gt 100000

______________________________________________________________________

📚 资源

______________________________________________________________________

目录标签

目录标签

数据分析开放数据PythonClaude本地部署统计数据集数据查询DuckDB集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP