Service incidents
get_incidentsGet current transit incidents and service advisories for DC Metro or NYC Subway.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| incidents | Yes |
get_incidentsGet current transit incidents and service advisories for DC Metro or NYC Subway.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes |
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| incidents | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds only that incidents are 'current' (a freshness signal); it discloses nothing about rate limits, auth, or result scope, and an output schema exists so return details are unnecessary here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is appropriately sized for a one-parameter lookup tool, though it is terse enough that it could have absorbed one more clause about usage without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich annotation set, an output schema, and a single enum parameter, the description covers what an agent needs: what it returns (incidents/advisories), for which cities, and that data is current. Only the absence of sibling routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It maps the enum values to human meaning: 'DC Metro' for dc and 'NYC Subway' for nyc, which is genuinely useful beyond the bare enum in the schema. It does not add format or default details, keeping it at a 4 rather than 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('current transit incidents and service advisories'), and coverage scope ('DC Metro or NYC Subway'). It implicitly distinguishes itself from get_elevator_incidents and get_sfbay_incidents by naming the cities served, though it does not name siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'current' (real-time incidents) and the city scope, but there is no explicit when-to-use guidance, no statement of exclusions, and no routing to the elevator or SF Bay incident siblings. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.