# CommuteScout > Live road conditions for 37 US states, trip planning, and the best time > to leave, as a public MCP server. Hosted endpoint (streamable HTTP, no > key needed): https://mcp.commutescout.com/mcp CommuteScout (https://commutescout.com) is a live road map, a driving app and an MCP server built on the same data: state DOT and 511 feeds, CHP, NWS weather, wildfires, cameras, message signs, TomTom traffic and an archive of past events. The MCP server lets an assistant answer "what's a good time to drive to X?", "is I-80 open over Donner?" or "what's going on near me?" with live data. ## Install the MCP server Endpoint: `https://mcp.commutescout.com/mcp` (streamable HTTP). It works without a key or an account. Pick the user's client: ### Claude Code ```sh claude mcp add --transport http --scope user commutescout https://mcp.commutescout.com/mcp ``` With a key, for saved places: ```sh claude mcp add --transport http --scope user commutescout https://mcp.commutescout.com/mcp \ --header "Authorization: Bearer cs_live_..." ``` Run /mcp inside Claude Code to confirm it connected. ### claude.ai and Claude Desktop Customize > Connectors > + Add > Add custom connector. Name: CommuteScout. URL: https://mcp.commutescout.com/mcp. Sign-in: No sign in. For saved places, add a request header named Authorization with the value Bearer cs_live_... On Team and Enterprise plans, an owner adds it first under Organization settings > Connectors. The connector also appears in Claude Desktop and the mobile apps. ### Cursor Add to ~/.cursor/mcp.json, or .cursor/mcp.json in a project: ```json { "mcpServers": { "commutescout": { "url": "https://mcp.commutescout.com/mcp", "headers": { "Authorization": "Bearer ${env:COMMUTESCOUT_API_KEY}" } } } } ``` Leave out headers to connect without a key. ### VS Code (GitHub Copilot) Add to .vscode/mcp.json: ```json { "servers": { "commutescout": { "type": "http", "url": "https://mcp.commutescout.com/mcp", "headers": { "Authorization": "Bearer ${input:commutescout-key}" } } }, "inputs": [ { "type": "promptString", "id": "commutescout-key", "description": "CommuteScout API key", "password": true } ] } ``` Leave out headers and inputs to connect without a key. ### Windsurf Add to its mcp_config.json (MCP settings > view raw config): ```json { "mcpServers": { "commutescout": { "serverUrl": "https://mcp.commutescout.com/mcp", "headers": { "Authorization": "Bearer ${env:COMMUTESCOUT_API_KEY}" } } } } ``` ### OpenAI Codex CLI ```sh codex mcp add commutescout --url https://mcp.commutescout.com/mcp ``` With a key, in ~/.codex/config.toml: ```toml [mcp_servers.commutescout] url = "https://mcp.commutescout.com/mcp" bearer_token_env_var = "COMMUTESCOUT_API_KEY" ``` ### Gemini CLI ```sh gemini mcp add --transport http commutescout https://mcp.commutescout.com/mcp ``` Add --header "Authorization: Bearer cs_live_..." for saved places. ### ChatGPT On chatgpt.com: Plugins > + > Add custom MCP server. URL: https://mcp.commutescout.com/mcp. Authentication: none. Custom MCP servers depend on your plan and workspace settings. ChatGPT offers sign-in (OAuth) rather than a key field, so use addresses instead of "home" and "work" there. ### Any other MCP client Streamable HTTP at https://mcp.commutescout.com/mcp: stateless, no sign-in, optional Authorization: Bearer cs_live_... (or X-API-Key). A client that only speaks stdio can bridge with: ```sh npx mcp-remote https://mcp.commutescout.com/mcp --transport http-only ``` After connecting, check it with a question such as "When should I leave Union Station in Denver for Red Rocks tomorrow?". The assistant should call `best_time_to_go`. ## Saved places and API keys (optional) A key lets "home", "work" and the names of the user's saved places work in every trip tool, and gives the client its own rate limits. The user gets one at https://commutescout.com/map: Settings, sign in, then API keys. It is shown once. Send it as `Authorization: Bearer cs_live_...` or `X-API-Key: cs_live_...`. Free keys get 2,000 requests a day; without a key, each address gets 10,000 a day. An agent cannot create a key for the user: ask them to create one and paste it, and keep it out of shared files. The server cannot see the user's device location. For "from here", pass coordinates or a city you already know, or ask. ## Tools - Trips: `plan_trip`, `best_time_to_go`, `find_place`, `get_my_places` - Around a place: `get_nearby_events`, `get_weather`, `get_traffic`, `get_area_history` - California corridors and regions: `check_route`, `check_region`, `rank_routes`, `get_incidents`, `get_lane_closures`, `get_chain_controls`, `get_wildfires`, `get_cameras`, `get_road_signs` - Coverage: `get_coverage` ## Docs - [MCP setup and tool list](https://commutescout.com/mcp) - [Developer docs: REST API, keys, limits, errors](https://commutescout.com/developers) - [OpenAPI document](https://mcp.commutescout.com/v1/openapi.json) - [Every tool over plain HTTP](https://mcp.commutescout.com/v1) - [Server card](https://mcp.commutescout.com/.well-known/mcp/server-card.json) - [Source code (MIT)](https://github.com/nicglazkov/commutescout) - [Data sources](https://commutescout.com/data-sources) ## Run it yourself ```sh uvx --from git+https://github.com/nicglazkov/commutescout ca-roads-mcp ``` That is a stdio server. Live events need no keys; routing and geocoding for the trip tools need `STADIA_API_KEY`, and traffic needs `TOMTOM_API_KEY`. `MCP_HOME` and `MCP_WORK` ("lat,lon" or an address) set fixed places. Not affiliated with any government agency. Verify before driving.