Skip to main content
Glama

get_road_signs

Read-only

Get live Caltrans message sign text for any California route or location to see current closures, chain controls, and hazards before they appear in other feeds.

Instructions

What Caltrans changeable message signs are displaying right now.

Data: statewide CMS sign text, blank and out-of-service signs already filtered - every record is a message a driver is physically seeing. Signs carry the road's operational truth ("CHAINS REQUIRED 10 MI AHEAD", "FULL CLOSURE HWY 96 DUE TO FIRE", "PREPARE TO STOP"), often before the event shows up in any other feed. Refresh: ~2-minute cache.

Filters: route (e.g. "I-80") and/or center "lat,lon" with radius_km. Quote sign text verbatim to the user - it is the most current and most local signal this server has.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
routeNo
centerNo
radius_kmNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.82.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already set readOnlyHint and openWorldHint, but the description adds substantial behavioral detail: blank and out-of-service signs are filtered, so every record is a physically visible message; there is a ~2-minute cache; and signs often lead other feeds in timeliness. These details go beyond the annotations and enrich the agent's mental model.

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

Conciseness5/5

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

The description is tight and well-ordered: purpose, data characteristics, filters, and a directive on quoting. Each sentence earns its place, and the most actionable instruction ('Quote sign text verbatim') is near the end but still prominent. No redundancy or fluff.

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 simplicity (3 optional params, no output schema), the description covers all necessary aspects: what data is returned (sign text), how it is filtered (blank/out-of-service removed), how fresh it is (~2-min cache), how to filter (route/center/radius), and what to do with the output (quote verbatim). An agent can invoke it correctly without ambiguity.

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?

With 0% schema description coverage, the description carries the full burden for parameters. It explicitly defines the route format ('I-80') and center format ('lat,lon'), and explains radius_km as a radius. It also clarifies that route and center are alternative filters ('and/or'). This fully compensates for the empty schema.

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 opens with a precise verb and resource: 'What Caltrans changeable message signs are displaying right now.' It clearly distinguishes this tool from siblings by focusing on CMS sign text, not incidents or closures, and even notes that signs often precede other feeds. The purpose is unmistakable.

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?

The description gives clear context on when to use this tool: it provides the most current and local signal, and instructs to quote sign text verbatim. It also explains filtering by route or center/radius. However, it does not explicitly name alternative tools for other data types (e.g., incidents) or state when not to use it, so it stops short of a full exclusionary guideline.

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