捷克统计局数据访问工具

为AI助手提供直接访问捷克统计局700+统计数据集的服务,涵盖人口、经济、价格等多个领域。

  • by reloadcz
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 reloadcz/mcp-csu

使用说明

mcp csu

MCP服务器 捷克统计局 (CZSO/CZSO) DataStat API。让人工智能助手直接访问有关捷克共和国的700多个统计数据集,包括人口、经济、价格、工资、就业、工业、农业、贸易、旅游、环境等。

单个Python文件。无需克隆,只需 uvx mcp-csu.

特性

  • 完整目录访问权限 --搜索、浏览和检查所有700多个数据集和1500多个预定义表
  • 数据检索 --以CSV格式获取统计数据,使用完整上下文查询单个值
  • AI优化输出 --元数据为人类可读文本,数据为CSV,行数自动截断
  • 速率限制 --内置并发控制(3个并行请求)和最小请求间隔(150ms)
  • 缓存 --目录列表在内存中缓存10分钟,以避免冗余请求
  • 无身份验证 -DataStat API是公共的

先决条件

就是这样。Python和所有依赖项都由 uv.

配置

克劳德代码

添加 ~/.claude/settings.json:

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

克劳德桌面

添加 claude_desktop_config.json:

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

任何MCP客户端

服务器使用 标准 传输(默认)。启动命令:

uvx mcp-csu

数据模型

DataStat数据库具有层次结构:

Dataset (sada)              e.g. CEN0101H — "Míra inflace"
├── Dimensions (dimenze)    e.g. CasR (years), Uz0 (territory)
│   └── Items (položky)     e.g. "2024", "CZ"
├── Indicators (ukazatele)  e.g. 6134J06 — "Průměrná roční míra inflace"
└── Selections (výběry)     e.g. CEN0101HT01 — "Průměrná roční míra inflace"
    └── CSV data            pre-configured table ready to fetch

数据集 包含原始多维数据。每个数据集都有 维度 (时间、地区、类别)和 指标 (测量的内容)。

选择 是预定义的视图——具有固定维度排列的数据集的特定切片。它们是获取数据的最简单方法。

工具

发现

search_datasets

在所有数据集中进行全文搜索。返回数据集代码、名称、时间段类型和区域级别。

参数 类型 必填 说明
query string yes 搜索关键字(推荐捷克语)
search_datasets("inflace")
→ Found 3 dataset(s):
    WCEN01 (v4) — Index spotřebitelských cen (indexy, míra inflace)
    WCEN01M (v1) — Index spotřebitelských cen — měsíční data
    CEN0101H (v1) — Míra inflace

search_selections

在所有预定义的数据表中进行全文搜索。

参数 类型 必填 说明
query string yes 搜索关键字(推荐捷克语)
search_selections("mzdy")
→ Found 30 selection(s):
    MZDQ1T1 — Průměrný evidenční počet zaměstnanců a průměrné hrubé měsíční mzdy...
      Period: Čtvrtletí | Territory: Stát | Dataset: MZDQ1

list_datasets

所有数据集的分页列表。

参数 类型 默认值 说明
offset int 0 跳过前N个项目
limit int 30 每页最多100个项目

list_selections

所有预定义表的分页列表。

参数 类型 默认值 说明
offset int 0 跳过前N个项目
limit int 30 每页最多100个项目

探索

get_dataset

完整的数据集元数据:包含项目计数的维度、包含定义的指标、关键字、更新频率。

参数 类型 必填 说明
dataset_code string yes 数据集代码(例如。 CEN0101H)
get_dataset("CEN0101H")
→ Dataset: CEN0101H (v1)
  Name: Míra inflace
  Keywords: míra inflace
  Update frequency: MONTHLY

  Dimensions (4):
    CasM — Měsíce (720 items)
    CasR — Roky (61 items)
    CASRMX — Měsíce, roky (780 items)
    Uz0 — Území (1 items)

  Indicators (4):
    6134J09 — Přírůstek průměrného ročního indexu spotřebitelských cen - měsíční
    6134J06 — Průměrná roční míra inflace
    ...

get_dataset_selections

列出特定数据集的预定义数据表。

参数 类型 必填 说明
dataset_code string yes 数据集代码
get_dataset_selections("CEN0101H")
→ Selections for CEN0101H (2):
    CEN0101HT01 — Průměrná roční míra inflace
      Period: Rok | Territory: Stát
    CEN0101HT02 — Míra inflace - měsíční
      Period: Měsíc | Territory: Stát

get_dimension_items

获取维度的所有可能值。支持层次级过滤和分页。

参数 类型 默认值 说明
dimension_code string -- 来自的维度代码 get_dataset()
level string null 按层次结构级别筛选(例如。 STAT, KRAJ, OKRES)
offset int 0 跳过前N个项目
limit int 50 每页最多200个项目
get_dimension_items("UZ023H2U", level="KRAJ")
→ Dimension UZ023H2U — 14 item(s) at level KRAJ:
    CZ010 — Hlavní město Praha (Capital City Prague) [KRAJ]
    CZ020 — Středočeský kraj (Central Bohemian Region) [KRAJ]
    CZ031 — Jihočeský kraj (South Bohemian Region) [KRAJ]
    ...

get_indicator

指标定义和显示格式。

参数 类型 必填 说明
indicator_code string yes 指示器代码来自 get_dataset()

数据检索

get_selection_data

主要数据访问工具。 从预定义的选择中获取CSV数据。

参数 类型 默认值 说明
selection_code string -- 选择代码(例如。 CEN0101HT01)
max_rows int 100 最大数据行数。0=无限制
get_selection_data("CEN0101HT01", max_rows=5)
→ "Ukazatel","Území","Roky","Hodnota"
  "Průměrná roční míra inflace","Česko","2025","2.5"
  "Průměrná roční míra inflace","Česko","2024","2.4"
  "Průměrná roční míra inflace","Česko","2023","10.7"
  "Průměrná roční míra inflace","Česko","2022","15.1"
  "Průměrná roční míra inflace","Česko","2021","3.8"

  [Showing 5 of 29 rows. Use max_rows=0 for all data or max_rows=10 to see more.]

get_value

检索单个特定值。最精确的查询--返回一个带有完整上下文(指标名称、维度标签、发布日期)的数字。

参数 类型 默认值 说明
dataset_code string -- 数据集代码
indicator_code string -- 指标代码
dimension_codes list[str] -- 按顺序排列的维度代码
item_codes list[str] -- 与尺寸匹配的项目代码
version string null 数据集版本(如果省略,则为最新版本)
get_value("RSO01", "3971b",
          ["CasR", "TYPPROSJED", "UZ023H2U"],
          ["2023", "501", "CZ"])
→ Value: 6 258
  Indicator: Počet územních jednotek
    Roky: 2023
    Typ prostorové jednotky: Obec
    ČR, kraje, okresy: Česko
  Published: 2024-04-30T07:00:00Z

custom_query

对数据集执行任意数据查询。返回CSV。

这是一个高级工具——首选 get_selection_data() 当存在合适的预定义表时。自定义查询API对正确的维度放置和层次结构级别筛选敏感。

参数 类型 默认值 说明
dataset_code string -- 数据集代码
dataset_version string -- 版本来自 get_dataset()
columns list[dict] -- 列维度(每个需要 kodDimenze)
rows list[dict] -- 行维度
table_filters list[dict] null 筛选维度
max_rows int 100 最大CSV行数

get_dataset_metadata

数据集内容统计:记录计数、时间范围、发布和更新时间戳。

参数 类型 必填 说明
dataset_code string yes 数据集代码
version string yes 版本来自 get_dataset()

用法示例

获取捷克通货膨胀率

1. search_datasets("inflace")
   → CEN0101H — Míra inflace

2. get_dataset_selections("CEN0101H")
   → CEN0101HT01 — Průměrná roční míra inflace

3. get_selection_data("CEN0101HT01")
   → CSV with annual inflation rates from 1994 to present

按地区查找平均工资

1. search_selections("mzdy kraje")
   → MZDQ1T2 — ... dle krajů a regionů soudržnosti

2. get_selection_data("MZDQ1T2", max_rows=20)
   → CSV with wages by region

获取2023年布拉格的确切人口

1. search_datasets("obyvatelstvo")
   → OBY01 — Obyvatelstvo podle pohlaví a věku

2. get_dataset("OBY01")
   → see dimensions and indicators

3. get_dimension_items("<territory_dim>", level="KRAJ")
   → find Prague code

4. get_value("OBY01", "<indicator>",
             ["<time_dim>", "<territory_dim>"],
             ["2023", "<prague_code>"])
   → exact value

捷克语词汇搜索

数据库是捷克语的。常用搜索词:

捷克语 英语 示例数据集
人口 人口 OBY01, OBY02
mzdy 工资 MZDQ1,MZD01
ceny 价格 CEN01、CEN02
通货膨胀 通货膨胀 CEN0101H
HDP GDP NUC06R,NUC06Q
失业率 失业率 ZAM04
工业 行业 PRU01
建筑 STA01
教育 教育 VZD01
健康 健康 ZDR01
农业 农业 ZEM01
交通 运输 DOP01
旅游 旅游 CRU01
环境 ZPR01
刑事犯罪
volby 选举 VOL01
住房 BYT01
外贸 外贸 VZO01

技术细节

建筑

使用单文件Python服务器 FastMCP stdio传输框架。通过PEP 723内联脚本元数据管理依赖关系-- uv run 将它们自动安装到隔离环境中。

上游API

服务器封装了两个DataStat REST API:

API 基本URL 用途
目录 https://data.csu.gov.cz/api/katalog/v1 数据集/选择/维度/指标元数据
数据 https://data.csu.gov.cz/api/dotaz/v1 数据检索(CSV、JSON-STAT)

API文件:

速率限制

DataStat API没有记录速率限制,但服务器应用保守的节流:

  • 最大并发请求数: 3(信号量)
  • 最小请求间隔: 150ms(全局)
  • 请求超时: 60秒

缓存

目录列表(list_datasets, list_selections)以10分钟TTL缓存在内存中。这些端点在每次调用时返回完整的目录(700–1500项),因为API忽略了分页参数-缓存避免了重复的大型传输。

输出格式化

  • 元数据工具 返回带有清晰标签的结构化文本
  • 数据工具 返回CSV(最紧凑、LLM友好的表格格式)
  • 截断:默认情况下,数据响应限制为100行,并显示总计数。可通过以下方式调节 max_rows 参数
  • 语言:所有API回复均为捷克语(Accept-Language: cs)

依赖项

包装 版本 用途
mcp >=1.0.0 MCP服务器框架(FastMCP)
httpx >=0.27.0 异步HTTP客户端

两者均由自动安装 uv run.

许可证

麻省理工学院