Skip to main content
Glama

Crossing Incidents

crossing_incidents
Read-onlyIdempotent

Highway-rail grade crossing collisions in the US — trains striking cars, trucks, pedestrians and cyclists at railroad crossings (FRA Form 57, 1975–present). Each incident carries the date, railroad, USDOT crossing id, state, county and city, road name, road user type and action (e.g. drove around gate, stopped on crossing), vehicle and train speed, crossing warning devices, weather, killed and injured. Newest first. Filter by state, county, city, year, railroad or a specific crossing id. Use for "railroad crossing accidents in Harris County Texas", "pedestrians hit by trains in California 2024", "incidents at crossing 812329E".

Input Schema

NameRequiredDescriptionDefault
cityNoCity name, matched as a substring, e.g. "Houston".
yearNoCalendar year of the incident (1975–present).
limitNoMax incidents to return (default 25, max 200).
stateNoUS state as a two-letter code or full name, e.g. "TX" or "Texas".
countyNoCounty name, e.g. "Harris" (matched case-insensitively, "County" suffix optional).
railroadNoRailroad reporting-mark code ("UP", "BNSF") or part of its name.
fatal_onlyNoOnly incidents with at least one person killed.
crossing_idNoUSDOT grade crossing inventory number, e.g. "812329E".
highway_userNoRoad user type, matched as a substring: "Auto", "Truck", "Truck-trailer", "Pick-up truck", "Pedestrian", "Bus", "Motorcycle", "Van", "Other motor vehicle".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so safety is covered. The description adds genuine context beyond that: the underlying dataset (FRA Form 57), temporal coverage since 1975, sort order (newest first), and the full set of attributes returned per incident. It omits pagination/limit behavior, which is filled in by the schema.

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?

Front-loads the resource and scope in the first clause, then the record contents, then filters, then example queries — a logical progression. The long comma-separated field list is dense but each element is informative; only marginal trimming would be possible.

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?

With no output schema, the description takes on the burden of describing return contents, and it does so thoroughly: entity fields, road-user action categories, speeds, warning devices, weather, and casualty counts. Combined with the filter list and sort order, an agent has everything needed to call and interpret results.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all nine parameters in detail, including enum-like value lists for highway_user. The description's filter list (state, county, city, year, railroad, crossing id) partly mirrors the schema and notably omits fatal_only and highway_user, adding little beyond what's already structured. Baseline 3 applies.

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?

States a specific resource (highway-rail grade crossing collisions), its source (FRA Form 57), its geographic and temporal scope (US, 1975–present), and the entity fields each record carries. This clearly separates it from the broader rail_accidents/rail_accident_summary siblings, which cover rail events generally rather than crossing collisions.

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

Usage Guidelines4/5

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

Gives concrete usage contexts with three example queries and enumerates every filter dimension, so an agent can infer when to reach for this tool. It stops short of explicitly naming the siblings (rail_accidents, rail_accident_summary) or stating when *not* to use it, e.g. for non-crossing rail incidents.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.