module
Version:
v0.1.0
Opens a new window with list of versions in this module.
Published: Feb 12, 2026
License: MIT
Opens a new window with license information.
README
¶
intervals-icu-mcp
A Model Context Protocol (MCP) server for Intervals.icu, built in Go. Communicates over stdin/stdout using the MCP stdio transport.
Requirements
- Go 1.25 or later
- golangci-lint (for linting)
Configuration
Set the following environment variables before running the server:
| Variable |
Required |
Description |
INTERVALS_API_KEY |
Yes |
Your Intervals.icu API key (used for Basic auth) |
INTERVALS_ATHLETE_ID |
Yes |
Your Intervals.icu athlete ID (e.g., i12345) |
Usage
Run the MCP server:
go run ./src/...
Print version:
go run ./src/... -version
go run ./src/... -v
Build with version injection:
go build -ldflags "-X github.com/0xalexb/hjarta-di.Version=1.0.0 -X github.com/0xalexb/hjarta-di.DIVersion=0.2.1 -X github.com/0xalexb/hjarta-di.CompiledAt=$(date -u +%Y-%m-%dT%H:%M:%SZ)" -o intervals-icu-mcp ./src/
| Tool |
Description |
Arguments |
version |
Returns application build information including version, DI version, and compilation time. |
None |
get_athlete_profile |
Returns the athlete profile from Intervals.icu. |
None |
get_activities |
Lists activities in a date range. |
oldest (required), newest (optional) |
get_activity_details |
Returns details for a specific activity. |
activity_id (required) |
get_events |
Lists events in a date range. |
oldest (required), newest (required) |
create_event |
Creates a new event. |
name, start_date_local, category (required); type, description, moving_time, distance, training_load (optional) |
update_event |
Updates an existing event. |
event_id (required); name, description, start_date_local, category, type, moving_time, distance, training_load (optional) |
delete_event |
Deletes an event by ID. |
event_id (required) |
get_power_curve |
Returns power curve data by activity type. |
type (required), newest (optional) |
get_wellness |
Returns wellness data for a specific date. |
date (required) |
get_wellness_trend |
Returns wellness data over a date range. |
oldest (required), newest (required) |
Development
go build ./src/...
go test ./src/...
golangci-lint run ./src/...
Directories
¶
Package main is the entry point for the intervals-icu-mcp server.
|
Package main is the entry point for the intervals-icu-mcp server. |
app
Package app provides the MCP server, its DI module, and lifecycle management.
|
Package app provides the MCP server, its DI module, and lifecycle management. |
app/client
Package client provides an HTTP client for the Intervals.icu API.
|
Package client provides an HTTP client for the Intervals.icu API. |
app/tools
Package tools contains MCP tool registrations for the intervals.icu MCP server.
|
Package tools contains MCP tool registrations for the intervals.icu MCP server. |
Click to show internal directories.
Click to hide internal directories.