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. 01CKAN のデータセットとリソースの検索・クエリ
  2. 02フィールド型と統計値によるデータセットのプロファイリング
  3. 03ヒストグラム、棒グラフ、折れ線グラフ、散布図の生成
  4. 04座標データを表示する Leaflet 地図
  5. 05検索とフィルタに対応したインタラクティブなデータテーブル

活用シーン

  1. 01公営住宅データセットの住戸サイズの把握
  2. 02都市別の住宅抽選応募者数の比較
  3. 03学校や交通駅データの地図表示

MCP 対応

本プロジェクトは MCP サーバーであり、CKAN の検索・データ取得・可視化ツールを MCP クライアントに提供します。対応クライアントでは MCP Apps を通じて対話型の画面を表示します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

DataGov Israel MCP サーバー

イスラエル政府のオープンデータ(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 の可視化をプレビューしたりできる 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_showCKAN のバージョンとサイト情報を取得します
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時系列の傾向(例:抽選ごとの住宅戸数)
scatter2 つの数値フィールド間の相関
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、Histogram
  • Maps アプリ → 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 をご覧ください。

  1. リポジトリをフォークします
  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 をご覧ください。

謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。