intervals-icu-mcp

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.

Category
Visit Server

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.

TypeScript MCP SDK Node.js License: MIT

</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

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_curves mengembalikan raw response dari API; parsing tambahan bisa dilakukan di sisi client.
  • Belum ada rate-limit handling khusus di luar pesan error 429.

šŸ“š Referensi API

Struktur endpoint di project ini juga diverifikasi dari mvilanova/intervals-mcp-server, MCP server intervals.icu versi Python.


šŸ“„ License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured