DataGov Israel MCP Server について
DataGov Israel MCP Server は、イスラエル政府のオープンデータ(data.gov.il)を調べるための MCP サーバーで、MCP Apps によるインタラクティブな可視化を備えています。データセットの検索、構造のプロファイリング、グラフ作成、地理データの地図表示に対応しています。
主な機能
- 01CKAN のデータセットとリソースの検索・クエリ
- 02フィールド型と統計値によるデータセットのプロファイリング
- 03ヒストグラム、棒グラフ、折れ線グラフ、散布図の生成
- 04座標データを表示する Leaflet 地図
- 05検索とフィルタに対応したインタラクティブなデータテーブル
活用シーン
- 01公営住宅データセットの住戸サイズの把握
- 02都市別の住宅抽選応募者数の比較
- 03学校や交通駅データの地図表示
MCP 対応
本プロジェクトは MCP サーバーであり、CKAN の検索・データ取得・可視化ツールを MCP クライアントに提供します。対応クライアントでは MCP Apps を通じて対話型の画面を表示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DataGov Israel MCP サーバー
イスラエル政府のオープンデータ(data.gov.il)を探索する MCP サーバーです。MCP Apps によるインタラクティブな可視化機能を内蔵しています。
数千件の公開データセットを検索して構造を分析し、グラフを作成したり、地理データを地図上に表示したりできます。すべて AI アシスタントから利用できます。
これで何ができますか?
🏠 住宅市場を探索する
公開住宅データセットの構造を分析して、住戸の広さ、所在地、空き状況を把握します。

政府の住宅抽選で需要が高い都市を確認します。

国内のアパートの広さの分布を把握します。

住宅抽選ごとの住戸の空き状況を時系列で追跡します。

🗺️ 公共インフラを地図上に表示する
イスラエル全土の教育機関を可視化します。

公共交通機関の停留所を地図上に表示します。

クイックスタート
インストール
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 の可視化をプレビューしたりできる Web UI が開きます。
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 対応クライアント内にインタラクティブな UI を直接表示します。
dataset_profile
データセットの構造と品質を把握するために分析します。
- 検出されるフィールド:整数、数値、文字列、座標
- 統計情報:最小値、最大値、平均値、null 件数、一意の値
- 出力:検索・フィルター機能付きのインタラクティブな DataTable
dataset_profile(resource_id="c3a68837-9b7a-4ee7-bd92-130678dc8ae3", sample_size=200)
chart_generator
あらゆるデータセットからインタラクティブなグラフを作成します。
| グラフの種類 | 用途 |
|---|---|
histogram | 数値の分布(例:アパートの広さ) |
bar | カテゴリの比較(例:都市ごとの申込者数) |
line | 時系列の傾向(例:抽選ごとの住宅戸数) |
scatter | 2 つの数値フィールド間の相関 |
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 アプリ
可視化ツールでは、prefab-ui のコンポーネントを備えた FastMCPApp プロバイダーを使用します。
DataProfileアプリ →DataTable、MetricコンポーネントChartsアプリ →BarChart、LineChart、ScatterChart、HistogramMapsアプリ → Leaflet HTML を使用するEmbed
@app.ui() で登録されたツールには、適切な MCP Apps メタデータが自動的に付与され、互換性のあるクライアントで表示されます。
非同期 HTTP レイヤー
すべての API 呼び出しで httpx.AsyncClient を使用します。
- 30 秒のタイムアウト
- 5xx エラーに対する自動再試行
- コネクションプーリング
データの安全性
- CKAN の数値は適切な型に変換されます(
"25"→25.0に対応) - XSS を防ぐため、マップのポップアップ内容は HTML エスケープされます
- 正しく描画されるよう、折れ線グラフは 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 をご覧ください。
- リポジトリをフォークします
- 機能ブランチを作成します
- テストを追加して変更を加えます
- プルリクエストを送信します
トラブルシューティング
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 をご覧ください。
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。