Skip to main content
Glama
xmpuspus

ph-civic-data-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PAGASA_API_TOKENNoOptional API token for PAGASA TenDay; if not provided, weather data falls back to Open-Meteo (no auth required)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
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

NameDescription
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_earthquakesB

Get the latest earthquake events from PHIVOLCS.

get_earthquake_bulletinA

Get the full bulletin for a PHIVOLCS earthquake event.

get_volcano_statusB

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 [] with a caveat when the page is reachable but the state is ambiguous, and [] with the explicit "no active warnings" signal when the homepage says so. For real-time advisories, call bagong.pagasa.dost.gov.ph directly.

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 region argument is recorded as a caveat because this table has no regional breakdown.

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 indicator to fuzzy-match any table published under the Health subject — the available list is browse-discovered, never hardcoded.

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_hierarchyB

Return the full chain region -> province -> city/municipality -> barangay for one PSGC code.

search_infra_projectsB

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_spendingC

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:

  • duplicate_titles_same_agency: same agency files multiple notices with effectively identical titles (case-insensitive) within the window

  • high_cost_no_published_progress: cost_php exceeds min_cost_php. The PhilGEPS open listing publishes no progress data for ANY notice, so this is a cost-threshold transparency flag, not a project-specific "progress is missing" finding.

  • hazard_overlap: project location keywords overlap with a recent PHIVOLCS earthquake (>=M4.0 in last 30d) or an active PAGASA typhoon footprint, suggesting urgency or post-disaster reconstruction context

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').

Prompts

Interactive templates invoked by user choice

NameDescription
area_briefingBuild a sourced civic briefing for one Philippine location using get_area_profile, with hazard and economy context.
infra_accountability_scanRun an infra-spending accountability scan for a region or province using search_infra_projects + flag_infra_anomalies, with the required defensible framing.

Resources

Contextual data attached and managed by the client

NameDescription
source_catalog_resourceThe 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_resourceThe civic-tech framing and disclaimer that applies to every accountability / procurement result from this server.

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