Query WA highway conditions, ferry schedules, vessel locations, toll rates, border waits, and alerts via MCP. STDIO or Streamable HTTP.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
git clone https://github.com/cyanheads/wsdot-mcp-server{
"mcpServers": {
"wsdot": {
"command": "node",
"args": ["/path/to/wsdot-mcp-server/dist/index.js"]
}
}
}MCP Servers overview
<div align="center"> <h1>@cyanheads/wsdot-mcp-server</h1> <p><b>Query WA highway conditions, ferry schedules, vessel locations, toll rates, border waits, and alerts via MCP. STDIO or Streamable HTTP.</b> <div>12 Tools</div> </p> </div> <div align="center"> [](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/wsdot-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/wsdot-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/) </div> <div align="center"> [](https://github.com/cyanheads/wsdot-mcp-server/releases/latest/download/wsdot-mcp-server.mcpb) [](https://cursor.com/en/install-mcp?name=wsdot-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvd3Nkb3QtbWNwLXNlcnZlciJdLCJlbnYiOnsiV1NET1RfQUNDRVNTX0NPREUiOiJ5b3VyLWFjY2Vzcy1jb2RlIn19) [](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22wsdot-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fwsdot-mcp-server%22%5D%2C%22env%22%3A%7B%22WSDOT_ACCESS_CODE%22%3A%22your-access-code%22%7D%7D) [](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) **Public Hosted Server:** [https://wsdot.caseyjhand.com/mcp](https://wsdot.caseyjhand.com/mcp) </div> --- ## Tools 12 tools split across two domains — traffic (WSDOT Traveler API) and ferries (WSF Ferry API): | Tool | Description | |:---|:---| | `wsdot_get_mountain_passes` | Current conditions for all WA mountain passes: status, road condition, traction laws, temperature, elevation. | | `wsdot_search_alerts` | Active highway alerts — incidents, construction, closures — filterable by state route, WSDOT region, and milepost range. | | `wsdot_get_travel_times` | Current vs. average travel times for named WA highway corridors (I-5, I-90, SR 520, etc.) with congestion delay. | | `wsdot_get_toll_rates` | Dynamic toll rates for WA express lanes and tolled facilities: SR 99, SR 520, I-405, I-90 Two-Way, SR 167 HOT. | | `wsdot_get_border_waits` | Current vehicle wait times at all WA/Canada land border crossings. | | `wsdot_search_cameras` | Highway camera metadata and image URLs, filterable by state route, region, and milepost range. | | `wsdot_get_ferry_terminals` | All WSF ferry terminals with numeric IDs needed for schedule and space lookups. | | `wsdot_get_ferry_routes` | WSF routes operating on a given date — route ID, abbreviation, and description for each, for route discovery and ferry-alert cross-reference. | | `wsdot_get_ferry_schedule` | Departure times for a specific WSF route — today-remaining or full-day future mode. | | `wsdot_get_vessel_locations` | Real-time AIS positions, speed, heading, ETA, and dock status for all active WSF vessels. | | `wsdot_get_terminal_space` | Drive-up and reservable vehicle space available at WSF terminals for upcoming sailings. | | `wsdot_get_ferry_alerts` | Active WSF service disruptions and bulletins with impacted route IDs. | ### `wsdot_get_mountain_passes` Current road conditions for all WA mountain passes. - Covers all ~12 passes: Snoqualmie, Stevens, White, Blewett, Cayuse, and others - Fields include status (Open/Closed/Caution), road surface, active traction law, temperature, and elevation - Use for "is the pass open?", traction law checks, or winter driving planning --- ### `wsdot_search_alerts` Active WA highway alerts — incidents, construction, closures, restrictions. - Filter by state route — natural forms all work: `"I-90"`, `"90"`, `"090"`, or `"SR 520"` / `"520"` - Filter by WSDOT region: Northwest, Olympic, Southwest, South Central, North Central, Eastern - Filter by milepost range to scope to a corridor — an alert matches when its extent overlaps the range, so a closure that spans the boundary is returned - Omit all filters to return all current statewide alerts - Descriptions are plain text — upstream authors them with markup, and a link is rendered inline as `link text (url)` so the destination survives - Results are ordered by `alertId` and paged (default 50, max 500) — pass `offset`/`limit` to page through the full statewide set; the notice reports the next offset. Upstream returns the same alert set in more than one row order, so the ordering is imposed here to keep a given offset reproducible --- ### `wsdot_get_travel_times` Current vs. average travel times for named WA highway corridors. - Covers I-5, I-90, SR 520, SR 99, I-405, SR 167, and others - Filter by route (`"I-5"`, `"5"`, `"SR 520"`) to get every corridor measured on it, or by any text to match corridor names (`"Everett"`) - When current time exceeds average, the corridor is congested; the delta is the delay - Reversible express-lane corridors report no travel time while closed in the queried direction — those figures are omitted rather than reported as zero minutes - Results are paged (default 50, max 500) — pass `offset`/`limit` to page through the full statewide set; the notice reports the next offset --- ### `wsdot_get_toll_rates` Current dynamic toll rates for WA tolled facilities. - SR 99 (WSDOT Tunnel), SR 520 Bridge, I-405 Express Lanes, I-90 Two-Way Express Lanes, SR 167 HOT Lanes - Rates are time-banded and change dynamically based on traffic conditions - Results are paged (default 50, max 500) — pass `offset`/`limit` to page through the full statewide set; the notice reports the next offset --- ### `wsdot_get_border_waits` Current vehicle wait times at WA/Canada land border crossings. - Covers I-5 (Peace Arch & Pacific Highway, Blaine), SR 539 (Lynden), and SR 9 (Sumas), including Nexus-lane variants - `crossingName` is a route code (e.g. `I5`, `SR539`); `location.description` holds the readable name - Wait times in minutes; a crossing reporting no current data is omitted; `updateTime` is ISO 8601 --- ### `wsdot_search_cameras` WSDOT highway camera metadata and image URLs. - Filter by state route (`"I-90"`, `"90"`, `"SR 520"`, or `"520"` all work), WSDOT region, or milepost range - Camera road names carry a route-type prefix, so `"SR 26"` excludes US 26 and `"US 97"` excludes US 97A; a bare `"26"` returns both - Returns metadata and image URLs — camera images are copyright WSDOT, not fetched as bytes - Results are ordered by `cameraId` and paged (default 50, max 500) — pass `offset`/`limit` to page through the full statewide set; the notice reports the next offset. Upstream returns the same camera set in more than one row order, so the ordering is imposed here to keep a given offset reproducible --- ### `wsdot_get_ferry_terminals` All WSF ferry terminals with numeric IDs. - ~22 terminals; the list rarely changes - Call this first to resolve human-readable names (e.g. "Bainbridge Island", "Seattle", "Kingston") to the numeric IDs required by `wsdot_get_ferry_schedule` and `wsdot_get_terminal_space` --- ### `wsdot_get_ferry_routes` WSF ferry routes operating on a given date. - Returns each route's ID, abbreviation, and description - Route IDs correspond to `impactedRouteIds` in `wsdot_get_ferry_alerts` — use this tool to resolve alert route IDs to route names - Use to discover which routes are running; for the numeric terminal IDs that schedule and space lookups need, call `wsdot_get_ferry_terminals` --- ### `wsdot_get_ferry_schedule` Departure times for a specific WSF ferry route. - Requires numeric terminal IDs — use `wsdot_get_ferry_terminals` first - `remainingOnly: true` returns only future departures for today (useful for "next ferry" queries) - For future dates, all sailings for that day are returned - No cancellation status — WSF drops a cancelled sailing from the schedule rather than flagging it, so a listed sailing is not confirmation it will run; check `wsdot_get_ferry_alerts`, which reports disruptions at route level --- ### `wsdot_get_vessel_locations` Real-time AIS positions for all active WSF vessels. - Fields include position, speed, heading, ETA, and dock status - Use for "where is the ferry now?" or checking if a specific vessel is in service - Position data may lag 30–60 seconds; many fields are null for vessels not currently operating --- ### `wsdot_get_terminal_space` Real-time vehicle space availability at WSF terminals for upcoming sailings. - `driveUpSpaceCount` is the key field — zero means the drive-up lane is full. Oversubscribed sailings report a negative count upstream; it is floored to zero so the value never reads as available space - `arrivingTerminalIds` lists the terminals a sailing serves and chains straight into `wsdot_get_ferry_schedule`; `itineraryLabel` is a display string that may name several stops, not a single destination - Filter to a specific terminal by ID (from `wsdot_get_ferry_terminals`) - Use for "will I make the ferry?" or "how full is the next sailing?" queries - Results are paged by terminal (default 5, max 20) — `offset`/`limit` s
What people ask about wsdot-mcp-server
What is cyanheads/wsdot-mcp-server?
+
cyanheads/wsdot-mcp-server is mcp servers for the Claude AI ecosystem. Query WA highway conditions, ferry schedules, vessel locations, toll rates, border waits, and alerts via MCP. STDIO or Streamable HTTP. It has 1 GitHub stars and was last updated today.
How do I install wsdot-mcp-server?
+
You can install wsdot-mcp-server by cloning the repository (https://github.com/cyanheads/wsdot-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is cyanheads/wsdot-mcp-server safe to use?
+
Our security agent has analyzed cyanheads/wsdot-mcp-server and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains cyanheads/wsdot-mcp-server?
+
cyanheads/wsdot-mcp-server is maintained by cyanheads. The last recorded GitHub activity is from today, with 5 open issues.
Are there alternatives to wsdot-mcp-server?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy wsdot-mcp-server to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/cyanheads-wsdot-mcp-server)<a href="https://claudewave.com/repo/cyanheads-wsdot-mcp-server"><img src="https://claudewave.com/api/badge/cyanheads-wsdot-mcp-server" alt="Featured on ClaudeWave: cyanheads/wsdot-mcp-server" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!