mcpField
D
DataGov Israel MCP Server

DataGov Israel MCP Server

本地服务
github.com/aviveldan法律与政务14627 周前更新

关于 DataGov Israel MCP Server

DataGov Israel MCP Server 是一个用于探索以色列政府开放数据(data.gov.il)的 MCP 服务,内置基于 MCP Apps 的交互式可视化。它可以搜索数据集、分析字段结构、生成图表并在地图上绘制地理数据。

主要功能

  1. 01搜索并查询 CKAN 数据集与资源
  2. 02数据集字段结构与统计概览
  3. 03直方图、柱状图、折线图和散点图
  4. 04基于 Leaflet 的地理数据地图
  5. 05交互式数据表格,支持搜索与过滤

适用场景

  1. 01分析公共住房数据集的户型与分布
  2. 02比较各城市住房抽签的申请人数
  3. 03在地图上展示教育机构或公交站点

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端提供数据集搜索、数据查询以及可视化工具,并通过 MCP Apps 在兼容客户端中渲染交互界面。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

DataGov Israel MCP Server

一个用于探索以色列政府开放数据(data.gov.il)的 MCP 服务,内置由 MCP Apps 提供支持的交互式可视化。

通过 AI 助手搜索数千个公共数据集、分析其结构、生成图表,并在地图上绘制地理数据。

测试 Python 3.10+ 许可证:MIT


可以用它做什么?

🏠 探索住房市场

分析公共住房数据集,了解住房单元的面积、位置和供应情况:

数据集概况 — 公共住房

查看政府住房抽签中需求最高的城市:

各城市住房抽签申请人数

了解全国公寓面积的分布情况:

公共住房单元面积分布

跟踪住房单元供应情况的变化:

每次抽签可供分配的住房单元

🗺️ 绘制公共基础设施地图

可视化以色列各地的教育机构:

教育机构地图

绘制公共交通站点:

公共交通站点


快速开始

安装
git clone https://github.com/aviveldan/datagov-mcp.git
cd datagov-mcp

# Create virtual environment and install (requires uv)
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"
与 Claude Desktop 搭配使用
fastmcp install claude-desktop server.py

重启 Claude Desktop,即可立即看到可用的 DataGovIL 工具。

使用 MCP Inspector 试用
fastmcp dev inspector server.py

这会打开一个网页界面,你可以在其中浏览工具、交互式测试工具,并在 Apps 标签页中预览 MCP App 可视化效果。

使用 fastmcp dev apps

在本地预览交互式可视化应用:

fastmcp dev apps server.py

示例:寻找房地产投资机会

以下是一位探索以色列住房市场的用户可能采用的实际工作流:

You: "Search for discounted housing lottery datasets"

→ package_search(q="דירה בהנחה")
  Found: "נתונים תקופתיים - תכנית דירה בהנחה" (Discounted Housing Program)
  Resource ID: 7c8255d0-49ef-49db-8904-4cf917586031

You: "Profile this dataset so I can understand what fields are available"

→ dataset_profile(resource_id="7c8255d0-49ef-49db-8904-4cf917586031")
  Shows: LamasName (city), Subscribers, Winners, PriceForMeter,
         LotteryHousingUnits, ProjectName, Neighborhood...

You: "Show me which cities have the most subscribers competing for units"

→ chart_generator(
    resource_id="7c8255d0-49ef-49db-8904-4cf917586031",
    chart_type="bar",
    x_field="LamasName",
    y_field="Subscribers",
    title="Housing Lottery Subscribers by City"
  )
  → Interactive bar chart rendered in MCP Apps UI

You: "Now show the public housing units — map them and show me sizes"

→ dataset_profile(resource_id="c3a68837-9b7a-4ee7-bd92-130678dc8ae3")
  Shows: CityLmsName, NumOfRooms (avg 2.4), Floor, TotalArea (21-110 m²)...

→ chart_generator(
    resource_id="c3a68837-9b7a-4ee7-bd92-130678dc8ae3",
    chart_type="histogram",
    x_field="TotalArea",
    title="Distribution of Housing Unit Sizes (m²)"
  )
  → Most units are 48-57 m², with a long tail up to 110 m²

**发现:**阿什凯隆和斯代罗特等城市的住房抽签申请人数为 25,000-35,000,竞争非常激烈。外围地区的小城市(乌姆法赫姆、拿撒勒)申请人数要少得多。如果你对地点比较灵活,中签几率会大幅提高。


可用工具

核心数据工具
工具描述
status_show获取 CKAN 版本和站点信息
license_list列出可用的数据集许可证
package_list获取所有数据集 ID
package_search使用筛选条件和排序搜索数据集
package_show获取特定数据集的详细元数据
organization_list列出所有组织
organization_show获取特定组织的详细信息
resource_search搜索数据集中的资源
datastore_search查询特定资源中的数据
fetch_data便捷工具 — 按名称查找数据集并获取其数据
可视化工具(MCP Apps)📊

这些工具可在兼容 MCP 的客户端中直接呈现交互式界面。

dataset_profile

分析数据集,以了解其结构和质量。

  • 检测到的字段:整数、数字、字符串、坐标
  • 统计信息:最小值、最大值、平均值、空值数量、唯一值
  • 输出:可交互的 DataTable,支持搜索和筛选
dataset_profile(resource_id="c3a68837-9b7a-4ee7-bd92-130678dc8ae3", sample_size=200)
chart_generator

从任意数据集生成交互式图表。

图表类型用途
histogram显示数值分布(例如,公寓面积)
bar比较不同类别(例如,各城市的申请人数)
line展示随时间变化的趋势(例如,每次抽签的住房单元数)
scatter展示两个数值字段之间的相关性
chart_generator(
  resource_id="7c8255d0-49ef-49db-8904-4cf917586031",
  chart_type="bar",
  x_field="LamasName",
  y_field="Subscribers",
  title="Housing Lottery Subscribers by City",
  limit=50
)
map_generator

在交互式 Leaflet 地图上绘制地理数据。

map_generator(
  resource_id="e873e6a2-66c1-494f-a677-f5e77348edb0",
  lat_field="Lat",
  lon_field="Long",
  limit=500
)

实用资源 ID

以下是一些适合入门的数据集:

数据集资源 ID适用场景
✈️ 航班(טיסות)e83f763b-b7d7-479e-b172-ae981ddc6de5按航空公司绘制条形图
🏠 公共住房(דיור ציבורי)c3a68837-9b7a-4ee7-bd92-130678dc8ae3直方图、数据画像
🎰 住房抽签(דירה בהנחה)7c8255d0-49ef-49db-8904-4cf917586031条形图/折线图
🚌 交通站点(תחנות)e873e6a2-66c1-494f-a677-f5e77348edb0地图(包含经纬度)
🏫 学校(מוסדות חינוך)5c5d6bb0-755d-470d-84b6-d7dd3135ba9c地图(UTM_X/UTM_Y)

架构

MCP 应用

可视化工具使用 FastMCPApp 提供程序及 prefab-ui 组件:

  • DataProfile 应用 → DataTable、Metric 组件
  • Charts 应用 → BarChart、LineChart、ScatterChart、Histogram
  • Maps 应用 → 使用 Leaflet HTML 的 Embed

通过 @app.ui() 注册的工具会自动获得适当的 MCP Apps 元数据,并在兼容的客户端中渲染。

异步 HTTP 层

所有 API 调用均使用 httpx.AsyncClient,并具备以下特性:

  • 30 秒超时
  • 对 5xx 错误自动重试
  • 连接池
数据安全
  • CKAN 中的数值会被强制转换(可处理 "25" → 25.0)
  • 地图弹出窗口的内容会进行 HTML 转义,以防止 XSS
  • 折线图会按 x 轴排序,以确保正确渲染

开发

运行测试
pytest tests/ -v          # 39 tests
pytest tests/ --cov=datagov_mcp  # With coverage
代码风格
ruff check .   # Lint
ruff format .  # Format
项目结构
datagov-mcp/
├── datagov_mcp/
│   ├── server.py          # Core CKAN tools + provider registration
│   ├── apps.py            # FastMCPApp definitions (DataProfile, Charts, Maps)
│   ├── visualization.py   # Visualization tools (@app.ui entry points)
│   ├── api.py             # CKAN API helper
│   └── client.py          # HTTP client
├── tests/                 # 39 tests with HTTP mocking
│   ├── test_api.py
│   ├── test_contracts.py
│   ├── test_tools.py
│   └── test_visualization.py
├── screenshots/           # Auto-generated demo screenshots
├── server.py              # Entrypoint
└── pyproject.toml

贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解指南。

  1. Fork 此仓库
  2. 创建功能分支
  3. 编写更改并添加测试
  4. 提交拉取请求

故障排除

与 MCP Inspector 的端口冲突
pip install nano-dev-utils
python -c "from nano_dev_utils import release_ports; release_ports.PortsRelease().release_all()"
Windows + OneDrive

避免在 OneDrive 同步文件夹中运行安装。请参阅 uv#7906。

导入错误
uv pip install -e ".[dev]"

许可证

MIT — 请参阅 LICENSE。

致谢

评论

支持 Markdown

第一次接触 MCP?

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

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