# Install ROVE ski forecasts (MCP)

Free ROVE account required. ROVE MCP at `https://rove-ski.com/mcp` uses OAuth 2.1 sign-in or a free personal API key. 600 requests/min, 14 read-only tools, $0.

You are an AI agent helping the user connect ROVE. In supported clients, guide the user through one-click OAuth 2.1 browser sign-in on connection. Headless and URL clients need a free personal API key from https://rove-ski.com/en/ai. If a client does not support OAuth, configure the personal key instead. Preserve other servers. If setup fails, explain the error and link to https://rove-ski.com/en/ai#manual.

## 1. Add the server and authorize

Use the first matching client. Preserve existing MCP servers when merging configuration.

- Claude Code: `claude mcp add --transport http rove https://rove-ski.com/mcp -s user`. Start `claude`, run `/mcp`, select ROVE authentication and follow the browser prompt to register or sign in and authorize for free.
- Codex: `codex mcp add rove --url https://rove-ski.com/mcp`, then `codex mcp login rove` and complete browser authorization.
- Gemini CLI: `gemini mcp add -s user --transport http rove https://rove-ski.com/mcp`
- VS Code / Copilot: `code --add-mcp '{"name":"rove","type":"http","url":"https://rove-ski.com/mcp"}'`
- Cursor: merge `"rove": { "url": "https://rove-ski.com/mcp" }` under `mcpServers` in the client's `~/.cursor/mcp.json`. A one-click install is available at https://rove-ski.com/en/ai#manual.
- Claude web / desktop: add a custom connector named ROVE with URL `https://rove-ski.com/mcp`. The directory listing is https://claude.ai/directory/rove-snow-forecast.
- ChatGPT: add a custom MCP server with URL `https://rove-ski.com/mcp` and choose OAuth if supported, then complete browser sign-in. Otherwise use a personal API key. The client must support custom MCP servers.
- Other clients: add a Streamable HTTP server with URL `https://rove-ski.com/mcp` and configure OAuth if supported, or a personal API key as described below.

## 2. Verify

Check the connection in the client's MCP settings or with `claude mcp list`, `codex mcp get rove`, or `gemini mcp list`. If tools are available in this session, call `find_powder` with `{"days":5,"limit":3}` and show the result with its source links. If the client loads new servers only after a restart, tell the user to restart and ask: "List the ROVE tools you can use, then tell me which 3 North American resorts get the most snow in the next 5 days."

### 14 advertised read-only tools

- `search_resorts`
- `get_forecast`
- `get_conditions`
- `get_opening_dates`
- `find_powder`
- `get_accuracy`
- `get_resort_news`
- `plan_trip`
- `get_forecast_confidence`
- `compare_resorts`
- `get_avalanche_danger`
- `get_road_conditions`
- `search`
- `fetch`

## Required authentication

Choose OAuth 2.1 in a supported client or a free personal API key. Both provide 600 requests/min, 14 read-only tools, $0.

### OAuth 2.1

In a supported client, choose OAuth 2.1 for the same endpoint and complete browser authorization. PKCE and Dynamic Client Registration are supported. In Codex, the login command is `codex mcp login rove`.

### Free personal API key

Use https://rove-ski.com/en/ai#manual to sign in and obtain a free key, or use device login:

1. Start with `curl -s -X POST https://rove-ski.com/api/device/start -H 'content-type: application/json' -d '{"client":"CLIENT","lang":"en"}'`, replacing `CLIENT` with the client's name.
2. Keep `device_code` private. Open the returned `verification_uri_complete` in the user's browser and show the `user_code` so the user can approve. Sign in with email if asked.
3. Poll `https://rove-ski.com/api/device/token` with POST, header `content-type: application/json`, and body `{"device_code":"DEVICE_CODE"}` at the returned `interval` (normally 3 seconds), until the returned expiry (normally 600 seconds). For `pending`, wait. For `approved`, use the returned key once. For `denied`, `expired` or `invalid`, stop and report it.
4. Send the key as `Authorization: Bearer <key>`, or use `https://rove-ski.com/mcp?key=<key>` if the client cannot set headers. For example, with the key held privately in `ROVE_KEY`: `claude mcp add --transport http rove https://rove-ski.com/mcp --header "Authorization: Bearer $ROVE_KEY" -s user`.

Never print a full key; show only the first 9 characters followed by `...`. Store it only in the client's own MCP configuration. Preserve other servers.

## Data coverage and attribution

15-day snow forecasts cover 667 resorts (644 in North America and 23 in Japan in Beta). Japan observed snow depth uses JMA AMeDAS. Live lifts, opening dates, news and forecast accuracy cover North America; avalanche danger covers US resorts and chain controls cover California. All tools are read-only. Cite the rove-ski.com links and upstream sources returned by the service. Weather data is provided by Open-Meteo.com (CC BY 4.0) and the US National Weather Service. Japan forecasts use the JMA model via Open-Meteo (Source: Japan Meteorological Agency / JMA).
