Intervals.icu MCP Server
Intervals.icu MCP Server
Model Context Protocol (MCP)-Server zum Verbinden von Claude und ChatGPT mit der Intervals.icu API. Er bietet Werkzeuge für Authentifizierung und Datenabruf für Aktivitäten, Ereignisse, Wellness-Daten, Leistungskurven und benutzerdefinierte Elemente.
Wenn Sie den Model Context Protocol (MCP)-Server nützlich, unterstützen Sie bitte die weitere Entwicklung mit einer Spende.
Voraussetzungen
Python 3.12 oder höher
httpx
python-dotenv
Related MCP server: Intervals.icu MCP Server
Einrichtung
1. uv installieren (empfohlen)
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Ermitteln Sie nach der Installation den vollständigen Pfad zu uv – Sie benötigen ihn später bei der Konfiguration von Claude Desktop:
where.exe uv
# Example output: C:\Users\<USERNAME>\.local\bin\uv.exe2. Dieses Repository klonen
git clone https://github.com/mvilanova/intervals-mcp-server.git
cd intervals-mcp-server3. Virtuelle Umgebung erstellen und aktiveren
# Create virtual environment with Python 3.12
uv venv --python 3.12
# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate4. Projektabhängigkeiten synchronisieren
uv sync5. Umgebungsvariablen einrichten
Erstellen Sie eine Kopie von .env.example und nennen Sie die Kopie .env, indem Sie den folgenden Befehl ausführen:
macOS/Linux:
cp .env.example .envWindows (PowerShell):
Copy-Item .env.example .envBearbeiten Sie anschließend die Datei .env und setzen Sie Ihre Intervals.icu Athleten-ID sowie Ihren API-Schlüssel ein:
API_KEY=your_intervals_api_key_here
ATHLETE_ID=your_athlete_id_hereSo erhalten Sie Ihren Intervals.icu-API-Schlüssel
Melden Sie sich bei Ihrem Intervals.icu-Konto an.
Gehen Sie zu Einstellungen > API.
Erzeugen Sie einen neuen API-Schlüssel.
So finden Sie Ihre Athleten-ID
Ihre Athleten-ID ist üblich in der URL sichtbar, wenn Sie bei Intervals.icu angemeldet sind. Sie sieht wie folgt aus:
https://intervals.icu/athlete/i12345/...– hierbei isti12345Ihre Athleten-ID
Aktualisierung
Dieses Projekt wird aktiv weiterentwickelt. Regelmäßig kommen neue Features und Fehlerbehebungen hinzu. Bleiben Sie mit folgenden Schritten auf dem aktuellen Stand:
1. Die neuesten Änderungen von main abrufen
⚠️ Stellen Sie sicher, dass Sie keine nicht committeten Änderungen haben, bevor Sie diesen Befehl ausführen.
macOS/Linux:
git checkout main && git pullWindows (PowerShell):
git checkout main; git pull2. Python-Abhängigkeiten aktualisieren
Aktivieren Sie Ihre virtuelle Umgebung und synchronisieren Sie die Abhängigkeiten:
macOS/Linux:
source .venv/bin/activate
uv syncWindows (PowerShell):
.venv\Scripts\activate
uv syncFehlerbehebung
Falls Claude Desktop wegen Konfigurationsänderungen fehlschlägt, gehen Sie wie folgt vor:
Löschen Sie den vorhandenen Eintrag
Intervals.icuinclaude_desktop_config.json.Konfigurieren Sie Claude Desktop erneut vom Verzeichnis
intervals-mcp-serveraus.
macOS/Linux:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .envWindows: Fügen Sie den Eintrag manuell hinzu, wie im Abschnitt Windows-Konfiguration beschrieben.
Häufige Fehler
spawn uv ENOENT – Claude Desktop kann die ausführbare Datei uv nicht finden. Verwenden Sie im Feld command den vollständigen Pfad zu uv. Führen Sie which uv (macOS/Linux) oder where.exe uv (Windows) aus, um den Pfad zu erhalten.
spawn /Users/... ENOENT auf Windows – Die Konfigurationsdatei enthält einen Pfad im macOS/Linux-Stil. Ersetzen Sie ihn durch den korrekten Windows-Pfad mit Backslashes, wie unten im Abschnitt Windows-Konfiguration beschrieben.
Windows-Store-Installation: Konfigurationsänderungen werden nicht übernommen – Möglicherweise bearbeiten Sie die falsche Konfigurationsdatei. Claude Desktop aus dem Microsoft Store liest aus AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json, nicht aus AppData\Roaming\Claude\.
Verwendung mit Claude
1. Claude Desktop konfigurieren
macOS/Linux
Führen Sie den folgenden Befehl im Verzeichnis
intervals-mcp-serveraus, um Claude Desktop zu konfigurieren:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .envWenn Sie die Konfigurationsdatei von Claude Desktop
claude_desktop_config.jsonöffnen, sollte sie in etwa so aussehen:
{
"mcpServers": {
"Intervals.icu": {
"command": "/Users/<USERNAME>/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with-editable",
"/path/to/intervals-mcp-server",
"mcp",
"run",
"/path/to/intervals-mcp-server/src/intervals_mcp_server/server.py"
],
"env": {
"INTERVALS_API_BASE_URL": "https://intervals.icu/api/v1",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"API_KEY": "<YOUR_API_KEY>",
"LOG_LEVEL": "INFO"
}
}
}
}wobei /path/to/ den Pfad zum Codeordner intervals-mcp-server auf Ihrem System angibt.
Windows
Der Befehl mcp install kann auf Windows aufgrund von Umgebungs- oder Berechtigungsprobleme fehlschlagen. Konfigurieren Sie Claude Desktop stattdessen manuell:
Finden Sie die Claude-Desktop-Konfigurationsdatei. Wenn Claude Desktop aus dem Microsoft Store installiert wurde, befindet sich die Konfiguration unter:
C:\Users\<USERNAME>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json
Falls es mit dem Standardinstallationsprogramm installiert wurde, liegt es möglicherweise unter:
C:\Users\<USERNAME>\AppData\Roaming\Claude\claude_desktop_config.jsonWenn die Datei oder der Ordner nicht vorhanden ist, erstellen Sie es.
Fügen Sie den folgenden Eintrag in
claude_desktop_config.jsonein und ersetzen Sie die Platzhalter mit Ihren tatsächlichen Werten:
{
"mcpServers": {
"Intervals.icu": {
"command": "C:\\Users\\<USERNAME>\\.local\\bin\\uv.exe",
"args": [
"run",
"--with",
"mcp[cli]",
"--with-editable",
"C:\\path\\to\\intervals-mcp-server",
"mcp",
"run",
"C:\\path\\to\\intervals-mcp-server\\src\\intervals_mcp_server\\server.py"
],
"env": {
"INTERVALS_API_BASE_URL": "https://intervals.icu/api/v1",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"API_KEY": "<YOUR_API_KEY>",
"LOG_LEVEL": "INFO"
}
}
}
}Verwenden Sie in JSON doppelte Backslashes (
\\) für alle Windows-Pfade.Um den vollständigen Pfad zu
uv.exezu erhalten, führen Siewhere.exe uvin PowerShell aus.Um den vollständigen Pfad zum Klon zu erhalten, führen Sie
pwdim Ordnerintervals-mcp-serveraus.
Hinweis für Windows-Store-Installationen: Claude Desktop aus dem Microsoft Store kapselt die Konfiguration unter
AppData\Local\Packages\.... Eine Änderung anAppData\Roaming\Claude\claude_desktop_config.jsonhat keine Wirkung. Stellen Sie sicher, dass Sie die richtige Datei bearbeiten.
Starten Sie Claude Desktop neu.
2. Den MCP-Server mit Claude verwenden
Wenn der Server läuft und Claude Desktop konfiguriert ist, können Sie die folgenden Werkzeuge verwenden, um Fragen zu vergangenen und zukünftigen Aktivitäten, Ereignissen und Wellnessdaten zu stellen.
get_activities: Ruft eine Liste von Aktivitäten abget_activity_details: Ruft detaillierte Informationen zu einer bestimmten Aktivität abget_activity_intervals: Ruft detaillierte Intervalldaten für eine bestimmte Aktivität abget_activity_streams: Ruft die Rohdatenströme (Leistung, Herzfrequenz usw.) für eine bestimmte Aktivität abget_athlete_power_curves: Ruft die besten Leistungskurven für ausgewählte Dauern und Zeiträume abget_wellness_data: Ruft Wellnessdaten abget_events: Ruft bevorstehende Ereignisse ab (Übungseinheiten, Rennen usw.)get_event_by_id: Ruft detaillierte Informationen zu einem bestimmten Ereignis abadd_or_update_event: Erstellt oder aktualisiert ein Ereignis (Training, Rennen, Notiz usw.)delete_event: Löscht ein bestimmtes Ereignisdelete_events_by_date_range: Löscht Ereignisse innerhalb eines Datumsbereichsget_custom_items: Ruft benutzerdefinierte Elemente (Diagramme, benutzerdefinierte Felder, Zonen usw.) für einen Athleten abget_custom_item_by_id: Ruft detaillierte Informationen zu einem bestimmten benutzerdefinierten Element abcreate_custom_item: Erstellt ein neues benutzerdefiniertes Element für einen Athletenupdate_custom_item: Aktualisiert ein vorhandenes benutzerdefiniertes Elementdelete_custom_item: Löscht ein benutzerdefiniertes Element
Verwendung mit ChatGPT
Die Beta-MCP-Connectors von ChatGPT können ebenfalls über den SSE-Transport mit diesem Server sprechen.
Starten Sie den Server im SSE-Modus, damit er die/
sse- und/messages/-Endpunkte exponiert:
export FASTMCP_HOST=127.0.0.1 FASTMCP_PORT=8765 MCP_TRANSPORT=sse FASTMCP_LOG_LEVEL=INFO
python src/intervals_mcp_server/server.pyDas Startprotokoll gibt die vollständigen URLs aus (z. B. http://127.0.0.1:8765/sse). ChatGPT benötigt die öffentlich erreichbare URL. Leiten Sie den Port daher mit einem Werkzeug wie ngrok http 8765 weiter, wenn Sie den Server nicht direkt verfügbar machen.
Öffnen Sie in ChatGPT Einstellungen → Features → Custom MCP Connectors und klicken Hinzufügen. Füllen Sie Folgendes aus:
Name:
Intervals.icuMCP Server URL:
https://<your-public-host>/sseAuthentication: Auf Keine Authentifizierung belassen, falls Sie Ihren Tunnel nicht geschützt haben.
Sie können dieselbe ngrok http 8765-Tunnel-URL verwenden; stellen Sie nur sicher, dass dieses zu dem zuvor eingerichteten Host/Port weiterleitet.
Speichern Sie den Connector und öffnen Sie einen neuen Chat. ChatGPT hält die SSE-Verbindung offen und sendet (POST) nachfolgende Anfragen an den
/messages/-Endpunkt, den der Server angemeldnet hat. Falls Sie den MCP-Server oder den Tunnel neu starten, führen Sie den SSE-Befehl erneut aus und aktualisieren Sie bei der Änderung die Connector-URL.
Entwicklung und Tests
Installieren Sie die Entwicklung ohne test:
uv sync --all-extras
pytest -v testsDen Server lokal ausführen
Um den Server manuell zu starten (nützlich bei Entwicklung und Tests), führen Sie aus:
mcp run src/intervals_mcp_server/server.pyDebug-Logging aktivieren
Um Server-Logs für das Debuggen zu erfassen, umgeben Sie den Befehl in einer Shell und leiten Sie stderr in eine Datei um.
macOS/Linux – Ändern Sie claude_desktop_config.json wie folgt:
{
"mcpServers": {
"Intervals.icu": {
"command": "/bin/bash",
"args": [
"-c",
"/Users/<USERNAME>/.local/bin/uv run --with 'mcp[cli]' --with-editable /path/to/intervals-mcp-server mcp run /path/to/intervals-mcp-server/src/intervals_mcp_server/server.py 2>> /path/to/intervals-mcp-server/mcp-server.log"
],
"env": {
"INTERVALS_API_BASE_URL": "https://intervals.icu/api/v1",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"API_KEY": "<YOUR_API_KEY>",
"LOG_LEVEL": "INFO"
}
}
}
}Anschließend verfolgen Sie die Logdatei in Echtzeit:
tail -f /path/to/intervals-mcp-server/mcp-server.logWindows – Ändern Sie claude_desktop_config.json wie folgt:
{
"mcpServers": {
"Intervals.icu": {
"command": "powershell",
"args": [
"-Command",
"C:\\Users\\<USERNAME>\\.local\\bin\\uv.exe run --with 'mcp[cli]' --with-editable C:\\path\\to\\intervals-mcp-server mcp run C:\\path\\to\\intervals-mcp-server\\src\\intervals_mcp_server\\server.py 2>> C:\\path\\to\\intervals-mcp-server\\mcp-server.log"
],
"env": {
"INTERVALS_API_BASE_URL": "https://intervals.icu/api/v1",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"API_KEY": "<YOUR_API_KEY>",
"LOG_LEVEL": "INFO"
}
}
}
}Überwachen Sie die Logdatei in Echtzeit in PowerShell:
Get-Content C:\path\to\intervals-mcp-server\mcp-server.log -WaitLizenz
Die GNU General Public License v3.0
Vorgestellt
Glama.ai
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceConnects Claude with the Intervals.icu API to retrieve fitness data including activities, workouts, wellness metrics, and training events.10334GPL 3.0
- FlicenseAqualityDmaintenanceEnables AI assistants to interact with Intervals.icu fitness tracking and wellness data, allowing users to fetch, filter, and group activities or health metrics. It provides structured summaries of workouts and physical well-being through natural language queries.4
- FlicenseAqualityCmaintenanceEnables AI assistants to access and analyze intervals.icu training data including activities, fitness metrics (CTL/ATL/TSB), wellness stats, and calendar events. Supports natural language querying of athletic performance for training insights and workout planning.6
- AlicenseAqualityDmaintenanceEnables interaction with Intervals.icu data, including activities, wellness, and calendar events, via natural language.10341MIT
Related MCP Connectors
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/csikosaron98/intervals-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server