{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.ljcl/intervals-mcp","description":"Remote MCP server for intervals.icu run data and analysis","repository":{"url":"https://github.com/ljcl/intervals-mcp","source":"github"},"version":"2.5.1","websiteUrl":"https://github.com/ljcl/intervals-mcp#readme","packages":[{"registryType":"oci","identifier":"ghcr.io/ljcl/intervals-mcp:2.5.1","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:3000/mcp"},"environmentVariables":[{"description":"intervals.icu personal API key (Settings, Developer Settings)","isRequired":true,"format":"string","isSecret":true,"name":"INTERVALS_API_KEY"},{"description":"Athlete id: 0 (default, the API key's own athlete) or e.g. i12345","format":"string","name":"INTERVALS_ATHLETE_ID"},{"description":"IANA time zone for local dates, e.g. Australia/Sydney; unset or UTC follows the athlete's intervals.icu time zone (Etc/UTC pins UTC)","format":"string","name":"TZ"},{"description":"Shared secret (32+ characters) gating /mcp and detailed /health (recommended when internet-facing)","format":"string","isSecret":true,"name":"MCP_AUTH_TOKEN"},{"description":"Server port, 1-65535 (default 3000)","format":"number","name":"PORT"},{"description":"Public URL, used only to warn when /mcp is exposed without MCP_AUTH_TOKEN","format":"string","name":"PUBLIC_URL"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-09T21:46:17.336303Z","publishedAt":"2026-10-09T21:46:17.336303Z","updatedAt":"2026-10-09T21:46:17.336303Z","isLatest":false}}}
