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 | shWindows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"安装后,找到完整路径 uv --稍后配置Claude Desktop时需要它:
where.exe uv
# Example output: C:\Users\\.local\bin\uv.exe2.克隆此存储库
git clone https://github.com/mvilanova/intervals-mcp-server.git
cd intervals-mcp-server3.创建并激活虚拟环境
# 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\activate4.同步项目依赖关系
uv sync5.设置环境变量
复制一份 .env.example 并命名它 .env 通过运行以下命令:
macOS/Linux:
cp .env.example .envWindows(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 pullWindows(PowerShell):
git checkout main; git pull2.更新Python依赖关系
激活虚拟环境并同步依赖关系:
macOS/Linux:
source .venv/bin/activate
uv syncWindows(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//.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": "",
"API_KEY": "",
"LOG_LEVEL": "INFO"
}
}
}
}哪里 /path/to/ 是通往 intervals-mcp-server 系统中的代码文件夹。
视窗
这 mcp install 由于环境或权限问题,命令在Windows上可能会失败。请手动配置Claude Desktop:
- 查找Claude Desktop配置文件。如果Claude Desktop是从以下位置安装的 微软商店,配置位于:
C:\Users\\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json如果通过标准安装程序安装,它可能位于:
C:\Users\\AppData\Roaming\Claude\claude_desktop_config.json如果文件或文件夹不存在,请创建它。
- 将以下条目添加到
claude_desktop_config.json,将占位符替换为实际值:
{
"mcpServers": {
"Intervals.icu": {
"command": "C:\\Users\\\\.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": "",
"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_wellness_data:获取健康数据get_events:检索即将到来的活动(锻炼、比赛等)get_event_by_id:获取特定事件的详细信息
使用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:///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//.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": "",
"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\\\\.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": "",
"API_KEY": "",
"LOG_LEVEL": "INFO"
}
}
}
}然后使用PowerShell实时监视日志文件:
Get-Content C:\path\to\intervals-mcp-server\mcp-server.log -Wait许可证
GNU通用公共许可证v3.0
