wsdot-mcp-server
Server Details
WA highway conditions, ferry schedules, vessel locations, toll rates, and border waits via MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cyanheads/wsdot-mcp-server
- GitHub Stars
- 1
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 12 of 12 tools scored.
All 12 tools have clearly distinct purposes, covering separate aspects of Washington State transportation: border waits, ferry operations (alerts, routes, schedule, terminals, space, vessel locations), mountain passes, tolls, travel times, highway alerts, and cameras. No overlap or ambiguity.
Tools follow a consistent verb_noun pattern with prefix 'wsdot_'. Most use 'get' (10 tools) while two use 'search' (wsdot_search_alerts, wsdot_search_cameras). This minor deviation is justified by the filtering nature of the search tools, but it slightly breaks uniformity.
12 tools is an ideal number for a domain-specific server. It covers a wide range of WSDOT information without being too numerous or sparse. Each tool serves a distinct and valuable function.
The tool set covers the major areas of Washington State transportation: border crossings, ferries (alerts, routes, schedules, terminals, space, vessel tracking), mountain passes, tolls, travel times, highway alerts, and cameras. There are no obvious gaps for common queries like road conditions, traffic incidents, or ferry status.
Available Tools
12 toolswsdot_get_border_waitsGet Border Wait TimesARead-onlyInspect
Returns current vehicle wait times at all WA/Canada land border crossings: Peace Arch (Blaine), Pacific Highway (Blaine), Sumas, Lynden, Oroville, and others. Wait times are in minutes. Use for "how long is the border wait?" questions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| crossings | Yes | All WA/Canada border crossing wait times. |
| totalCount | Yes | Total number of crossings returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds that wait times are 'current' and in minutes, providing context beyond the annotation without contradiction.
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?
Two sentences: first defines purpose and scope, second gives usage example. No wasted words; all information is relevant and front-loaded.
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?
Given no parameters and existence of output schema, the description provides essential context: what data is returned (wait times in minutes) and which crossings are included. This is fully sufficient for a simple read-only tool.
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?
Input schema has no parameters (100% coverage), so the description does not need to add parameter details. Baseline 4 is appropriate; the description correctly omits parameter info.
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?
The description clearly states the tool returns current vehicle wait times at specific WA/Canada land border crossings, listing example crossings. It distinguishes itself from sibling tools (ferry, mountain passes, tolls, etc.) by specifying the exact resource and action.
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?
The description explicitly says 'Use for "how long is the border wait?" questions,' providing clear when-to-use guidance. It does not mention exclusions, but the sibling set covers other transportation topics, so the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_ferry_alertsGet Ferry AlertsARead-onlyInspect
Returns active WSF ferry service disruptions, delays, and bulletins. Each alert includes impacted route IDs — cross-reference with wsdot_get_ferry_routes to resolve route IDs to human-readable route names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| alerts | Yes | Active ferry service alerts and disruptions. |
| totalCount | Yes | Total number of active alerts. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to restate safety. It adds value by noting that alerts include impacted route IDs, which is behavioral context beyond what annotations provide. No contradictions.
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?
Two sentences, front-loaded with purpose. No wasted words. Every sentence adds value: first states what it returns, second adds cross-reference context.
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?
Given no parameters, an output schema exists, and annotations cover read-only, the description is complete. It covers purpose, content of alerts, and a cross-reference hint, which suffices for a simple list tool.
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?
No parameters exist, so baseline is 4. The description does not need to add parameter information, and none is missing.
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?
The description clearly states it returns active WSF ferry service disruptions, delays, and bulletins. The verb 'Returns' plus the resource 'WSF ferry alerts' makes the purpose specific. It distinguishes itself from sibling tools like wsdot_get_ferry_routes by mentioning cross-referencing.
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?
The description implies usage for retrieving alerts and hints at cross-referencing with wsdot_get_ferry_routes, but it does not explicitly state when to use this tool versus siblings or when not to use it. No alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_ferry_routesGet Ferry RoutesARead-onlyInspect
Returns all WSF ferry routes operating on a given date. Route IDs correspond to impactedRouteIds in ferry alerts from wsdot_get_ferry_alerts. To get terminal IDs for schedule and space lookups, use wsdot_get_ferry_terminals.
| Name | Required | Description | Default |
|---|---|---|---|
| tripDate | No | Date for which to list routes, in ISO 8601 format (YYYY-MM-DD). Defaults to today if omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| routes | Yes | Ferry routes operating on the requested date. |
| tripDate | Yes | Date for which routes were retrieved (ISO 8601). |
| totalCount | Yes | Total number of routes returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description carries less burden. Description adds that the tool operates on a given date, which is useful but not extensive. No contradictions with annotations.
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?
Two sentences, each earn their place: first states purpose, second provides cross-reference. Front-loaded with the core action. No unnecessary words.
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?
For a simple tool with one optional parameter and an output schema, the description covers purpose, relationship to other tools, and enough detail for correct invocation. No gaps identified.
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 100%, so baseline is 3. Description mentions "given date" which maps to tripDate, but the schema already explains the format and default. No additional parameter meaning added beyond schema.
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?
Description uses specific verb "Returns" and resource "WSF ferry routes", and clearly indicates the scope (operating on a given date). It distinguishes from siblings by mentioning the link to ferry alerts and directing to another tool for terminal IDs.
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?
Explicitly states that Route IDs correspond to impactedRouteIds in ferry alerts, telling when to use this tool. Also advises using wsdot_get_ferry_terminals for schedule and space lookups, effectively excluding this tool for those purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_ferry_scheduleGet Ferry ScheduleARead-onlyInspect
Returns departure times for a specific WSF ferry route on a given date. Requires numeric terminal IDs — use wsdot_get_ferry_terminals to resolve terminal names to IDs. Set remainingOnly to true to show only future departures for today (useful for "next ferry" queries). For future dates, all sailings for that day are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| tripDate | No | Date in ISO 8601 format (YYYY-MM-DD). Defaults to today if omitted. | |
| remainingOnly | No | When true, returns only future sailings for today. Ignored for future dates. Default: false. | |
| arrivingTerminalId | Yes | Numeric ID of the arriving terminal. | |
| departingTerminalId | Yes | Numeric ID of the departing terminal. Use wsdot_get_ferry_terminals to look up terminal IDs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sailings | Yes | Scheduled sailings for this route and date. |
| tripDate | Yes | Date of the schedule (ISO 8601). |
| remainingOnly | Yes | Whether the result shows only remaining sailings. |
| totalSailings | Yes | Total number of sailings returned. |
| arrivingTerminalName | No | Arriving terminal name. |
| departingTerminalName | No | Departing terminal name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint: true, so the tool is known to be safe. Description adds behavioral context about remainingOnly affecting output for today vs future dates, but doesn't disclose additional behavioral traits like error handling or rate limits. With annotations, the description adds moderate value.
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?
Description is three sentences, each serving a distinct purpose: purpose statement, prerequisite guidance, and parameter usage. No unnecessary words, front-loaded with core information.
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?
Given the tool's complexity (4 parameters, output schema exists), the description covers all essential aspects: what it does, required input format, prerequisite tool, and special parameter behavior. It is complete for an agent to select and invoke correctly.
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 100%, so parameters are well-documented. Description adds value by explaining the prerequisite for terminal IDs and the practical use of remainingOnly for 'next ferry' queries, which goes beyond schema descriptions.
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?
Description clearly states the tool returns departure times for a specific WSF ferry route and date. It specifies the resource (ferry schedule), verb (returns), and distinguishes from sibling tools like wsdot_get_ferry_alerts or wsdot_get_ferry_terminals.
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?
Description explains when to use this tool (specific route and date) and explicitly directs users to use wsdot_get_ferry_terminals to resolve terminal IDs. It also clarifies the behavior of the remainingOnly parameter for 'next ferry' queries. No explicit exclusions, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_ferry_terminalsGet Ferry TerminalsARead-onlyInspect
Returns all WSF ferry terminals with their numeric IDs, names, and abbreviations. Call this first to resolve human-readable terminal names (e.g. "Bainbridge Island", "Seattle", "Kingston") to the numeric terminal IDs required by the schedule and space tools. The terminal list is small (~22 terminals) and rarely changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| terminals | Yes | All WSF ferry terminals. |
| totalCount | Yes | Total number of terminals. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true, which description complements by noting the list is small (~22 items) and rarely changes. This adds useful behavioral context beyond annotations.
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?
Three sentences, each serving a distinct purpose: what it returns, how to use it, and additional context. No wasted words, highly efficient.
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 no parameters and an output schema, description covers purpose, usage guidance, and important facts (size, stability). Thoroughly complete for this tool.
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?
No parameters, so schema coverage is 100%. Description adds no parameter info (unnecessary). Baseline of 4 for zero-parameter tools is appropriate.
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?
Description clearly states the tool returns all WSF ferry terminals with IDs, names, abbreviations, and explicitly says it's used to resolve human-readable names to numeric IDs for schedule and space tools. This distinguishes it from siblings effectively.
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?
Explicitly says 'Call this first' to get terminal IDs needed by schedule/space tools. While it doesn't mention when not to use it, the context is clear. Slight room for improvement in excluding use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_mountain_passesGet Mountain Pass ConditionsARead-onlyInspect
Returns current road conditions for all Washington State mountain passes: status, weather, road condition, traction laws, temperature, and elevation. Includes all ~12 passes (Snoqualmie, Stevens, White, Blewett, Cayuse, etc.). Use for "is the pass open?", traction law status, or winter driving planning.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| passes | Yes | All WA mountain pass conditions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by specifying the scope (all passes) and data contents (status, weather, etc.). No contradictions with annotations.
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?
Two sentences, no wasted words. The first sentence covers action and data; the second provides examples and use cases. Well-structured and efficient.
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?
The description is self-contained: it explains what the tool returns, lists example data, and suggests use cases. With no parameters and an output schema present, there are no obvious gaps.
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?
The tool has no parameters, and the input schema is empty. The description does not need to explain parameters, and according to guidelines, zero parameters yields a baseline score of 4.
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?
The description uses specific verbs ('returns') and a well-defined resource ('current road conditions for all Washington State mountain passes'), listing concrete data fields (status, weather, traction laws) and example passes. This clearly distinguishes it from sibling tools like wsdot_get_ferry_routes or wsdot_get_border_waits.
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?
The description explicitly states use cases ('Use for "is the pass open?", traction law status, or winter driving planning'), providing clear context. While it does not mention when not to use or alternative tools, the purpose is focused enough to avoid ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_terminal_spaceGet Terminal SpaceARead-onlyInspect
Returns real-time drive-up and reservable vehicle space available at WSF terminals for upcoming sailings. Use for "will I make the ferry?" or "how full is the next sailing?" questions. Optionally filter to a specific terminal by ID (use wsdot_get_ferry_terminals for the ID). DriveUpSpaceCount is the key field — zero means the drive-up lane is full.
| Name | Required | Description | Default |
|---|---|---|---|
| departingTerminalId | No | Filter to a specific terminal by numeric ID. Omit to return all terminals. |
Output Schema
| Name | Required | Description |
|---|---|---|
| terminals | Yes | Terminal space availability by terminal. |
| totalCount | Yes | Number of terminals returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only operation consistent with readOnlyHint. Adds context about DriveUpSpaceCount being key and zero meaning full, which supplements annotations without contradiction.
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?
Two sentences, front-loaded with main purpose, no unnecessary words. Efficient and clear.
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?
Output schema exists, so no need to describe return values. Description explains key field behavior. For a simple filtered list tool, it's fully adequate.
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 coverage is 100%, so baseline is 3. Description adds extra meaning by explaining how to get the terminal ID from another tool, improving usability beyond schema.
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?
Description clearly states 'Returns real-time drive-up and reservable vehicle space', specifying the verb and resource. It distinguishes from sibling tools like schedule or alerts by focusing on space availability.
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?
Explicitly says 'Use for "will I make the ferry?" or "how full is the next sailing?" questions' and advises using wsdot_get_ferry_terminals for terminal IDs. Lacks explicit 'when not to use' but positive guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_toll_ratesGet Toll RatesARead-onlyInspect
Returns current dynamic toll rates for WA express lanes and tolled facilities: SR 99 (WSDOT Tunnel), SR 520 Bridge, I-405 Express Lanes, I-90 Two-Way Express Lanes, and SR 167 HOT Lanes. Rates are time-banded and change dynamically based on traffic conditions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| rates | Yes | Current toll rates for all active tolled facilities. |
| totalCount | Yes | Total number of toll rate entries returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes rates are 'time-banded' and 'change dynamically,' adding behavioral context beyond the readOnlyHint annotation. There is no contradiction with annotations.
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?
Two concise sentences with front-loaded purpose and no unnecessary words. Every sentence adds value.
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?
Given no parameters and existence of an output schema, the description sufficiently explains the scope (specific facilities) and key characteristic (dynamic rates), leaving no gaps.
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?
With zero parameters and 100% schema coverage, the description adds substantial meaning by explaining what facilities are covered and the dynamic nature of the rates, making the tool's functionality clear.
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?
The description explicitly states the tool returns current dynamic toll rates for specific Washington express lanes and tolled facilities, listing them by name. This clearly distinguishes it from sibling tools focused on ferry, border waits, travel times, etc.
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?
The description clearly indicates when to use the tool: to obtain toll rates for WA express lanes and tolled facilities. While no explicit alternatives are given, the purpose is so specific that usage context is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_travel_timesGet Travel TimesARead-onlyInspect
Returns current vs. average travel times for named WA highway corridors (I-5, I-90, SR 520, SR 99, I-405, SR 167, etc.). Use for "how congested is I-5?" or commute time estimates. Filter by partial route name (e.g. "I-5", "SR 520") to narrow results. When current time exceeds average, the corridor is congested.
| Name | Required | Description | Default |
|---|---|---|---|
| route | No | Optional text filter applied to corridor names (e.g. "I-5", "SR 520", "I-405"). Case-insensitive. Omit to return all corridors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| corridors | Yes | Travel time corridors matching the filter. |
| totalCount | Yes | Total number of corridors returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint: true. The description adds behavioral context beyond this: that it returns current vs. average times, and that exceeding average indicates congestion. No contradictions with annotations.
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?
The description is two concise sentences, front-loads the core purpose, and contains no redundant information. Every sentence adds value.
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?
The description covers purpose, usage, and interpretation of results. With one optional parameter, an output schema, and clear annotations, the description is sufficient for the tool's complexity. It could mention that results are real-time, but is otherwise complete.
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 100% and already includes case-insensitivity and examples. The description adds value by clarifying filtering use ('Filter by partial route name'), providing additional examples, and explaining omission behavior. This exceeds the baseline of 3.
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?
The description explicitly states the tool returns current vs. average travel times for named WA highway corridors, with a specific verb and resource. It lists example corridors and clearly distinguishes from sibling tools like border waits, ferry alerts, etc.
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?
The description provides explicit use cases: 'how congested is I-5?' and commute time estimates. It also explains how to filter by partial route name and how to interpret results. However, it does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_get_vessel_locationsGet Vessel LocationsARead-onlyInspect
Returns real-time AIS positions, speed, heading, ETA, and dock status for all active WSF vessels. Use for "where is the ferry now?", vessel tracking, or checking if a vessel is in service. Position data may lag by 30–60 seconds. Many fields are null for vessels not currently operating.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| vessels | Yes | All WSF vessels with real-time position data. |
| totalCount | Yes | Total number of vessels returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. The description adds context about real-time data, a 30–60 second lag, and null fields for non-operating vessels, which are not conveyed by annotations alone.
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?
The description is two sentences, front-loaded with the output, and includes usage guidance and caveats. Every sentence is necessary and wastes no words.
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?
Given no parameters, an output schema exists (not shown), and the description covers purpose, usage, and important behavioral notes (lag, null fields). It is complete for a simple read tool.
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?
With zero parameters, the baseline is 4. The description does not need to explain parameters, and it correctly focuses on output details. No additional parameter info is required.
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?
The description clearly states the tool returns real-time AIS positions, speed, heading, ETA, and dock status for all active WSF vessels, with a specific verb 'returns' and resource 'vessel locations'. It distinguishes from siblings by focusing on vessel tracking rather than schedules, alerts, or routes.
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?
The description explicitly provides use cases like 'where is the ferry now?' and vessel tracking, and includes caveats about data lag. While it doesn't list alternatives, the sibling tools cover different ferry-related data, making the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_search_alertsSearch Highway AlertsARead-onlyInspect
Returns active WA highway alerts: incidents, construction, closures, and restrictions. Filter by state route (zero-padded 3-digit number, e.g. "005" for I-5, "090" for I-90, "520" for SR 520), WSDOT region (Northwest, Olympic, Southwest, South Central, North Central, Eastern), or milepost range. Omit all filters to return all current statewide alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | WSDOT region name: Northwest, Olympic, Southwest, South Central, North Central, or Eastern. | |
| stateRoute | No | Zero-padded 3-digit state route number (e.g. "005" for I-5, "090" for I-90, "520" for SR 520). | |
| endMilepost | No | End of milepost range to filter alerts. | |
| startMilepost | No | Start of milepost range to filter alerts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| alerts | Yes | Matching highway alerts. |
| totalCount | Yes | Total number of alerts returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, indicating safe read operation. Description adds that it returns active alerts and their types, and filter behavior, going beyond annotations.
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?
Two sentences, front-loaded with purpose, then filters. Every sentence adds value. No redundancy or vagueness.
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?
Covers purpose, filtering options, and default behavior. With output schema present, return format is documented elsewhere. Could mention that alerts are near real-time or include a note about update frequency, but still adequate.
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 has 100% coverage with descriptions. Description adds crucial detail: zero-padded 3-digit format for stateRoute with examples (e.g., '005' for I-5), and explains milepost range as a pair. Significantly enhances understanding.
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?
Description clearly states the tool returns 'active WA highway alerts' with specific types (incidents, construction, closures, restrictions) and filtering options. Distinguishes from sibling tools that focus on ferries, cameras, or tolls.
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?
Describes each filter (route, region, milepost range) and explicitly says 'Omit all filters to return all current statewide alerts.' Provides clear usage context but doesn't mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wsdot_search_camerasSearch Highway CamerasARead-onlyInspect
Returns WSDOT highway camera locations, descriptions, and image URLs. Camera images are copyright WSDOT — only metadata and image URLs are returned, not image bytes. Filter by state route (e.g. "090" for I-90), WSDOT region, or milepost range. Omit all filters to list all cameras statewide (potentially hundreds).
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | WSDOT region name: Northwest, Olympic, Southwest, South Central, North Central, or Eastern. | |
| stateRoute | No | Zero-padded 3-digit state route number (e.g. "005" for I-5, "090" for I-90). | |
| endMilepost | No | End of milepost range to filter cameras. | |
| startMilepost | No | Start of milepost range to filter cameras. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Informational note about result truncation or copyright. |
| cameras | Yes | Camera metadata and image URLs. Images are copyright WSDOT. |
| totalCount | Yes | Total number of cameras returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by disclosing that images are copyrighted and only metadata/URLs are returned, not image bytes. This is critical behavioral information not captured by readOnlyHint alone.
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?
The description is two sentences, no wasted words. First sentence conveys purpose and output; second sentence explains filtering. It is front-loaded and efficient.
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?
Given the presence of an output schema, the description does not need to explain return values. It covers purpose, limitations, filtering options, and scale, making it complete for this tool.
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 coverage is 100%, so the description adds value by grouping filters and providing an example route number (e.g., '090' for I-90). It also clarifies the effect of omitting filters, which is not in the schema.
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?
The description clearly states that the tool returns camera locations, descriptions, and image URLs, distinguishing it from sibling tools that deal with ferries, border waits, etc. It specifies the resource (highway cameras) and action (search/return).
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?
The description explains when to use filters and notes that omitting all filters returns many results, providing useful context. It does not explicitly mention alternatives, but sibling tools are sufficiently different so this is not necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!