# Suunto MCP

> Lets your agent read your Suunto watch data, from workouts and laps to sleep and recovery, and push guided workouts to your watch.

Suunto MCP is an independent, open-source MCP server by Dawid Piaskowski (googlarz), a Suunto user. It isn't made by Suunto. It connects your agent to your own Suunto account through Suunto's official API Zone, so you can ask about your training in plain words instead of clicking through dashboards.

What you can do with it
- Ask about your workouts: distance, time, heart rate, pace, elevation and power, with lap-by-lap tables for guided gym sessions
- Get a whole day in one ask: last night's sleep, recovery balance, steps, energy and workouts
- Look at sleep stages and scores, recovery balance and stress state, and 24/7 steps and heart rate
- List your saved routes, export one as GPX, or import a GPX file as a new route
- Upload a FIT file as a new workout
- Push strength, interval and gym workouts to your watch as SuuntoPlus Guides, and list or delete them
- Write a daily digest of steps, sleep, recovery, HRV and a training-load estimate to a file on your computer

How it connects
It runs on your computer with npx -y suunto-mcp (Node.js 20 or newer). You need your own Suunto API Zone account: subscribe to the Developer API (and the Sleep, Recovery and Daily Activity APIs for that data), wait for Suunto to approve it (the README says 3–4 weeks), register an OAuth app, then set SUUNTO_CLIENT_ID, SUUNTO_CLIENT_SECRET and SUUNTO_SUBSCRIPTION_KEY. Pair once with npx -p suunto-mcp suunto-mcp-auth, which opens Suunto's sign-in page and keeps the tokens on your computer. Pushing guides also needs SUUNTO_APP_NAME, set to the app name you registered.

Good to know
- Your data goes straight between your computer and Suunto's servers; the project says no third-party servers or analytics are involved. You can revoke access in API Zone at any time.
- Some tools change your Suunto account: uploads, routes and guides (pushing or deleting). The digest writes a local file.
- Suunto's servers currently reject a few endpoints (workout samples, workout GPX export and subscriptions), so those tools report that they're unavailable.
- Numbers can differ from the Suunto app: the training-load figures are computed by the server rather than read from your watch, and daily calories appear to be active energy only.
- It reports your training data; your agent's answers aren't medical advice.

- Type: Plugin
- Made by: googlarz
- Category: Health & fitness
- Formats: Local MCP
- Version: 0.20.0
- Website: https://github.com/googlarz/suunto-mcp#readme
- Source: https://github.com/googlarz/suunto-mcp
- Page: https://pluginboard.ai/plugins/suunto-mcp

## Works with

- Claude
- GitHub Copilot
- Cursor
- Claude Code
- Codex
- Antigravity
- Gemini CLI
- OpenClaw
- OpenCode
- Hermes Agent

## Install

You'll need:

- `SUUNTO_CLIENT_ID` (required): Suunto API zone OAuth client ID
- `SUUNTO_CLIENT_SECRET` (required): Suunto API zone OAuth client secret
- `SUUNTO_SUBSCRIPTION_KEY` (required): Suunto API zone subscription key

Replace each `<NAME>` placeholder with your own value.

### Claude

Add to claude_desktop_config.json:

```json
{
  "mcpServers": {
    "suunto-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "suunto-mcp@0.20.0"
      ],
      "env": {
        "SUUNTO_CLIENT_ID": "<SUUNTO_CLIENT_ID>",
        "SUUNTO_CLIENT_SECRET": "<SUUNTO_CLIENT_SECRET>",
        "SUUNTO_SUBSCRIPTION_KEY": "<SUUNTO_SUBSCRIPTION_KEY>"
      }
    }
  }
}
```

### GitHub Copilot

Add to VS Code: vscode:mcp/install?%7B%22name%22%3A%22suunto-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22suunto-mcp%400.20.0%22%5D%2C%22env%22%3A%7B%22SUUNTO_CLIENT_ID%22%3A%22%3CSUUNTO_CLIENT_ID%3E%22%2C%22SUUNTO_CLIENT_SECRET%22%3A%22%3CSUUNTO_CLIENT_SECRET%3E%22%2C%22SUUNTO_SUBSCRIPTION_KEY%22%3A%22%3CSUUNTO_SUBSCRIPTION_KEY%3E%22%7D%7D

Run in your terminal:

```shell
code --add-mcp '{"name":"suunto-mcp","command":"npx","args":["-y","suunto-mcp@0.20.0"],"env":{"SUUNTO_CLIENT_ID":"<SUUNTO_CLIENT_ID>","SUUNTO_CLIENT_SECRET":"<SUUNTO_CLIENT_SECRET>","SUUNTO_SUBSCRIPTION_KEY":"<SUUNTO_SUBSCRIPTION_KEY>"}}'
```

Copilot CLI:

```shell
copilot mcp add suunto-mcp --env SUUNTO_CLIENT_ID=<SUUNTO_CLIENT_ID> --env SUUNTO_CLIENT_SECRET=<SUUNTO_CLIENT_SECRET> --env SUUNTO_SUBSCRIPTION_KEY=<SUUNTO_SUBSCRIPTION_KEY> -- npx -y suunto-mcp@0.20.0
```

### Cursor

Add to Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=suunto-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInN1dW50by1tY3BAMC4yMC4wIl0sImVudiI6eyJTVVVOVE9fQ0xJRU5UX0lEIjoiPFNVVU5UT19DTElFTlRfSUQ%2BIiwiU1VVTlRPX0NMSUVOVF9TRUNSRVQiOiI8U1VVTlRPX0NMSUVOVF9TRUNSRVQ%2BIiwiU1VVTlRPX1NVQlNDUklQVElPTl9LRVkiOiI8U1VVTlRPX1NVQlNDUklQVElPTl9LRVk%2BIn19

Add to .cursor/mcp.json:

```json
{
  "mcpServers": {
    "suunto-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "suunto-mcp@0.20.0"
      ],
      "env": {
        "SUUNTO_CLIENT_ID": "<SUUNTO_CLIENT_ID>",
        "SUUNTO_CLIENT_SECRET": "<SUUNTO_CLIENT_SECRET>",
        "SUUNTO_SUBSCRIPTION_KEY": "<SUUNTO_SUBSCRIPTION_KEY>"
      }
    }
  }
}
```

### Claude Code

Run in your terminal:

```shell
claude mcp add -e SUUNTO_CLIENT_ID=<SUUNTO_CLIENT_ID> -e SUUNTO_CLIENT_SECRET=<SUUNTO_CLIENT_SECRET> -e SUUNTO_SUBSCRIPTION_KEY=<SUUNTO_SUBSCRIPTION_KEY> suunto-mcp -- npx -y suunto-mcp@0.20.0
```

### Codex

Run in your terminal:

```shell
codex mcp add --env SUUNTO_CLIENT_ID=<SUUNTO_CLIENT_ID> --env SUUNTO_CLIENT_SECRET=<SUUNTO_CLIENT_SECRET> --env SUUNTO_SUBSCRIPTION_KEY=<SUUNTO_SUBSCRIPTION_KEY> suunto-mcp -- npx -y suunto-mcp@0.20.0
```

### Antigravity

Add to ~/.gemini/config/mcp_config.json:

```json
{
  "mcpServers": {
    "suunto-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "suunto-mcp@0.20.0"
      ],
      "env": {
        "SUUNTO_CLIENT_ID": "<SUUNTO_CLIENT_ID>",
        "SUUNTO_CLIENT_SECRET": "<SUUNTO_CLIENT_SECRET>",
        "SUUNTO_SUBSCRIPTION_KEY": "<SUUNTO_SUBSCRIPTION_KEY>"
      }
    }
  }
}
```

### Gemini CLI

Run in your terminal:

```shell
gemini mcp add -e SUUNTO_CLIENT_ID=<SUUNTO_CLIENT_ID> -e SUUNTO_CLIENT_SECRET=<SUUNTO_CLIENT_SECRET> -e SUUNTO_SUBSCRIPTION_KEY=<SUUNTO_SUBSCRIPTION_KEY> suunto-mcp npx -y suunto-mcp@0.20.0
```

### OpenClaw

In a terminal: Run openclaw mcp add suunto-mcp --command npx, with --arg before each argument (-y suunto-mcp@0.20.0) and --env NAME=value for each variable it needs.

### OpenCode

Run in your terminal:

```shell
opencode mcp add suunto-mcp --env SUUNTO_CLIENT_ID=<SUUNTO_CLIENT_ID> --env SUUNTO_CLIENT_SECRET=<SUUNTO_CLIENT_SECRET> --env SUUNTO_SUBSCRIPTION_KEY=<SUUNTO_SUBSCRIPTION_KEY> -- npx -y suunto-mcp@0.20.0
```

### Hermes Agent

Add to ~/.hermes/config.yaml:

```json
{
  "mcp_servers": {
    "suunto-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "suunto-mcp@0.20.0"
      ],
      "env": {
        "SUUNTO_CLIENT_ID": "<SUUNTO_CLIENT_ID>",
        "SUUNTO_CLIENT_SECRET": "<SUUNTO_CLIENT_SECRET>",
        "SUUNTO_SUBSCRIPTION_KEY": "<SUUNTO_SUBSCRIPTION_KEY>"
      }
    }
  }
}
```

---
From Pluginboard (https://pluginboard.ai).
