Intervals.icu MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Intervals.icu MCP Serverlist my activities from last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Intervals.icu MCP Server
This is a Model Context Protocol (MCP) server for Intervals.icu. It allows you to interact with your Intervals.icu data, including activities, wellness data, and calendar events.
Configuration
You need an API Key and your Athlete ID from Intervals.icu.
Environment Variables
Variable | Description |
| Your Intervals.icu Athlete ID (e.g., |
| Your Intervals.icu API Key |
Setting Environment Variables
macOS / Linux
You can set environment variables in your terminal session or add them to your shell configuration file (e.g., .bashrc, .zshrc).
export INTERVALS_ATHLETE_ID="your_athlete_id"
export INTERVALS_API_KEY="your_api_key"To make them permanent, add the lines above to your ~/.zshrc or ~/.bashrc file and run source ~/.zshrc (or source ~/.bashrc).
Windows (Command Prompt)
set INTERVALS_ATHLETE_ID=your_athlete_id
set INTERVALS_API_KEY=your_api_keyNote: This sets the variables for the current session only. To set them permanently, use the System Properties dialog or setx.
Windows (PowerShell)
$env:INTERVALS_ATHLETE_ID="your_athlete_id"
$env:INTERVALS_API_KEY="your_api_key"To set them permanently:
[System.Environment]::SetEnvironmentVariable('INTERVALS_ATHLETE_ID', 'your_athlete_id', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('INTERVALS_API_KEY', 'your_api_key', [System.EnvironmentVariableTarget]::User)Related MCP server: Intervals.icu MCP Server
Usage
Run the server using the package:
npx @moxus/intervals-mcpOr if running from source:
node dist/index.jsVerify Command
You can verify your configuration and connection to Intervals.icu using the verify command. This will attempt to fetch your athlete profile.
npx @moxus/intervals-mcp verifyIf successful, you will see your athlete details. If it fails, check your API key and Athlete ID.
Gemini Installation
The simplest way to install this MCP server for Gemini is using the extension:
gemini extension install https://github.com/moxus/intervals-icu-geminiFor more details, refer to the Intervals.icu Gemini Extension repository.
Manual Configuration (Alternative)
To add this MCP server to a CLI agent like gemini-cli (or similar agents that support MCP) manually, you typically need to configure the agent to spawn this server process.
Assuming gemini-cli supports an MCP configuration file (like mcp_config.json or command line arguments), you would add an entry for @moxus/intervals-mcp.
Example configuration (conceptual):
{
"mcpServers": {
"intervals": {
"command": "npx",
"args": ["-y", "@moxus/intervals-mcp"],
"env": {
"INTERVALS_ATHLETE_ID": "your_athlete_id",
"INTERVALS_API_KEY": "your_api_key"
}
}
}
}Or if you are running it locally from source:
{
"mcpServers": {
"intervals": {
"command": "node",
"args": ["/path/to/intervals-icu-mcp-ts/dist/index.js"],
"env": {
"INTERVALS_ATHLETE_ID": "your_athlete_id",
"INTERVALS_API_KEY": "your_api_key"
}
}
}
}Consult the documentation of the specific agent you are using for the exact configuration format.
Tools
get_athlete_profile: Get athlete details.list_activities: Get activities within a date range.get_activity: Get full details of an activity.list_wellness: Get wellness logs.list_workouts: Get workouts from the library.create_workout: Create a workout in the library.list_events: Get calendar events.create_event: Create an event (workout, note, etc.) on the calendar.update_event: Update an existing event.delete_future_event: Delete an event.
Available Tools
10 toolscreate_eventC
Create a new event on the calendar (must be in the future).
| Name | Required | Description | Default |
|---|---|---|---|
| start_date_local | Yes | Start DateTime (ISO-8601 Local) | |
| name | No | ||
| category | No | ||
| description | No | Description/Notes. If category=WORKOUT, this MUST follow Intervals.icu builder syntax. For repeating steps (e.g. 5x), insert an empty line before and after the block (e.g. '\n\n5x\n- 3m Z5\n- 3m Z1\n\n'). Otherwise, it is free text. | |
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of disclosure. It only mentions the future date constraint and does not cover authorization needs, side effects, default behaviors, or what happens on success/failure. For a creation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, achieving brevity. However, it could be restructured to include key constraints upfront and additional context without significant extra length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is severely lacking. It does not explain return values, required parameters, defaults, or the impact of parameters like 'name' or 'type'. The minimal description leaves an agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description adds no information about parameters beyond what the input schema provides. With schema description coverage at 40%, the description should compensate for gaps but does not. For example, it does not clarify the meaning of 'type' or the importance of 'description' syntax for WORKOUT category.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create a new event on the calendar) and adds a specific constraint (must be in the future). The tool name and description together distinguish it from siblings like create_workout (workout vs event) and update_event (create vs update).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as create_workout, delete_future_event, or update_event. The only usage information is the future date constraint, which does not help an agent decide between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workoutC
Create a new workout in the library.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workout Name | |
| description | No | Workout steps/description text. MUST follow Intervals.icu builder syntax. For repeating steps (e.g. 5x), insert an empty line before and after the block (e.g. '\n\n5x\n- 3m Z5\n- 3m Z1\n\n'). Use \n for new lines. | |
| folder_id | No | Folder ID to place the workout in | |
| type | No | Sport type (Ride, Run, etc.) | |
| indoor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description does not disclose any behavioral traits such as side effects, permissions, or constraints. It merely states the action without elaboration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence with no extraneous content, but it lacks structure or additional context that could be included without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no annotations, the description is too minimal to provide complete context about the tool's usage, such as what 'library' refers to or how the workout is created.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so baseline is 3. The description adds no parameter information beyond the schema; the 'indoor' field lacks description and the description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'workout' in the library, distinguishing it from sibling tools like create_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'create_event' or 'update_event'. No context on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_future_eventB
Delete a future event from the calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Event ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, placing the disclosure burden on the description. It only says 'delete' without mentioning irreversibility, required permissions, or effects on recurring events, offering minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation, the description is minimally viable but lacks details on behavior, recovery, or constraints, especially given no output schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description 'Event ID'. The description adds no additional meaning beyond this, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a future event, with specific verb and resource. It implicitly distinguishes from siblings like create_event and update_event, but does not explicitly differentiate from deleting past events or provide scope details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., update_event to cancel). No context on prerequisites or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activityA
Get FULL details of a specific activity by ID. Returns 100+ fields far beyond what list_activities provides, including: power (avg, weighted, FTP, W', joules), cadence, pace/GAP, zone times (HR/power/pace), performance metrics (efficiency factor, variability index, decoupling, polarization index), weather conditions, temperature, RPE/feel, intervals summary, achievements, gear, and tags. Always use this when answering questions about a specific activity.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The Activity ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the return values extensively (power, cadence, zones, etc.) and notes it's a full detail retrieval inheriting from the 'get' operation. Does not explicitly state read-only or side effects, but the verb 'Get' and tool name imply safe read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, informative list of fields in second sentence. No extraneous words; every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description fully explains return values with detailed examples. Simple parameter needs little explanation. Distinguishes from list_activities, making context complete for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for the single 'id' parameter with description 'The Activity ID.' Description adds only minor reinforcement ('by ID'). Does not provide additional semantics or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get FULL details of a specific activity by ID' with a specific verb and resource, and distinguishes from list_activities by noting it returns 100+ fields beyond what list_activities provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Always use this when answering questions about a specific activity,' providing clear guidance for when to use. However, it lacks explicit when-not-to-use instructions or alternative tools beyond implicit contrast with list_activities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_athlete_profileB
Get the profile of the configured athlete.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as side effects, authentication requirements, or data freshness. Only the basic read operation is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no waste. However, it could be slightly improved by clarifying 'configured athlete' without adding verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should explain what the profile contains or its typical usage context. It fails to do so, leaving the return value and scope unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the baseline score is 4. The description adds no parameter information, but that is acceptable given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the profile of a configured athlete, with a clear verb and resource. However, the term 'configured athlete' is ambiguous and does not differentiate from siblings that also access athlete data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. Usage is only implied by the read nature of the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_activitiesA
List activity summaries for a date range. Returns ONLY compact identification data (id, date, name, type, distance, moving_time, elevation, heart rate, speed, training load, fitness/fatigue, calories, source). To analyze an activity in depth, you MUST call get_activity — it returns 100+ fields including power, cadence, zones, weather, performance metrics, intervals, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| oldest | Yes | Start date (YYYY-MM-DD) | |
| newest | Yes | End date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Clearly states it returns only a specific set of fields and does not perform destructive actions. Could mention pagination, ordering, or rate limits, but the behavior is fairly transparent for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences with no unnecessary words. Starts with purpose, lists outputs, and directs to alternative tool. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lists all returned fields (no output schema), mentions the alternative for details, and parameters are simple. Could note max date range or pagination, but overall sufficiently complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions and patterns (100% coverage). Description only reiterates date range concept without adding new semantic detail, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists activity summaries for a date range and specifies the exact fields returned (compact identification data). Distinguishes from sibling get_activity by contrasting scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (summaries) and when to use get_activity (in-depth analysis), naming the alternative and its capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsA
List calendar events (planned workouts, notes, races, etc.) within a date range. Returns event details including workout descriptions/steps.
| Name | Required | Description | Default |
|---|---|---|---|
| oldest | Yes | Start date (YYYY-MM-DD) | |
| newest | Yes | End date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description states non-destructive listing and includes mention of returned details (workout descriptions/steps), but lacks info on pagination, rate limits, or potential large responses. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant words. Purpose, resource, scope, and return value efficiently communicated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two parameters and no output schema, description covers purpose, input constraints, and return value. Lacks ordering or default behavior but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both 'oldest' and 'newest'. Description does not add meaning beyond stating date range; baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List', specific resource 'calendar events', examples of types, and date range scope. Distinguishes from siblings like list_activities and list_workouts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for reading calendar events within a date range, but no explicit when-to-use or when-not-to-use guidance, nor comparisons with sibling tools like create_event or update_event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wellnessA
List wellness data (sleep, fatigue, etc.) for the athlete within a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| oldest | Yes | Start date (YYYY-MM-DD) | |
| newest | Yes | End date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry burden. It states listing operation but doesn't disclose auth needs, read-only nature, or result handling. Adequate for basic understanding but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 11 words, no redundancy. Every word is meaningful and contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and date-range parameters, but lacks description of return format or fields. No output schema exists, so description should ideally mention what data is returned (e.g., timestamps, metrics).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for both parameters. Description adds no extra meaning beyond the schema, consistent with baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses specific verb 'List' and resource 'wellness data', clearly scoped to date range. Distinguishes from sibling tools like list_activities and list_workouts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context (list wellness data within date range) but does not explicitly mention when to use vs alternatives. No exclusions or when-not examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workoutsA
List all workouts in the athlete's library.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only says 'list all workouts,' which implies a read operation, but does not mention pagination, limits, or other behavior. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with action and scope. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is mostly complete. It identifies the resource and scope. Could mention ordering or output format, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds clarity by specifying 'all workouts' and 'athlete's library,' which is useful context. Baseline 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'workouts' in the athlete's library, distinguishing it from siblings like list_activities and list_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as create_workout or list_activities. The description implies usage for listing workouts but does not specify exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_eventC
Update a future event on the calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Event ID | |
| start_date_local | No | ||
| name | No | ||
| description | No | Description/Notes. If category=WORKOUT, this MUST follow Intervals.icu builder syntax. For repeating steps (e.g. 5x), insert an empty line before and after the block (e.g. '\n\n5x\n- 3m Z5\n- 3m Z1\n\n'). Otherwise, it is free text. | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It only states 'update' but omits mutational effects, authentication requirements, error handling for past events, or whether partial updates are allowed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Could be more informative without sacrificing conciseness, but it is appropriately short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no annotations, the description is grossly insufficient. Lacks details on return values, side effects, constraints (e.g., event must exist and be in future), and usage with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 40% (2 of 5 params have descriptions). The description adds meaning only for the 'description' parameter (builder syntax). For other params like id, name, start_date_local, category, no additional context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Update a future event on the calendar' clearly states the action and resource, and distinguishes from siblings like create_event and delete_future_event by specifying 'update' and 'future'. However, it does not elaborate on what fields can be updated or the scope of update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as create_event or delete_future_event. No prerequisites or constraints mentioned, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v1.0.11- First observed
create_event - First observed
create_workout - First observed
delete_future_event - First observed
get_activity - First observed
get_athlete_profile - First observed
list_activities - First observed
list_events - First observed
list_wellness - First observed
list_workouts - First observed
update_event
TDQS
Each tool targets a distinct resource and action (create, read, list, update, delete) with clear boundaries. No overlap; get vs list are well-differentiated.
All tools follow a consistent verb_noun pattern (e.g., create_event, list_activities) using lowercase snake_case with no mixing of conventions.
10 tools is within the ideal range for a domain-specific server, covering key operations on activities, events, workouts, wellness, and athlete profile without unnecessary bloat.
Covers CRUD for events and read for most resources, but missing update/delete for workouts and update/delete for activities. Minor gaps that agents can work around.
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 Connectors
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
- freddyOAuthcoach.freddy
Connect your wearables, rings and training apps, then ask your AI about your own health data.
- SomviaOAuthapp.somvia
Private Apple Health metrics and workout detail for ChatGPT, Claude, and any MCP client.
Related MCP Servers
- AlicenseAqualityCmaintenanceConnects Claude with the Intervals.icu API to retrieve fitness data including activities, workouts, wellness metrics, and training events.10341GPL 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-
- FlicenseAqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityAmaintenanceEnables Claude AI to access and manage intervals.icu training data, including workouts, wellness, and fitness trends, through natural language conversation.MIT
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/moxus/intervals-icu-mcp-ts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server