Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
WA highway conditions, ferry schedules, vessel locations, toll rates, and border waits via MCP.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
WSDOT_ACCESS_CODE, MCP_LOG_LEVEL你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://wsdot.caseyjhand.com/mcp打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 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"
}
}
}
}在终端中运行这条命令
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-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"wsdot": {
"url": "https://wsdot.caseyjhand.com/mcp"
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"wsdot": {
"command": "npx",
"args": [
"-y",
"@cyanheads/wsdot-mcp-server"
],
"env": {
"WSDOT_ACCESS_CODE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"wsdot": {
"type": "http",
"url": "https://wsdot.caseyjhand.com/mcp"
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"wsdot": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/wsdot-mcp-server"
],
"env": {
"WSDOT_ACCESS_CODE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://wsdot.caseyjhand.com/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
MCP_LOG_LEVEL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
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
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
在 506 毫秒内响应(HTTP 200)
无需登录
已读取 12 个工具描述,未发现针对 AI 的隐藏指令
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:WSDOT_ACCESS_CODE
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(0.5.0)于10天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Signoff
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
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.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@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 fields只显示了开头部分;其余内容请在仓库中阅读