mcpField
P
PH Civic Data

PH Civic Data

ローカル
github.com/xmpuspus法務・行政58 週間前に更新

PH Civic Data について

PH Civic Dataは、フィリピンの公共データを呼び出し可能なツールとして統合し、市民データの調査、地域比較、公共支出の確認に利用できます。統計、災害、天気、調達、環境を41のツールで扱い、APIキーは不要です。

主な機能

  1. 01PSAカタログと統計指標の検索
  2. 02地域人口と行政区データの取得
  3. 03地震・火山・天気データの確認
  4. 04調達とインフラ支出の検索
  5. 05環境・マクロ経済データの取得
  6. 06MCPプロンプトとリソース

活用シーン

  1. 01地域の人口・経済・リスク情報の整理
  2. 02複数地域の統計比較
  3. 03災害リスクの確認と天気予報の取得
  4. 04調達公告とインフラ支出の検索

MCP 対応

このMCPサーバーはstdio経由で41のツール、3つのプロンプト、2つのリソースを提供し、クライアントが公共データソースを照会できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"xmpuspus-ph-civic-data": {
"command": "uvx",
"args": [
"ph-civic-data-mcp"
],
"env": {
"PAGASA_API_TOKEN": "<PAGASA_API_TOKEN>"
}
}
}
}
起動コマンドuvx ph-civic-data-mcp
設定が必要な環境変数
PAGASA_API_TOKENシークレットOptional PAGASA TenDay API token. Without it, get_weather_forecast automatically falls back to Open-Meteo.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiph-civic-data-mcp0.8.0

ツール

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

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

詳細

ph-civic-data-mcp

エージェントから呼び出せるツールとして提供するフィリピンの市民データです。PSA OpenSTAT の統計カタログ全体、PSGC の地域コード、インフラ支出の説明責任、地震、天気、台風、調達、貧困、日射量、大気質、衛星植生データ、マクロ指標を収録しています。人口データはバランガイ単位まで対応しています。ツールは 41 個で、API キーは不要です。

PyPI Python 3.11+ License: MIT Glama AAA MCP Registry

フィリピンの市民データポータルは、スクレイピングされた HTML テーブル、PXWeb JSON、文書化されていない API など、さまざまな形式でオープンデータを公開しています。エージェントが利用できるよう、それらをまとめるものはありません。このサーバーは、標準入出力経由でそれを実現し、ホスティング費用はかからず、API キーも不要です。バランガイの人口、ある場所が活断層や火山の近くにあるかどうか、市が洪水対策にいくら支出したか、ある場所と別の場所を比較した結果などの質問に答えます。

すべてのデータは公開記録に基づいています。ヒューリスティックな指標は統計上のものにすぎません。具体的な疑惑には、独立した調査と別の情報源による裏付けが必要です。

インストール

以下のクライアントはすべて、同じパッケージ uvx ph-civic-data-mcp を標準入出力経由で実行します。

Cursorに追加 VS Codeに追加 Smithery経由でインストール Claude Code経由で追加

Claude Desktop。 macOS では ~/Library/Application Support/Claude/claude_desktop_config.json にある claude_desktop_config.json に、次の内容を追加します。

{
  "mcpServers": {
    "ph-civic-data": {
      "command": "uvx",
      "args": ["ph-civic-data-mcp"]
    }
  }
}

Claude Code。

claude mcp add ph-civic-data -- uvx ph-civic-data-mcp

Codex。 2026-09-03 に実環境での動作を確認済みです。

codex mcp add ph-civic-data -- uvx ph-civic-data-mcp

Cursor。 mcp.json に次の内容を追加します。

{
  "mcpServers": {
    "ph-civic-data": {
      "command": "uvx",
      "args": ["ph-civic-data-mcp"]
    }
  }
}

VS Code。 .vscode/mcp.json に次の内容を追加します。

{
  "servers": {
    "ph-civic-data": {
      "type": "stdio",
      "command": "uvx",
      "args": ["ph-civic-data-mcp"]
    }
  }
}

Docker。 一度ビルドし、標準入出力には -i を指定して実行します。

docker build -t ph-civic-data-mcp .

イメージは非 root ユーザーとして実行され、ヘルスチェックも含まれています。

セットアップ

この録画は vhs docs/demo_setup.tape で作成しました。このサーバーを指す --mcp-config を指定して Claude Code を起動し、Claude が get_weather_forecast と get_population_stats を並行して呼び出し、その結果を関連付けています。気温と人口は、録画時にライブソースから取得した値です。人口についての応答は、2024 年国勢調査(2024 年 7 月 1 日時点の NCR:14,001,751 人)に基づいています。

どんなことを質問できますか?

ph-civic-data-mcp は、19 の公開情報源にわたる 41 個のツールを提供します。場所に関する質問には、まず get_area_profile をお試しください。地名を一度 PSGC コードに解決し、人口統計、経済、調達、ハザード、3 日間の予報を 1 回のターンでまとめます。インフラ関連の通知は、住民 10 万人あたりの数値に換算済みです。

地域情報をひと目で確認する
  • 「タクロバンの概要を教えてください。」 get_area_profile
  • 「QC の PSGC コードは何ですか?」 resolve_ph_location
  • 「サンボアンガ市の人口は何人ですか?」 get_population_stats
  • 「東ビサヤ地方の貧困率はどのくらいですか?」 get_poverty_stats
  • 「現在、アルバイ州は安全ですか?」 assess_area_risk
  • 「セブ州の市を一覧表示してください。」 list_admin_units
  • 「このバランガイより上位の行政区画をすべて表示してください。」 get_location_hierarchy
2つ以上の地域を比較する
  • 「人口と貧困率について、セブ市とダバオ市を比較してください。」 compare_areas
  • 「サンボアンガの就業率は、カガヤン・デ・オロと比べてどうですか?」 compare_areas
  • 「5都市の比較結果を CSV ファイルとしてエクスポートしてください。」 compare_areas
地域周辺の災害を確認する
  • 「過去1日以内にレガスピ周辺で地震はありましたか?」 get_latest_earthquakes
  • 「その地震について、PHIVOLCS の速報全文を読んでください。」 get_earthquake_bulletin
  • 「マヨン山の現在の警戒レベルは何ですか?」 get_volcano_status
  • 「現在、フィリピン周辺で台風が発生していますか?」 get_active_typhoons
  • 「その地震を USGS の世界地震情報と照合してください。」 get_usgs_earthquakes_ph
  • 「今週のカガヤン・デ・オロの河川洪水予測はどうなっていますか?」 get_flood_forecast
  • 「1990年以降にサマール島付近を通過した台風を教えてください。」 get_historical_typhoons_ph
調達と支出を検索する
  • 「道路補修に関する PhilGEPS の公告をすべて検索してください。」 search_procurement
  • 「パンパンガ州の治水プロジェクトを PhilGEPS で検索してください。」 search_infra_projects
  • 「2025年のビコル地方のインフラ支出を要約してください。」 summarize_infra_spending
  • 「第VII地域の調達活動はどのくらいありますか?」 get_procurement_summary
  • 「詳しく確認する価値があるセブ州の PhilGEPS 公告を特定してください。」 flag_infra_anomalies
  • 「フラグが付いたプロジェクトの公告全文を取得してください。」 get_infra_project
PSA 統計カタログを検索する
  • 「出生率に言及している PSA の表を探してください。」 search_psa_catalog
  • 「OpenSTAT の貧困に関する項目を順に案内してください。」 browse_psa_catalog
  • 「この貧困統計表にはどのようなディメンションがありますか?」 describe_psa_dataset
  • 「2023年の島嶼グループ別貧困発生率を取得してください。」 query_psa_dataset
  • 「現在のインフレ率はどのくらいですか?」 get_inflation_stats
  • 「全国の失業率はどのくらいですか?」 get_labor_stats
  • 「最新年の PSA の健康指標を取得してください。」 get_health_indicators
  • 「稲作に該当する PSIC コードは何ですか?」 search_psic_codes

query_psa_dataset ではすべてのディメンションに明示的な値コードが必要です。"all" と "*" は受け付けず、クエリは最大1000セルに制限されます。PSA は全キューブのリクエストに HTTP 403 を返すため、まず describe_psa_dataset を使う方法しかありません。

天候と環境を確認する
  • 「イロイロの5日間予報を教えてください。」 get_weather_forecast
  • 「ビコル地方で有効な気象警報はありますか?」 get_weather_alerts
  • 「パラワンの日射量はどのくらいですか?」 get_solar_and_climate
  • 「今日のマニラの大気質はどうですか?」 get_air_quality
  • 「今年、ミンダナオ島の植生はどのように変化しましたか?」 get_vegetation_index
  • 「最新の PAGASA 気象情報を一覧表示してください。」 list_pagasa_advisory_files
  • 「フィリピンの一人当たり GDP の推移を教えてください。」 get_world_bank_indicator
2025年の選挙結果を確認する
  • 「イロコス・ノルテ州アダムスの投票区まで、選挙データの階層をたどってください。」 browse_election_results
  • 「投票区 28010001 の得票数を表示してください。」 get_election_return

アーカイブは2025-05-16に固定されているため、これら2つのツールは固定された公開記録を読み取ります。ツールはデータを取得しますが、解釈はしません。

新しい法律を追跡し、オープンデータセットを探す
  • 「今週、Official Gazette は何を公開しましたか?」 get_official_gazette_feed
  • 「HDX でフィリピンの洪水に関するデータセットを探してください。」 search_hdx_datasets

HDX の各データセットには個別のライセンスがあります。再利用する前に license_id を確認してください。

ツールではなくプロンプトから始める

3つの MCP プロンプトが複数ステップの作業をあらかじめ記述するため、クライアントはスラッシュコマンドや開始点として提供できます。

  • area_briefing(location) は、場所に関する詳細なブリーフィングを作成します。
  • infra_accountability_scan(area) は、調達レビューの手順を順に進めます。
  • psa_data_explorer(topic) は、検索、説明、クエリのループを実行します。

サーバー自体に関する質問に答えるツールが1つあります。get_data_freshness は、実行中のバージョン、ツール数、キャッシュ期間とライセンスを含むすべてのソース、 ホストごとのヘルス状態、キャッシュの経過時間を報告します。

クライアントがツールを呼び出さずに読み取れるコンテキストを、2つの MCP リソースが提供します。

  • data://ph-civic/source-catalog は、ソース、鮮度、ライセンスの一覧です。
  • data://ph-civic/civic-framing は、説明責任に関する出力の言語ルールです。

41個すべてのツールの完全なシグネチャ、引数、制限については、 docs/tool-reference.md をご覧ください。

ある場所の詳細なプロフィールを取得する

get_area_profile("Tacloban") は解決された識別情報を返し、次に 地域全体の人口ではなく、国全体の人口と並べてタクロバン自身の人口を報告します。

{
 "resolved": {
  "name": "City of Tacloban",
  "psgc_code": "083747000",
  "level": "city"
 },
 "demographics": {
  "population": 259353,
  "population_year": 2024,
  "population_census": "2024 Census of Population",
  "population_reference": "PSA 2024 Census of Population, reference date 2024-07-01.",
  "population_geography_level": "highly_urbanized_city",
  "population_psgc_code": "0831600000",
  "poverty_incidence_pct": 20.6,
  "poverty_reference_year": 2023
 },
 "national_reference": {
  "population": 112729484,
  "population_year": 2024,
  "poverty_incidence_pct": 10.9,
  "poverty_year": 2023,
  "population_share_pct": 0.23,
  "poverty_gap_pct_points": 9.7
 },
 "blocks": {
  "resolve": "success",
  "population": "success",
  "poverty": "success",
  "hazard": "success",
  "weather": "success",
  "national_population": "success",
  "national_poverty": "success",
  "infra": "success"
 },
 "upstream_error": false,
 "caveats": []
}

2026-09-03 にライブデータを取得しました。以前のバージョンが報告していた約460万人の Region VIII の数値に代わり、タクロバン自身の人口である259,353人が表示されます。 人口の数値がどの地域に属するものかエージェントが推測する必要がないよう、 人口統計の各項目には、それぞれの国勢調査、基準日、地理レベルが明記されています。

サービス停止時にも空のリストではなくエンベロープを返す

リストを返すツールは、成功時には実際のリストを返します。上流で障害が発生した場合は、 代わりにエンベロープを返します。

{ "results": [], "upstream_error": true, "caveats": ["ConnectError: ..."] }

これは「ソースに接続できなかった」という意味であり、「地震がない」や「通知がない」 という意味ではありません。失敗はキャッシュに保存されないため、再試行には意味があり、 caveats エントリーには例外クラス名ではなく実際のエラーが含まれます。

すべての単一値ツールは、data_status に次の5つの値のいずれかを設定します。

data_status意味
successソースが出所情報とともに値を返しました。
emptyソースは応答しましたが、このリクエストに該当する行はありません。
unavailableソースが応答しなかったか、読み取り不能な本文を送信しました。
indeterminateソースは応答しましたが、サーバーは結果を信頼できません。
invalid_request呼び出し元が不正な引数を送信しました。caveats に記載された引数を修正してください。

upstream_error と validation_error は data_status から導出されるため、 呼び出し元はどちらのフィールドに基づいても分岐できます。get_area_profile は blocks 内のブロックごとにステータスを報告し、失敗したすべてのブロックを caveats にまとめるため、数値が null であるのに caveats のリストが空という状態にはなりません。

すべてのレスポンスには source と data_retrieved_at が含まれます。

ソースと鮮度

以下の表は、server.py の SOURCE_CATALOG から scripts/render_source_matrix.py を通じて直接生成されるため、 サーバーが実際に報告する内容との食い違いは生じません。

ソース提供される情報更新頻度キャッシュ TTLライセンス
PSGC地域コードと名称。地方自治体からバランガイまでPSA が新しい PSGC バージョンを公開した際に更新(年次または四半期ごと)24 hパブリックドメイン(PSA Philippine Standard Geographic Code)
PHIVOLCS 地震地震イベントと詳細な速報5 分ごとに表を更新。速報はイベントごとに公開5 min公開情報、PHIVOLCS の公開速報ページ
PHIVOLCS 火山監視対象の火山ごとの警戒レベルと速報活火山ごとに毎日速報を公開30 min公開情報、PHIVOLCS の公開速報ページ
PAGASA 予報10 日間の天気予報。Open-Meteo によるフォールバックあり1 日 2 回発表。Open-Meteo は 1 時間ごとに更新1 hOpen-Meteo CC-BY 4.0/PAGASA の利用条件
PAGASA 台風発生中の台風速報と気象警報台風発生中は 3〜6 時間ごとに速報10 min公開情報、PAGASA の速報ページ
PhilGEPS 公告/インフラ調達公告、インフラ関連のサブセット、支出概要最新の入札公告約 100 件。6 時間ごとに更新6 h公開情報、PhilGEPS の公開公告一覧
PSA OpenSTAT人口、貧困、CPI、労働、保健、および統計カタログ全体テーブルごとに基準時点が異なります。人口:2024 年人口センサス(基準日 2024-07-01)、年別の 2010 年、2015 年、2020 年のデータ。貧困:2023 年。CPI/インフレ率:最新の公表月(遅延あり)。労働力調査:最新の公表四半期。保健(1D):指標ごと24 hPSA オープンデータ利用条件
地域プロフィール(自動構成)以下の各ソースからリアルタイムに構成した地域プロフィールPSGC + PSA + PhilGEPS + PHIVOLCS + PAGASA からリアルタイムに構成。各項目には独自の基準期間が付与されます1 h公開情報、PSA OpenSTAT、PSGC、PhilGEPS、PHIVOLCS、PAGASA
NASA POWER任意の地点の日別日射量と気候データ毎日更新、約 3 日の遅延24 hパブリックドメイン(NASA)
Open-Meteo 大気質PM2.5、PM10、NO2、SO2、O3、CO、および AQI1 時間ごと15 minOpen-Meteo CC-BY 4.0
Open-Meteo 洪水予報最寄りの河川グリッドセルの日別河川流量予測(GloFAS モデル)GloFAS モデルの実行は毎日1 hOpen-Meteo CC-BY 4.0
NASA MODIS NDVI任意の地点の NDVI および EVI 植生指数16 日間の合成データ、約 14 日の遅延24 hパブリックドメイン(NASA/ORNL)
USGS FDSNPHIVOLCS と照合したフィリピン地域の地震リアルタイムの全世界フィード10 minパブリックドメイン(USGS)
NOAA IBTrACSフィリピン責任区域(AOR)を通過した過去の熱帯低気圧の経路年次更新24 hパブリックドメイン(NOAA)
World Bank Open Dataフィリピンのマクロ経済指標年次。遅延は指標によって異なります24 hWorld Bank Open Data CC-BY 4.0
HDX人道支援データセットの検索。ライセンスはデータセットごとdataset ごとの metadata_modified に基づきます。カタログはクエリごとに最新の状態で検索されます6 hHDX(Humanitarian Data Exchange)CKAN API。ライセンスはデータセットごと
Official Gazette RSS布告、覚書通達、その他の政府発行文書新しい発行文書は当日中に掲載。フィードはリクエストごとに再構築20 min公開情報、Official Gazette の政府記録、RA 8293 section 176 の既定条件
PAGASA 公開ファイル勧告、速報、高潮に関する PDF ファイルの生データ一覧weather_advisory は約 6 時間ごとに更新。速報はサイクロン発生中のみ。stormsurge は 2019-12-02 以降公開されていません15 minPAGASA 公開ファイル(pubfiles.pagasa.dost.gov.ph)、政府記録
PSICコードの接頭辞または説明による産業分類コードの検索PSIC の改訂は数年単位で行われます24 hPSA Philippine Standard Industrial Classification(PSIC)、CC BY 4.0
COMELEC 2025 年選挙結果地方自治体からバランガイまでの投票所別得票数アーカイブは 2025-05-16 10:00:09 AM に凍結。固定された公開記録であり、ライブフィードではありません24 h公開情報、COMELEC 2025 年選挙結果アーカイブ
環境変数はPAGASA_API_TOKENのみで、設定は任意です。
PAGASAでは正式な申請を経て取得する必要があります。トークンがない場合、予報には
Open-Meteoを使用します。41個すべてのツールは、トークンなしで動作します。

明記しておくべき、3つのデータ時点:

  • 人口データは、デフォルトで2024年人口センサスを参照します。psgc_codeを指定すると、バランガイレベルまで取得できます。PSAは2026年にOpenSTAT上のセンサスフォルダーを移動したため、サーバーはコールドスタートのたびにタイトルからフォルダーを特定し、すべての結果にセンサス名、基準日、地理レベルを記載します。2010年、2015年、または2020年のデータにはyearを、市、自治体、またはバランガイのデータにはpsgc_codeを指定してください。
  • 貧困データは2023年通年分です。 PSAは3年ごとに公開しています。
  • 調達データはリアルタイムではありません。 公開ポータルにはフィルター可能なAPIがないため、このサーバーは最新の約100件の通知を読み込み、ローカルでフィルターを適用します。10万人あたりの率を算出するには、サンプルに少なくとも500件の通知が必要です。そのため、件数がしきい値に達しない場合、get_area_profileはその数値を表示せず、理由をcaveatsに記載します。

OpenSTATのupdatedフィールドは、データ時点ではなくサーバーの現在時刻を示します。データ時点はテーブル自体の時間ディメンションを確認してください。各レスポンスに記載されています。

フラグが付いた通知は調査の出発点であり、証拠ではありません

flag_infra_anomalies、summarize_infra_spending、および調達検索の結果は、調査の出発点であり、不正行為の証拠ではありません。フラグが付いた項目にはすべて免責事項が付属し、サーバーはエージェントに、根拠を示せる表現を使うよう指示します。

high_cost_no_published_progressは、実際に確認する内容を表す名前です。公開リストにはどの通知についても進捗データが掲載されていないため、これは費用しきい値に基づく透明性フラグであり、プロジェクトごとの進捗確認ではありません。

**緊急時はndrrmc.gov.phおよびPHIVOLCSとPAGASAの公式チャンネルを利用してください。**これは人命の安全を守るためのシステムではなく、調査用ツールです。

開発

git clone https://github.com/xmpuspus/ph-civic-data-mcp
cd ph-civic-data-mcp
uv sync --extra dev

# Offline tests, exactly what CI runs
uv run pytest -m "not live"

# Live tests against real upstreams; the weekly workflow runs these every Monday
uv run pytest -m live

# Lint and format check
uv run ruff check .
uv run ruff format --check .

# Build and validate
uv build
uvx twine check dist/*

CIでは、Python 3.11、3.12、3.13、3.14でオフラインテストを実行するほか、Ruff lint、Ruff format、ビルド、および新しいプロセスでのインポート時に41個すべてのツールが公開されることを確認します。CIアクションの参照先は可変タグではなく、コミットSHAに固定されています。

上記のdocker buildステップでは、ヘルスチェックを備えた非rootイメージが生成されます。サーバーはfastmcp>=4.0.0,<5.0.0に固定しており、現在はMCP SDK 2.1.1上の4.0.2を使用しています。

詳細情報

MITライセンス。Xavier Puspusが開発しました。PSA、PHIVOLCS、PAGASA、PhilGEPS、DPWH、NASA、NOAA、またはWorld Bankとは提携していません。

コメント

MCP は初めてですか?

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

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