使用说明
Intervals.icu MCP服务器
模型上下文协议(MCP)服务器,用于将Claude和ChatGPT与Intervals.icu API连接。它为活动、事件、健康数据、功率曲线和自定义项目提供了身份验证和数据检索工具。
如果您发现模型上下文协议(MCP)服务器很有用,请考虑捐款支持其持续开发。
需求
- Python 3.12或更高版本
- 模型上下文协议(MCP)Python SDK
- httpx
- python dotenv
设置
1.安装uv(推荐)
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
安装后,找到完整路径 uv --稍后配置Claude Desktop时需要它:
where.exe uv
# Example output: C:\Users\<USERNAME>\.local\bin\uv.exe
2.克隆此存储库
git clone https://github.com/mvilanova/intervals-mcp-server.git
cd intervals-mcp-server
3.创建并激活虚拟环境
# 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\activate
4.同步项目依赖关系
uv sync
5.设置环境变量
复制一份 .env.example 并命名 .env 通过运行以下命令:
macOS/Linux:
cp .env.example .env
Windows(PowerShell):
Copy-Item .env.example .env
然后编辑 .env 文件并设置Intervals.icu运动员id和API密钥:
API_KEY=your_intervals_api_key_here
ATHLETE_ID=your_athlete_id_here
获取Intervals.icu API密钥
- 登录您的Intervals.icu帐户
- 前往“设置”>“API”
- 生成新的API密钥
查找您的运动员ID
当您登录Intervals.icu时,您的运动员ID通常在URL中可见。它看起来像:
https://intervals.icu/athlete/i12345/...哪里i12345是你的运动员ID吗
更新
该项目正在积极开发中,定期添加新功能和修复程序。要了解最新信息,请执行以下步骤:
1.从中提取最新更改 main
⚠️ 在运行此命令之前,请确保没有未提交的更改。
macOS/Linux:
git checkout main && git pull
Windows(PowerShell):
git checkout main; git pull
2.更新Python依赖关系
激活虚拟环境并同步依赖关系:
macOS/Linux:
source .venv/bin/activate
uv sync
Windows(PowerShell):
.venv\Scripts\activate
uv sync
故障排除
如果Claude Desktop因配置更改而失败,请执行以下步骤:
- 删除现有
Intervals.icu进入claude_desktop_config.json. - 从重新配置Claude Desktop
intervals-mcp-server目录。
macOS/Linux:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env
窗户: 按照中的说明手动重新添加条目 Windows配置部分.
常见错误
spawn uv ENOENT --Claude Desktop找不到 uv 可执行。使用完整路径 uv 在 command 现场。跑 which uv (macOS/Linux)或 where.exe uv (Windows)获取它。
spawn /Users/... ENOENT 在Windows上 --配置文件包含macOS/Linux样式的路径。使用反斜杠将其替换为正确的Windows路径,如中所述 Windows配置部分 在......下面
Windows应用商店安装:配置更改未生效 --您可能正在编辑错误的配置文件。从Microsoft Store安装的Claude Desktop读取 AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json,不 AppData\Roaming\Claude\.
与Claude一起使用
1.配置克劳德桌面
要将此服务器与Claude Desktop一起使用,您需要将其添加到您的Claude Desktop配置中。
macOS/Linux
- 从运行以下命令
intervals-mcp-server配置Claude Desktop的目录:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env
- 如果您打开Claude Desktop App配置文件
claude_desktop_config.json,它应该看起来像这样:
{
"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"
}
}
}
}
哪里 /path/to/ 是通往 intervals-mcp-server 系统中的代码文件夹。
视窗
这 mcp install 由于环境或权限问题,命令在Windows上可能会失败。请手动配置Claude Desktop:
-
查找Claude Desktop配置文件。如果Claude Desktop是从以下位置安装的 微软商店,配置位于:
C:\Users\<USERNAME>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json如果通过标准安装程序安装,它可能位于:
C:\Users\<USERNAME>\AppData\Roaming\Claude\claude_desktop_config.json如果文件或文件夹不存在,请创建它。
-
将以下条目添加到
claude_desktop_config.json,将占位符替换为实际值:
{
"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"
}
}
}
}
- 使用双反睫毛(
\\)对于JSON中的所有Windows路径。 - 找到完整的路径
uv.exe,跑where.exe uv在PowerShell中。 - 要查找克隆存储库的完整路径,请运行
pwd从内部intervals-mcp-server文件夹。
Windows应用商店安装注意事项: 从Microsoft Store沙盒安装的Claude Desktop将其配置保存在
AppData\Local\Packages\....编辑AppData\Roaming\Claude\claude_desktop_config.json不会有任何效果——请确保您编辑了正确的文件。
- 重新启动克劳德桌面。
2.与Claude一起使用MCP服务器
服务器运行并配置Claude Desktop后,您可以使用以下工具询问有关您过去和未来活动、事件和健康数据的问题。
get_activities:检索活动列表get_activity_details:获取特定活动的详细信息get_activity_intervals:获取特定活动的详细间隔数据get_activity_streams:获取特定活动的原始数据流(功率、心率等)get_athlete_power_curves:获得选定持续时间和时间段的最佳功率输出曲线get_wellness_data:获取健康数据get_events:检索即将到来的活动(锻炼、比赛等)get_event_by_id:获取特定事件的详细信息add_or_update_event:创建或更新活动(锻炼、比赛、笔记等)delete_event:删除特定事件delete_events_by_date_range:删除日期范围内的事件get_custom_items:为运动员获取自定义项目(图表、自定义字段、区域等)get_custom_item_by_id:获取特定自定义项目的详细信息create_custom_item:为运动员创建新的自定义项目update_custom_item:更新现有自定义项delete_custom_item:删除自定义项
使用ChatGPT
ChatGPT的beta MCP连接器也可以通过SSE传输与此服务器通信。
-
以SSE模式启动服务器,使其暴露
/sse和/messages/端点:export FASTMCP_HOST=127.0.0.1 FASTMCP_PORT=8765 MCP_TRANSPORT=sse FASTMCP_LOG_LEVEL=INFO python src/intervals_mcp_server/server.py启动日志打印完整的URL(例如
http://127.0.0.1:8765/sse).ChatGPT需要该公共URL,因此请使用以下工具转发端口ngrok http 8765如果你不直接暴露服务器。 -
在ChatGPT中,打开 设置→ 特性→ 定制MCP连接器 然后单击 添加.填写:
- 名称:
Intervals.icu - MCP服务器URL:
https://<your-public-host>/sse - 认证:离开为 无身份验证 除非你保护了你的隧道。
您可以重复使用相同的
ngrok http 8765此处为隧道URL;只需确保它转发到您上面导出的主机/端口。 - 名称:
-
保存连接器并打开新聊天。ChatGPT将保持SSE连接打开,并向
/messages/服务器宣布的端点。如果重新启动MCP服务器或隧道,请重新运行SSE命令,并在连接器URL发生更改时进行更新。
开发和测试
安装开发依赖项,并使用以下命令运行测试套件:
uv sync --all-extras
pytest -v tests
在本地运行服务器
要手动启动服务器(在开发或测试时很有用),请运行:
mcp run src/intervals_mcp_server/server.py
启用调试日志记录
要捕获服务器日志以进行调试,请将命令封装在shell中,并将stderr重定向到文件。
macOS/Linux --修改您的 claude_desktop_config.json 这样地:
{
"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"
}
}
}
}
然后跟踪日志文件以实时查看输出:
tail -f /path/to/intervals-mcp-server/mcp-server.log
视窗 --修改您的 claude_desktop_config.json 这样地:
{
"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"
}
}
}
}
然后使用PowerShell实时监视日志文件:
Get-Content C:\path\to\intervals-mcp-server\mcp-server.log -Wait
许可证
GNU通用公共许可证v3.0