Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
WA highway conditions, ferry schedules, vessel locations, toll rates, and border waits via MCP.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
WSDOT_ACCESS_CODE, MCP_LOG_LEVELNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
https://wsdot.caseyjhand.com/mcpAbre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"wsdot": {
"command": "npx",
"args": [
"-y",
"@cyanheads/wsdot-mcp-server"
],
"env": {
"WSDOT_ACCESS_CODE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add --transport http wsdot https://wsdot.caseyjhand.com/mcpclaude mcp add wsdot --env WSDOT_ACCESS_CODE=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/wsdot-mcp-serverCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"wsdot": {
"url": "https://wsdot.caseyjhand.com/mcp"
}
}
}Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"wsdot": {
"command": "npx",
"args": [
"-y",
"@cyanheads/wsdot-mcp-server"
],
"env": {
"WSDOT_ACCESS_CODE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"wsdot": {
"type": "http",
"url": "https://wsdot.caseyjhand.com/mcp"
}
}
}Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"wsdot": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/wsdot-mcp-server"
],
"env": {
"WSDOT_ACCESS_CODE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
https://wsdot.caseyjhand.com/mcpLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
MCP_LOG_LEVEL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Nombres y descripciones de las herramientas tal como los informó el servidor el 7 nov 2026. Los escribió el creador, no nosotros; los mostramos como texto sin formato.
wsdot_get_mountain_passesReturns current road conditions for all Washington State mountain passes: status, weather, road condition, traction laws, temperature, and elevation. Includes all 16 passes (Snoqualmie, Stevens, White, Blewett, Cayuse, etc.). Use for "is the pass open?", traction law status, or w
wsdot_search_alertsReturns active WA highway alerts: incidents, construction, closures, and restrictions. Filter by state route ("I-90", "90", "SR 520", or "520" all work), WSDOT region (Northwest, Olympic, Southwest, South Central, North Central, Eastern), or milepost range, matched against the al
wsdot_get_travel_timesReturns 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. The route filter matches two ways: a route designation ("I-5", "5", "SR 520") returns every corridor
wsdot_get_toll_ratesReturns current dynamic toll rates for WA express lanes and tolled facilities: SR 99 (WSDOT Tunnel), SR 167 HOT Lanes, I-405 Express Lanes, SR 509 tolled segment, and the SR 520 Bridge. Rates are time-banded and change dynamically based on traffic conditions. Filter to one facili
wsdot_get_border_waitsReturns current vehicle wait times at WA→Canada land border crossings: I-5 (Peace Arch, Blaine), SR 543 (Pacific Highway, Blaine), SR 539 (Lynden), and SR 9 (Sumas). Each crossing reports a general-purpose lane and a Nexus lane; SR 539 adds a truck lane and SR 543 adds truck and
wsdot_search_camerasReturns 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 ("I-90", "90", "SR 520", or "520" all work), WSDOT region, milepost range, or words in the c
wsdot_get_ferry_terminalsReturns all WSF ferry terminals with their numeric IDs, names, abbreviations, and coordinates. 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 term
wsdot_get_ferry_routesReturns the main WSF ferry routes operating on a given date, each with the directed terminal pairs it serves that day (terminalPairs) — departing and arriving terminal IDs and names, which are exactly the pairs wsdot_get_ferry_schedule accepts for that date. Route IDs correspond
wsdot_get_ferry_scheduleReturns 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; terminalPairs on wsdot_get_ferry_routes lists the pairs with service on a date. Set remainingOnly to true to sho
wsdot_get_vessel_locationsReturns 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 oper
wsdot_get_terminal_spaceReturns 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). driv
wsdot_get_ferry_alertsReturns active WSF ferry service disruptions, delays, and bulletins. Each alert carries a one-line summary plus the bulletin title, kind, and full body — the body is where detail such as a replacement sailing appears. Each alert includes impacted route IDs — cross-reference with
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub cyanheads, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Respondió en 506 ms (HTTP 200)
No hace falta iniciar sesión
Leímos 12 descripciones de herramientas y no encontramos instrucciones ocultas para la IA
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: WSDOT_ACCESS_CODE
Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.
El repo de GitHub cambió por última vez –, y la última versión (0.5.0) llegó al registro hace 10 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Microsoft Exchange Online MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Exchange Online admin for MSPs: forwarding audits, EWS posture and offboarding, no PowerShell
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
@cyanheads/wsdot-mcp-server Query WA highway conditions, ferry schedules, vessel locations, toll rates, border waits, and alerts via MCP. STDIO or Streamable HTTP. 12 Tools • 1 Skill Resource
Public Hosted Server: https://wsdot.caseyjhand.com/mcp
Washington State roads and ferries from WSDOT. Check mountain passes, travel times, tolls, border waits, alerts, and traffic cameras, and track ferry schedules, vessel locations, and terminal space.
| 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 167 HOT, I-405 Express, SR 509, SR 520 — filterable by route. |
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, milepost range, and title words. |
wsdot_get_ferry_terminals | All WSF ferry terminals with numeric IDs needed for schedule and space lookups, plus coordinates. |
wsdot_get_ferry_routes | WSF routes operating on a given date — route ID, abbreviation, description, and the terminal pairs each serves, for route discovery, schedule lookups, and ferry-alert cross-reference. |
wsdot_get_ferry_schedule | Departure times for a specific WSF route — today-remaining or full-day future mode — with each sailing's vessel, loading rule, and notes. |
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. |
| Resource | Description |
|---|---|
skill://wsdot-guide/SKILL.md | Ferry trip guidance for combining schedules, alerts, space, and vessel positions. |
skill://wsdot-guide/SKILL.md resourcewsdot-guide.wsdot_get_mountain_passes toolwsdot_search_alerts toolstateRoute, region (Northwest, Olympic, Southwest, South Central, North Central, Eastern), and startMilepost / endMilepost — an alert matches when its extent overlaps the range; omit all for every statewide alert. Ordered by alertId, paged (default 20, max 500)invalid_region and a start above the end as invalid_milepost_range, each with a recovery hintwsdot_get_travel_times toolroute — a route ("I-5", "SR 520") returns every corridor measured on it, any other text matches corridor names ("Everett"); paged (default 50, max 500)wsdot_get_toll_rates toolstateRoute matches the posted designation ("I-405", "SR 520"); a route with no tolled facility returns an empty page whose notice names the tolled routes. Paged (default 50, max 500)startLocationName → endLocationName segment. stateRoute is the feed's bare zero-padded number ("099") and travelDirection the feed's code, which SR 99, SR 509, and SR 520 fix per facility — read direction from the segment's endswsdot_get_border_waits toolcrossings[] across I-5 (Peace Arch), SR 543 (Pacific Highway), SR 539 (Lynden), and SR 9 (Sumas): a general-purpose and a Nexus lane at each, plus truck lanes at SR 539 and SR 543crossingName is a route code (I5, SR543Trucks) and location.description the readable name; a lane with no current data omits waitTimeInMinuteswsdot_search_cameras toolstateRoute, region code (NW, SW, OL, ER, SC, NC, OS for the Oregon TripCheck cameras, WA for airport cameras), startMilepost / endMilepost, and titleContains (every word, any order). Ordered by cameraId, paged (default 50, max 500)invalid_region and a reversed range as invalid_milepost_rangewsdot_get_ferry_terminals toolwsdot_get_ferry_schedule and wsdot_get_terminal_space takewsdot_get_ferry_routes tooltripDate (YYYY-MM-DD, default today); a date outside the range WSF has published fails as invalid_date stating that rangeimpactedRouteIds of wsdot_get_ferry_alerts), abbreviation, description, and terminalPairs — the departing → arriving pairs wsdot_get_ferry_schedule accepts that daywsdot_get_ferry_schedule tooldepartingTerminalId and arrivingTerminalId (a pair from terminalPairs on wsdot_get_ferry_routes); optional tripDate (default today) and remainingOnly (future departures only, today only)departureTime / arrivalTime in ISO 8601 UTC (tripDate is the Pacific service day), vesselId, loadingRule, and indexes into the pair's annotations. There is no cancellation flag — WSF drops a cancelled sailing, so check wsdot_get_ferry_alertsinvalid_terminal_pair and a date with none as invalid_date, never as an empty schedulewsdot_get_vessel_locations toolopRouteAbbrev as none reportedwsdot_get_terminal_space tooldepartingTerminalId (from wsdot_get_ferry_terminals), else every terminal; paged by terminal (default 5, max 20), with every sailing of a returned terminal includeddriveUpSpaceCount is the key field — zero means the drive-up lane is full, and an oversubscribed sailing's negative upstream count floors to zero. arrivingTerminalIds chains into wsdot_get_ferry_schedulewsdot_get_ferry_alerts toolalertTitle, a one-line alertDescription, and the full bulletinText (detail such as a replacement sailing appears only in the body)impactedRouteIds map to wsdot_get_ferry_routes; affectsAllRoutes: true marks a fleet-wide alert, whose empty route list then means every routeBuilt on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
WSDOT-specific:
WSDOT_ACCESS_CODEwsdot_get_ferry_terminals / wsdot_get_ferry_routes for ID resolution before a lookupoffset / limit, and a page also ends early at a 24,000-byte response budget, with the notice naming the next offset"I-90", "90", "090", "SR 520" — and every text filter accepts at most 200 charactersAgent-friendly output:
invalid_access_code and api_unavailable errors carry an explicit recovery hint distinguishing configuration faults from transient upstream onesdriveUpSpaceCount: 0 and congestion delta fields (delayInMinutes) give agents actionable signal without string parsinglink text (url)null/undefined rather than synthetic defaults (e.g. an omitted waitTimeInMinutes, an absent arrivalTime)content[] and structuredContent carry the same values, not just the same fieldsSolo se muestra el principio; lee el resto en el repo