ph-civic-data-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PAGASA_API_TOKEN | No | Optional API token for PAGASA TenDay; if not provided, weather data falls back to Open-Meteo (no auth required) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_data_freshnessA | Server health + data-source catalog probe. Doubles as the canonical version/health endpoint: returns server_version so agents can confirm which release they are talking to. Also returns the full upstream-source catalog with cache TTLs, freshness expectations, and licenses — useful when deciding whether a stale cached response is OK or a re-fetch is needed. Returns: server_version, server_name, transport, tool_count, asof, sources (list of {source, source_url, freshness, cache_ttl_seconds, license}), note. |
| get_latest_earthquakesA | Get the latest earthquake events from PHIVOLCS. |
| get_earthquake_bulletinA | Get the full bulletin for a PHIVOLCS earthquake event. |
| get_volcano_statusA | Get current alert level for Philippine volcanoes. |
| get_weather_forecastA | Get weather forecast for a Philippine location. Uses PAGASA TenDay API when PAGASA_API_TOKEN is set, Open-Meteo otherwise. |
| get_active_typhoonsA | Get active tropical cyclones in/near the Philippine Area of Responsibility (PAR). Returns empty list if none active. If the PAGASA bulletin page is unreachable, returns {results: [], upstream_error: true, caveats} instead, so an outage is never read as "no active typhoons". |
| get_weather_alertsA | Get active PAGASA weather alerts and advisories. The PAGASA homepage embeds alert names ("Heavy Rainfall Warning",
"Flood Advisory") in its navigation menu and breadcrumbs as well as
in actual active-warning sections. We can reliably detect the
"No Active Warnings" state but cannot yet isolate active warnings
from chrome text. To avoid fabricated advisories, this tool returns
|
| search_procurementA | Search PH government procurement from PhilGEPS open data. Note: the PhilGEPS public portal does not expose server-side search for external clients, so this tool fetches the latest ~100 bid notices and filters them in-memory. Data is cached 6 hours. Keyword/agency/region filters are applied client-side (case-insensitive substring match). |
| get_procurement_summaryA | Aggregate procurement statistics over the latest notices cached from PhilGEPS. |
| get_population_statsA | Philippine population from PSA OpenSTAT (2020 Census). |
| get_poverty_statsB | Poverty incidence from PSA (latest: 2023 Full-Year). |
| get_inflation_statsA | Headline consumer-price inflation (year-on-year, all items) from PSA. Source: PSA OpenSTAT Consumer Price Index, 2018-based. The tool discovers the current CPI series by text (never a hardcoded table id) and returns the most recently published month's year-on-year change. Reports the exact reference period — PSA publishes with a lag, so this is the latest available figure, not necessarily the current month. |
| get_labor_statsA | Key labor-force indicators from the PSA Labor Force Survey. Returns labor-force participation, employment, unemployment, and
underemployment rates for the latest published reference period. The PSA
key-indicator series is national; a |
| get_health_indicatorsA | National health indicators from PSA OpenSTAT (subject 1D). With no argument, returns the curated national headline set (maternal
mortality ratio and total fertility rate). Pass a free-text |
| resolve_ph_locationA | Fuzzy-resolve a Philippine place name to its canonical PSGC record. |
| list_admin_unitsA | Browse children of a PSGC node, or top-level regions when parent_code is None. |
| get_location_hierarchyA | Return the full chain region -> province -> city/municipality -> barangay for one PSGC code. |
| search_infra_projectsA | Search Philippine government infrastructure projects. Backed by PhilGEPS open notice listing filtered for infra-related work (construction / road / bridge / flood control / drainage / school building / civil works). Source: https://www.philgeps.gov.ph/. Approved budget amounts are not published in the open notice listing, so cost_php is null in most records. The DPWH transparency portal API is currently blocked by Cloudflare and not used. |
| get_infra_projectA | Return the full record for one infrastructure project by project_id. |
| summarize_infra_spendingA | Aggregate infrastructure procurement statistics over the latest PhilGEPS window. |
| assess_area_riskA | Multi-hazard risk assessment combining PHIVOLCS + PAGASA. Makes parallel upstream calls to PHIVOLCS (earthquakes, volcano alert levels) and PAGASA (active typhoons, weather alerts). Expect 3-6 second response time. |
| flag_infra_anomaliesA | Flag PhilGEPS infrastructure projects that warrant further review by cross-referencing PHIVOLCS earthquakes and PAGASA typhoon footprints. This tool emits heuristic anomaly indicators, not accusations. Every flagged item ships with the rule that fired and a disclaimer noting that patterns may have legitimate explanations. Heuristic rules:
|
| get_area_profileA | One-call correlated civic profile for a Philippine location. Resolves the place once to its PSA Standard Geographic Code, then composes demographics (population, poverty), economy (regional inflation, national labor), procurement activity, multi-hazard risk, and the short-range weather outlook — in a single agent turn instead of eight. Adds derived cross-source context (e.g. infrastructure notices per 100k residents) so the caller does not have to normalize raw counts itself. |
| get_solar_and_climateA | Daily solar irradiance + climate variables from NASA POWER for any coordinate. Returns daily all-sky surface shortwave irradiance (kWh/m²/day), 2m temperature (°C), corrected precipitation (mm/day), and 2m wind speed (m/s). Useful for solar energy siting, agricultural planning, and historical climate analysis. |
| get_air_qualityA | Real-time air quality for a Philippine city via Open-Meteo (no API key). Returns PM2.5, PM10, CO, NO2, SO2, O3 plus European AQI and US AQI with category interpretation. Covers ~80 major PH cities via local coordinate table. For unlisted locations, caller can pass coordinates directly via the latitude/longitude form in a future version. |
| get_vegetation_indexA | NASA MODIS MOD13Q1 NDVI + EVI vegetation index at any coordinate. NDVI (Normalized Difference Vegetation Index) ranges -1..1. Higher values indicate denser healthy vegetation. EVI is more sensitive in high-biomass areas. Composite period is 16 days at 250m resolution. Useful for agricultural monitoring, deforestation tracking, drought stress indicators. |
| get_usgs_earthquakes_phA | Philippine-region earthquakes from USGS, cross-reference to PHIVOLCS. Returns events inside the PH bounding box (lat 4..22, lng 115..130) that USGS has catalogued, including international-standard Mww/Mwc magnitudes and depth solutions. Complements PHIVOLCS with global-network analysis. |
| get_historical_typhoons_phA | Historical tropical cyclone tracks that passed through the Philippine AOR. Sourced from NOAA IBTrACS (International Best Track Archive) — the authoritative global archive for tropical cyclone tracks. Filtered to the Western Pacific basin + coordinates inside the Philippine Area of Responsibility, aggregated per storm. Returns peak intensity, minimum pressure, and track period. |
| get_world_bank_indicatorA | World Bank macroeconomic/social indicator for the Philippines. Accepts a World Bank indicator code (e.g. 'NY.GDP.MKTP.CD') or a friendly alias (e.g. 'gdp', 'poverty_ratio', 'inflation', 'urban_population_pct'). |
| browse_psa_catalogA | List one level of the PSA OpenSTAT statistical catalog. OpenSTAT publishes roughly 2,900 tables across 27 subjects. This walks that tree one level at a time so an agent can find a dataset without guessing a table id. |
| describe_psa_datasetA | Read the dimensions and valid value codes of one PSA OpenSTAT dataset. Call this before query_psa_dataset. The query tool needs an explicit value code for every dimension, and those codes live here. |
| query_psa_datasetA | Run one bounded query against a PSA OpenSTAT dataset. Every dimension needs an explicit list of value codes from describe_psa_dataset. That is a hard requirement, not a convention: PXWeb expands an unselected dimension to all of its values, and PSA answers the resulting full-cube request with an HTTP 403. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| area_briefing | Build a sourced civic briefing for one Philippine location using get_area_profile, with hazard and economy context. |
| infra_accountability_scan | Run an infra-spending accountability scan for a region or province using search_infra_projects + flag_infra_anomalies, with the required defensible framing. |
| psa_data_explorer | Walk the PSA OpenSTAT statistical catalog safely: browse to a topic, describe the table, then run one bounded query with explicit codes. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| source_catalog_resource | The full upstream-source catalog: source name, canonical URL, freshness expectation, cache TTL, and license for every data source this server composes. Same payload as get_data_freshness.sources. |
| civic_framing_resource | The civic-tech framing and disclaimer that applies to every accountability / procurement result from this server. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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