Skip to main content
Glama
xmpuspus

ph-civic-data-mcp

by xmpuspus

PHIVOLCS earthquake bulletin

get_earthquake_bulletin
Read-onlyIdempotent

Fetches and parses the complete PHIVOLCS earthquake bulletin for a specified event URL, returning details like magnitude, location, time, and intensity reports.

Instructions

Get the full bulletin for a PHIVOLCS earthquake event.

Parses the bulletin page PHIVOLCS publishes for one event: magnitude, depth, location, date and time, and per-municipality intensity reports. Give the bulletin_url a prior get_latest_earthquakes call returned. A hand-built or off-host URL is refused before any fetch is attempted. Examples:

get_earthquake_bulletin("https://phivolcs.dost.gov.ph/index.php") # real bulletin URL shape

On failure: an empty, malformed, or non-PHIVOLCS bulletin_url, or a 404 on the page itself, returns a dict with url, source, caveats, and data_retrieved_at only, with no data_status, upstream_error, magnitude, or location fields. A fetch that raises an exception sets data_status "unavailable" and upstream_error true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bulletin_urlYesFull URL returned by get_latest_earthquakes.bulletin_url.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0
  2. Removedv1.0.4
  3. Addedv1.0.2

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, etc.), the description discloses substantial behavior: what data it parses (magnitude, depth, location, date/time, per-municipality intensity), and detailed failure handling (empty/malformed/non-PHIVOLCS/404 returns a dict without data_status or upstream_error; exceptions set data_status 'unavailable' and upstream_error true).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and well-structured, covering purpose, usage, example, and failure modes. It is slightly verbose with the example and failure specifics, but every sentence adds useful context, so it earns a strong score rather than a perfect one.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (one parameter, failure modes, external data source), the description is complete. It explains the input requirement, the parsing behavior, and all failure scenarios. Since an output schema exists, the description need not enumerate return fields, and it still covers edge cases thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes bulletin_url as 'Full URL returned by get_latest_earthquakes.bulletin_url.' The description adds meaning by reinforcing the source constraint, stating that hand-built or off-host URLs are refused, and giving an example URL shape. This goes beyond the schema's basic type/description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the full bulletin for a PHIVOLCS earthquake event.' It specifies the resource (PHIVOLCS bulletin) and distinguishes it from sibling tools like get_latest_earthquakes, which lists events rather than retrieving details for a single event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: pass a bulletin_url returned by a prior get_latest_earthquakes call, and explains that hand-built or off-host URLs are refused. This tells the agent exactly when and how to invoke the tool, and provides failure conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.