ph-civic-data-mcp
ph-civic-data-mcp
フィリピン政府のデータ(地震、気象、台風、調達、人口、大気質)をAIエージェントで利用するための初のMCPサーバーです。
ph-civic-data-mcpは、コストゼロのstdioトランスポートMCPサーバーです。PHIVOLCS、PAGASA、PhilGEPS、PSA、AQICN/EMBからのライブデータを、Claude Desktop、Claude Code、Cursor、またはMCP互換クライアントが直接呼び出せるツールとして公開します。
デモ
以下の各GIFは、docs/live_demo.pyを実際にVHS録画したものです。このPyPIリリースからuvx ph-civic-data-mcpを起動し、実際のMCP stdioプロトコル経由で各ツールを呼び出しています。表示されているパネルには、サーバーから返された実際のJSONが含まれています。演出は一切ありません。
1回のセッションで5つのソースすべてから8つのツールを網羅するグランドツアー:

ソースごとのウォークスルーは以下の通りです。ローカルで再現するには:uv run python docs/live_demo_single.py <suite>を実行してください。
なぜこれが必要なのか
フィリピンの市民データポータルはオープンデータを公開していますが、それぞれが独自のスキーマ(スクレイピングされたHTMLテーブル、PXWeb JSON、文書化されていないAPIなど)を持っています。AIエージェントのためにそれらを統合するものはありませんでした。このサーバーがそれを実現します。
2026年4月現在、GitHubやPyPIに先行事例はありません。近いものとして、panukatan/lindol(R言語、PHIVOLCSのみ)、pagasa-parser(JS、PAGASAのみ)があります。
インストール
uvx ph-civic-data-mcpまたはpip経由:
pip install ph-civic-data-mcpセットアップ
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.jsonに追加してください:
{
"mcpServers": {
"ph-civic-data": {
"command": "uvx",
"args": ["ph-civic-data-mcp"],
"env": {
"AQICN_TOKEN": "your_free_token_from_aqicn.org",
"PAGASA_API_TOKEN": "optional_pagasa_token"
}
}
}
}Claude Code
.claude/settings.jsonに追加してください:
{
"mcpServers": {
"ph-civic-data": {
"command": "uvx",
"args": ["ph-civic-data-mcp"],
"env": {
"AQICN_TOKEN": "your_token"
}
}
}
}またはClaude Code CLI経由でインストール:
claude mcp add ph-civic-data -- uvx ph-civic-data-mcpCursor、Zed、その他のMCPクライアント
stdio MCPトランスポートをサポートするクライアントであれば動作します。コマンドをuvx ph-civic-data-mcpに向け、AQICN_TOKENを環境変数として渡してください。
質問の例
セットアップ後、エージェントに以下のように尋ねることができます:
"過去24時間にフィリピンで発生した地震は?"
"タール火山は現在活動中ですか?"
"ケソン市の3日間の天気予報は?"
"現在、フィリピンに活動中の台風はありますか?"
"PhilGEPSで洪水対策の契約を検索して。"
"PSAに基づく第7地域の人口は?"
"ビコル地域の貧困発生率は?"
"マニラの大気質は現在どうですか?"
"レイテ島のマルチハザードリスクプロファイルを教えて。"
ソース別デモ
PHIVOLCS — 地震 + 火山警戒レベル

PAGASA — 天気予報 + 台風追跡

PhilGEPS — 調達検索 + 集計

PSA — 人口(2020年国勢調査) + 貧困(2023年通年)

AQICN — リアルタイム大気質

ソース横断 — 並列マルチハザードリスクプロファイル

デモの作成方法
docs/live_demo.pyとdocs/live_demo_single.pyは、uvx ph-civic-data-mcp(このPyPIリリースに解決されます)を指すMCP StdioTransportを開き、ツールを呼び出し、Rich(パネル、テーブル、構文強調表示されたJSON、ライブスピナー)を使用して応答をレンダリングします。vhsが実際のターミナルを操作してセッションを記録します。テープはdocs/*.tapeにコミットされています。
データソース
ソース | データ | 更新頻度 | 認証 |
PHIVOLCS | 地震、速報、火山警戒 | 5分(地震)、30分(火山) | なし |
PAGASA | 10日間天気、活動中の台風、警報 | 毎時 | オプション |
Open-Meteo | PAGASAトークンがない場合の天気予備 | 毎時 | なし |
PhilGEPS | 政府調達通知(最新約100件) | 6時間(キャッシュ) | なし |
PSA OpenSTAT | 人口(2020年国勢調査)、貧困(2023年) | 定期的 | なし |
AQICN | フィリピン各都市のリアルタイム大気質 | 15分 | 必須 |
すべてのツール
ツール | 説明 | 主要パラメータ |
| フィリピンの最近の地震 |
|
| 特定イベントのPHIVOLCS詳細速報 |
|
| 監視対象火山の警戒レベル |
|
| 1〜10日間の予報(PAGASAまたはOpen-Meteo) |
|
| フィリピン責任範囲(PAR)内の活動中台風 | — |
| PAGASAの活動中警報 |
|
| PhilGEPS通知のキーワード検索 |
|
| 調達統計の集計 |
|
| 2020年国勢調査人口 |
|
| 2023年通年貧困発生率 |
|
| リアルタイムAQI + 汚染物質 |
|
| マルチハザードプロファイル(PHIVOLCS + PAGASA + AQICN並列) |
|
環境変数
変数 | 必須 | 備考 |
|
| 無料: https://aqicn.org/data-platform/token/ (1,000リクエスト/分、即時発行) |
| オプション | 正式なPAGASAへの申請が必要。なしの場合、天気は自動的にOpen-Meteoにフォールバックします。 |
注: AQICNのdemoトークンは上海のデータしか返さず、フィリピンの都市では機能しません。本物のトークン(無料、1分以内)を登録する必要があります。
データの鮮度に関する警告
人口: 2020年国勢調査。これより新しい全国データはまだ存在しません。
貧困: 2023年通年貧困統計(最新のPSAリリース)。
調達: PhilGEPSオープンデータは、外部からフィルタリング可能な検索を公開していません。このサーバーは最新の約100件の入札通知をスクレイピングし、クライアント側でフィルタリングします。6時間キャッシュされます。
緊急時: リアルタイムの災害対応については、常にndrrmc.gov.phおよびPHIVOLCS/PAGASAの公式チャンネルを確認してください。このサーバーは研究用であり、人命に関わる決定のためのものではありません。
アーキテクチャ
Python 3.11+,
fastmcp>=3.0.0,<4.0.02つのHTTPクライアント: 標準 +
verify=Falseを設定したPHIVOLCS_CLIENT(PHIVOLCSはSSL証明書チェーンに不備があるため)。SSL検証はグローバルには決して無効化されません。ソースごとのメモリ内TTLキャッシュ。ディスク書き込みなし。
stdioトランスポートのみ(ホスティングコストゼロ)。
PSAテーブルパスはPXWebブラウズAPI経由で検出され、ハードコードは一切ありません。
開発
git clone https://github.com/xmpuspus/ph-civic-data-mcp
cd ph-civic-data-mcp
uv sync --extra dev
# MCP Inspector
fastmcp dev src/ph_civic_data_mcp/server.py
# Tests (run against live APIs)
uv run pytest tests/ -v
# Build
uv run python -m build
uv run twine check dist/*制限事項
PAGASAトークンは制限されています。 非政府ユーザーは拒否される可能性があります。Open-Meteoへのフォールバックにより、ハード依存関係ではなくなっています。
AQICNトークンが必須です。 無料ですが申請が必要です。
PhilGEPSはリアルタイムではありません。 公開ポータルはフィルタリング可能なAPIを公開していないため、このサーバーは最新の約100件の通知に対してクライアント側でフィルタリングを行います。
緊急時: ユーザーを公式チャンネルへ誘導してください。これは研究ツールです。
ロードマップ (v0.2.0)
NDRRMC監視ダッシュボード経由の
get_active_disasters/get_situational_reportHazardHunterPH ArcGIS REST API経由の
assess_hazard(lat, lng)— 座標ごとの洪水/地震/地滑りリスク
先行事例
panukatan/lindol — PHIVOLCS地震用Rパッケージ
pagasa-parser — PAGASAデータ解析用JS組織
どちらもPythonではなく、マルチソースでもMCPでもありません。本プロジェクトは両者に敬意を表します。
ライセンス
MIT。Xavier Puspus。PHIVOLCS、PAGASA、PhilGEPS、PSA、EMBとは提携していません。
貢献
問題報告やプルリクエストはgithub.com/xmpuspus/ph-civic-data-mcpまで歓迎します。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xmpuspus/ph-civic-data-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server