intervals-icu-mcp
MCP server that connects AI agents to Intervals.icu, enabling access to training data such as activities, wellness metrics, calendar events, gear, power curves, and custom items. Includes a running coach AI template for automated post-session analysis.
README
<div align="center">
š intervals-icu-mcp
MCP Server untuk Intervals.icu
Hubungkan AI agent (Claude, Antigravity, atau MCP client lain) langsung ke data training Anda di Intervals.icu ā activities, wellness, calendar, gear, power curves, dan custom items.
</div>
⨠Fitur
- š Activities ā Ambil daftar aktivitas, detail, interval splits, dan time-series streams (power, HR, cadence, pace)
- š¤ Wellness ā Data harian HRV, resting HR, sleep score, CTL/ATL
- š Calendar / Events ā List, detail, hapus event, buat planned workout & catatan
- āļø Gear ā Katalog sepatu, sepeda, dan peralatan lain
- š Power Curves ā Best power per durasi (MMP)
- šļø Custom Items ā Baca, buat, update, dan hapus custom item
š¤ Bonus: Running Coach AI (Template)
Project ini dilengkapi template Antigravity skill & workflow untuk membangun Running Coach AI personal berbasis data Intervals.icu Anda:
/run-reportā Slash-command untuk analisis pasca-sesi otomatis: tidak perlu upload CSV atau screenshot manual, data diambil langsung via MCP.running-coach-analysisā Skill yang berisi panduan analisis fisiologis (Aerobic Decoupling, Cardiac Drift, Efficiency Factor) dan format coaching report 4-bagian.
Lihat panduan konfigurasi di
.agents/README.md.
š ļø Tools (19)
| Kategori | Tool | Keterangan |
|---|---|---|
| Activities | get_activities |
List aktivitas dalam rentang tanggal |
get_activity_details |
Detail + profil fisiologis satu aktivitas | |
get_activity_intervals |
Data interval/lap per sesi | |
get_activity_streams |
Time-series: power, HR, cadence, pace | |
get_activity_messages |
Catatan/komentar pada aktivitas | |
add_activity_message |
Tambah catatan ke aktivitas | |
| Wellness | get_wellness_data |
Data wellness harian (HRV, sleep, RHR, CTL/ATL) |
| Events/Calendar | get_events |
List event kalender |
get_event_by_id |
Detail satu event | |
delete_event |
Hapus event | |
add_or_update_planned_workout |
Buat/update planned workout (support workout steps) | |
add_or_update_note |
Buat/update catatan di kalender | |
| Gear | get_gear_list |
Katalog gear |
| Power Curves | get_athlete_power_curves |
Best power per durasi |
| Custom Items | get_custom_items |
List custom item |
get_custom_item_by_id |
Detail custom item | |
create_custom_item |
Buat custom item | |
update_custom_item |
Update custom item | |
delete_custom_item |
Hapus custom item |
Setiap tool menerima apiKey opsional (override per-call) dan sebagian besar menerima athleteId opsional (fallback ke INTERVALS_ATHLETE_ID).
š Setup
1. Install & Build
pnpm install
pnpm run build
2. Konfigurasi Environment
Copy .env.example ke .env untuk testing lokal:
cp .env.example .env
Isi .env dengan kredensial Anda:
INTERVALS_API_KEY=your_api_key_here
INTERVALS_ATHLETE_ID=i123456
INTERVALS_API_KEY: Wajib. Ambil dari Intervals.icu ā Settings ā Developer Settings.INTERVALS_ATHLETE_ID: Opsional. Jika kosong, wajib dikirim sebagai argumenathleteIddi setiap tool call.
3. Konfigurasi MCP Client
Antigravity / Claude Desktop
Tambahkan ke MCP config Anda (mcp_config.json atau claude_desktop_config.json):
{
"mcpServers": {
"intervals-icu": {
"command": "node",
"args": ["/path/absolut/ke/intervals-icu-mcp/dist/index.js"],
"env": {
"INTERVALS_API_KEY": "your_api_key_here",
"INTERVALS_ATHLETE_ID": "i123456"
}
}
}
}
Restart client setelah edit config.
š Debug Lokal
pnpm run inspector
Membuka MCP Inspector untuk mencoba tiap tool secara interaktif tanpa perlu connect ke client dulu.
š Struktur Project
intervals-icu-mcp/
āāā src/
ā āāā index.ts # Entry point, register semua tools, jalankan stdio transport
ā āāā config.ts # Load environment variables
ā āāā client.ts # HTTP client (Basic Auth, error handling)
ā āāā types.ts # Helper convert ApiResult ā CallToolResult
ā āāā tools/
ā āāā activities.ts
ā āāā wellness.ts
ā āāā events.ts
ā āāā gear.ts
ā āāā powerCurves.ts
ā āāā customItems.ts
āāā .agents/ # Template Antigravity Agent konfigurasi (opsional)
ā āāā skills/running-coach-analysis/SKILL.md
ā āāā workflows/run-report.md
āāā .env.example
āāā .gitignore
ā ļø Known Limitations
- Belum ada tool untuk athlete profile atau training zones secara langsung ā bisa ditambah mengikuti pola yang sama di
src/tools/. get_athlete_power_curvesmengembalikan raw response dari API; parsing tambahan bisa dilakukan di sisi client.- Belum ada rate-limit handling khusus di luar pesan error 429.
š Referensi API
- Base URL:
https://intervals.icu/api/v1 - Auth: HTTP Basic Auth ā username selalu
API_KEY, password adalah API key Anda. - Swagger Docs: https://intervals.icu/api-docs.html
Struktur endpoint di project ini juga diverifikasi dari
mvilanova/intervals-mcp-server, MCP server intervals.icu versi Python.
š License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.