Server data from the Official MCP Registry
Philippine government data (PHIVOLCS, PAGASA, PhilGEPS, PSA, AQICN) as 12 MCP tools.
Philippine government data (PHIVOLCS, PAGASA, PhilGEPS, PSA, AQICN) as 12 MCP tools.
Valid MCP server (3 strong, 4 medium validity signals). 4 known CVEs in dependencies (1 critical, 1 high severity) Package registry verified. Imported from the Official MCP Registry.
5 files analyzed · 5 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: AQICN_TOKEN
Environment variable: PAGASA_API_TOKEN
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-xmpuspus-ph-civic-data-mcp": {
"env": {
"AQICN_TOKEN": "your-aqicn-token-here",
"PAGASA_API_TOKEN": "your-pagasa-api-token-here"
},
"args": [
"ph-civic-data-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
The first MCP server for Philippine government data — earthquakes, weather, typhoons, procurement, population, and air quality — in your AI agent.
ph-civic-data-mcp is a zero-cost, stdio-transport MCP server that exposes live data from PHIVOLCS, PAGASA, PhilGEPS, PSA, and AQICN/EMB as tools that Claude Desktop, Claude Code, Cursor, or any MCP-compatible client can call directly.
Every GIF below is a real VHS recording of docs/live_demo.py — it spawns uvx ph-civic-data-mcp from this PyPI release and calls each tool over the real MCP stdio protocol. The panels you see contain the actual JSON returned by the server. Nothing is staged.
A grand tour hitting 8 tools across all 5 sources in one session:

Per-source walkthroughs below. To reproduce any of them locally: uv run python docs/live_demo_single.py <suite>.
Philippine civic-data portals publish open data, but each in its own schema — scraped HTML tables, PXWeb JSON, undocumented APIs. Nothing ties them together for an AI agent. This server does.
Zero prior art on GitHub or PyPI as of April 2026. Closest: panukatan/lindol (R, PHIVOLCS only), pagasa-parser (JS, PAGASA only).
uvx ph-civic-data-mcp
Or via pip:
pip install ph-civic-data-mcp
Add to ~/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"
}
}
}
}
Add to .claude/settings.json:
{
"mcpServers": {
"ph-civic-data": {
"command": "uvx",
"args": ["ph-civic-data-mcp"],
"env": {
"AQICN_TOKEN": "your_token"
}
}
}
}
Or install via the Claude Code CLI:
claude mcp add ph-civic-data -- uvx ph-civic-data-mcp
Any client that supports the stdio MCP transport works. Point the command at uvx ph-civic-data-mcp and pass AQICN_TOKEN as env.
After setup, ask your agent:






docs/live_demo.py + docs/live_demo_single.py open an MCP StdioTransport pointing at uvx ph-civic-data-mcp (which resolves to this PyPI release), call the tools, and render the responses with Rich (panels, tables, syntax-highlighted JSON, live spinners). vhs drives a real terminal and records the session. Tapes are committed under docs/*.tape.
| Source | Data | Update frequency | Auth |
|---|---|---|---|
| PHIVOLCS | Earthquakes, bulletins, volcano alerts | 5 min (earthquakes), 30 min (volcanoes) | None |
| PAGASA | 10-day weather, active typhoons, alerts | Hourly | Optional PAGASA_API_TOKEN |
| Open-Meteo | Weather fallback when PAGASA token absent | Hourly | None |
| PhilGEPS | Government procurement notices (latest ~100) | 6 h (cached) | None |
| PSA OpenSTAT | Population (2020 Census), poverty (2023) | Periodic | None |
| AQICN | Real-time air quality for PH cities | 15 min | Required AQICN_TOKEN (free) |
| Tool | Description | Key params |
|---|---|---|
get_latest_earthquakes | Recent PH earthquakes | min_magnitude, limit, region |
get_earthquake_bulletin | Full PHIVOLCS bulletin for one event | bulletin_url |
get_volcano_status | Alert level per monitored PH volcano | volcano_name |
get_weather_forecast | 1–10 day forecast (PAGASA or Open-Meteo) | location, days |
get_active_typhoons | Active tropical cyclones in/near PAR | — |
get_weather_alerts | Active PAGASA warnings | region |
search_procurement | Keyword search on PhilGEPS notices | keyword, agency, region, date_from/to, limit |
get_procurement_summary | Aggregate procurement stats | agency, region, year |
get_population_stats | 2020 Census population | region |
get_poverty_stats | 2023 Full-Year poverty incidence | region |
get_air_quality | Real-time AQI + pollutants | city |
assess_area_risk | Multi-hazard profile (parallel PHIVOLCS + PAGASA + AQICN) | location |
| Variable | Required | Notes |
|---|---|---|
AQICN_TOKEN | Yes for get_air_quality | Free: https://aqicn.org/data-platform/token/ (1,000 req/min, instant) |
PAGASA_API_TOKEN | Optional | Requires formal PAGASA request. Without it, weather auto-falls-back to Open-Meteo. |
Note: the AQICN demo token only returns data for Shanghai and will not work for Philippine cities. You must register for a real token (free, <1 minute).
fastmcp>=3.0.0,<4.0.0PHIVOLCS_CLIENT with verify=False (PHIVOLCS has a broken SSL cert chain). SSL verification is never disabled globally.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/*
get_active_disasters / get_situational_report via NDRRMC monitoring dashboardassess_hazard(lat, lng) via HazardHunterPH ArcGIS REST API — per-coordinate flood/earthquake/landslide riskNeither is Python, multi-source, or MCP. This project credits both.
MIT. Xavier Puspus. Not affiliated with PHIVOLCS, PAGASA, PhilGEPS, PSA, or EMB.
Issues and PRs welcome at github.com/xmpuspus/ph-civic-data-mcp.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.