# SportsTrackLive (remote · mcp.sportstracklive.com)

Live GPS sports tracking + per-sport analysis of GPX/IGC/FIT files: thermals, wind, phases, laps

- Trust score: 66/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-20

## Components

- remote · `mcp.sportstracklive.com`: 66/100 (this document), [markdown](https://verifymcp.io/servers/com-sportstracklive-mcp/mcp.md), [page](https://verifymcp.io/servers/com-sportstracklive-mcp/mcp)

## Channel facts

- Endpoint: `https://mcp.sportstracklive.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-20.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 6 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1897 tokens (~237/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 40/100
  - Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 96/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 87% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### Claude

```bash
claude mcp add --transport http com-sportstracklive-mcp https://mcp.sportstracklive.com/mcp
```

### Codex

```toml
[mcp_servers.com-sportstracklive-mcp]
url = "https://mcp.sportstracklive.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-sportstracklive-mcp": {
      "type": "remote",
      "url": "https://mcp.sportstracklive.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-sportstracklive-mcp --url https://mcp.sportstracklive.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-sportstracklive-mcp:
    url: "https://mcp.sportstracklive.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-sportstracklive-mcp": {
      "type": "http",
      "url": "https://mcp.sportstracklive.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-19 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-17 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-16 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-13 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-11 (score 62, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-10 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-09 (score 60, −1)

- [security] Tool “get_track_replay_3d” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 100% → 87%
- [functional regression] Schema quality: 1337 → 1897
- [functional regression] Tool coverage: 100% → 92%
- [functional regression] Schema quality: 1337 → 1697
- [functional improvement] Stability: unverified → 0.03
- [functional] New tool “import_activity”
- [functional] New tool “create_ephemeral_replay”

### 2026-08-08 (score 61)

First indexed and scored.

## MCP tools (8)

### `analyze_activity_file` (~590 tokens)

Analyze a GPS activity trace file (GPX, TCX, IGC, SBP or FIT, max 8 MiB) and return sport-specific metrics computed by the SportsTrackLive engine: distance, speeds, altitudes, and — depending on the sport — thermal detection with climb statistics, flight phases (glide/float/search) with glide polar and MacCready, wind estimation, lap detection around course marks, and splits. Stateless: nothing is stored, no account needed. Provide the file ONE of three ways — never reconstruct file content inside the conversation: (1) LOCAL file + shell available: run `curl -s -X POST https://mcp.sportstracklive.com/upload --data-binary @/path/to/file` in ONE command, then pass the returned `upload_id`; (2) file already online: pass its public https link as `file_url`, the server downloads it; (3) `file_base64` only for small files (< ~100 KB).

Input parameters:

- `detail`: "standard" (default) returns every computed insight but strips the bulky point-level payloads (per-phase segment lists, wind timeline, pause/trim ranges) — a few KB instead of tens. "full" returns th…
- `file_base64` (string|null): The file content, base64-encoded. Maximum 8 MiB decoded. Provide either this or `file_url`. Prefer `file_url` for files over ~100 KB: it keeps the payload out of the conversation.
- `file_url` (string|null): Public https:// URL of the file (e.g. a cloud share or export link); the server downloads it (15 MiB cap). Provide exactly one of `file_url`, `upload_id` or `file_base64`.
- `filename` (string, required): File name including its extension — the extension selects the parser. Supported: .gpx, .tcx, .igc, .sbp, .fit
- `measure_unit`: Preferred units for the computed metrics ("metric" default, or "imperial").
- `sport`: Sport of the activity. Use "auto" (default) to let the server infer it from the file format and trace kinematics; the resolved sport is returned in `context_used.sport` and can be overridden on a sec…
- `upload_id` (string|null): Id returned by POST https://mcp.sportstracklive.com/upload — the way to analyze a LOCAL file when a shell is available: run `curl -s -X POST https://mcp.sportstracklive.com/upload --data-binary @/pat…

### `create_ephemeral_replay` (~318 tokens)

Create an interactive 3D replay of the USER'S OWN trace file (GPX, TCX, IGC, SBP or FIT, max 8 MiB) on SportsTrackLive and return its link. The flight becomes a PRIVATE track owned by a temporary guest account — it appears in no listing or search — and the link stays valid 7 days, after which everything is purged. From the replay page the user can create an account to keep the flight permanently. Provide the file exactly like analyze_activity_file (upload_id / file_url / file_base64); pass pilot_name so the player credits the right person. Takes up to ~90 s (the full analysis pipeline runs).

Input parameters:

- `file_base64` (string|null): Same three sources as analyze_activity_file — provide exactly one.
- `file_url` (string|null)
- `filename` (string, required): File name including its extension (.gpx, .tcx, .igc, .sbp, .fit).
- `language` (string|null): BCP-47-ish language for the guest account pages ("en" default, "fr"…).
- `pilot_name` (string|null): Name of the pilot/athlete, shown in the 3D player instead of an anonymous placeholder. Use the user's name if they shared it.
- `sport`: Sport of the activity — improves the analysis (thermals/phases for free flight). Defaults to auto-ish generic handling server-side.
- `upload_id` (string|null)

### `get_live_activities` (~148 tokens)

List public SportsTrackLive activities being recorded LIVE right now (paragliding flights, sailing races, rides, runs…), optionally filtered by sport and country. Each entry carries the athlete, sport, location, start time, latest recorded position/speed and a watch_url to follow the activity live in a browser.

Input parameters:

- `country` (string|null): Country filter: ISO 3166-1 alpha-2 code ("FR", "CH") or a country name.
- `limit` (integer|null): Max results, 1-50 (default 20).
- `sport` (string|null): Sport / category name filter, e.g. "paragliding", "sailing".

### `get_track_replay_3d` (~119 tokens)

Get the interactive 3D replay URL of an EXISTING PUBLIC SportsTrackLive track (Cesium terrain viewer with camera controls and timeline) plus its summary statistics. The URL must be opened in a web browser — share it with the user. NOT for a file the user just provided: for that, use create_ephemeral_replay, which builds a private replay of THEIR trace. Never substitute another athlete's track for the user's own file.

Input parameters:

- `track_id` (integer, required): Numeric id of a public SportsTrackLive track.

### `get_track_stats` (~77 tokens)

Get the public statistics of a SportsTrackLive track by its numeric id: athlete, sport, location, date, duration, distance, speeds, altitudes and the track's web page URL. Only public tracks are returned; private tracks answer not_found.

Input parameters:

- `track_id` (integer, required): Numeric id of a public SportsTrackLive track.

### `import_activity` (~200 tokens)

Import the user's trace file (GPX, TCX, IGC, SBP or FIT, max 8 MiB) into THEIR SportsTrackLive account permanently — full analysis, 3D replay, appears in their profile with their default privacy setting. REQUIRES the user to be connected via OAuth (this MCP server supports it; the client starts the flow). For a user without an account, use create_ephemeral_replay instead. Provide the file exactly like analyze_activity_file (upload_id / file_url / file_base64).

Input parameters:

- `file_base64` (string|null): Same three sources as analyze_activity_file — provide exactly one.
- `file_url` (string|null)
- `filename` (string, required): File name including its extension (.gpx, .tcx, .igc, .sbp, .fit).
- `sport`: Sport of the activity — selects the analysis profile.
- `upload_id` (string|null)

### `search_athletes` (~92 tokens)

Search SportsTrackLive athletes by name (user name, first or last name). Returns id, user name, full name, country, number of public tracks and the public profile URL.

Input parameters:

- `limit` (integer|null): Max results, 1-25 (default 10).
- `query` (string, required): Name to search for (user name, first name or last name), 2-64 chars.

### `search_tracks` (~196 tokens)

Search public SportsTrackLive tracks (finished, stored activities), newest first. Filter by free text (locality / take-off name or athlete user name), sport name, and an ISO date range. Returns per track the athlete, sport, location, date and web page URL; feed a track_id to get_track_stats for full statistics.

Input parameters:

- `from` (string|null): Earliest activity date, ISO `YYYY-MM-DD` (inclusive, UTC).
- `limit` (integer|null): Max results, 1-25 (default 10).
- `query` (string|null): Free-text filter matched against the locality (take-off/venue) name and the athlete's user name.
- `sport` (string|null): Sport / category name, e.g. "paragliding", "cycling", "sailing".
- `to` (string|null): Latest activity date, ISO `YYYY-MM-DD` (inclusive, UTC).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-sportstracklive-mcp/mcp#diagnostics

## Score history

- 2026-08-20: 66
- 2026-08-19: 66
- 2026-08-18: 65
- 2026-08-17: 65
- 2026-08-16: 64
- 2026-08-15: 63
- 2026-08-14: 63
- 2026-08-13: 63
- 2026-08-12: 62
- 2026-08-11: 62
- 2026-08-10: 61
- 2026-08-09: 60
- 2026-08-08: 61

## Links

- Remote endpoint: https://mcp.sportstracklive.com/mcp
- Website: https://www.sportstracklive.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-sportstracklive-mcp/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-sportstracklive-mcp/mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-sportstracklive-mcp/mcp
