运动数据协议服务器

Intervals.icu MCP服务器是一个连接Claude和ChatGPT与Intervals.icu API的模型上下文协议服务器,提供认证和运动数据检索工具。

  • by mvilanova
  • Python
  • 本地部署
  • 384 星标
  • 更新于
在 GitHub 查看 mvilanova/intervals-mcp-server

使用说明

Intervals.icu MCP服务器

模型上下文协议(MCP)服务器,用于将Claude和ChatGPT与Intervals.icu API连接。它为活动、事件、健康数据、功率曲线和自定义项目提供了身份验证和数据检索工具。

如果您发现模型上下文协议(MCP)服务器很有用,请考虑捐款支持其持续开发。

需求

设置

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密钥

  1. 登录您的Intervals.icu帐户
  2. 前往“设置”>“API”
  3. 生成新的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因配置更改而失败,请执行以下步骤:

  1. 删除现有 Intervals.icu 进入 claude_desktop_config.json.
  2. 从重新配置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

  1. 从运行以下命令 intervals-mcp-server 配置Claude Desktop的目录:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env
  1. 如果您打开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:

  1. 查找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
    

    如果文件或文件夹不存在,请创建它。

  2. 将以下条目添加到 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 不会有任何效果——请确保您编辑了正确的文件。

  1. 重新启动克劳德桌面。

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传输与此服务器通信。

  1. 以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 如果你不直接暴露服务器。

  2. 在ChatGPT中,打开 设置→ 特性→ 定制MCP连接器 然后单击 添加.填写:

    • 名称: Intervals.icu
    • MCP服务器URL: https://<your-public-host>/sse
    • 认证:离开为 无身份验证 除非你保护了你的隧道。

    您可以重复使用相同的 ngrok http 8765 此处为隧道URL;只需确保它转发到您上面导出的主机/端口。

  3. 保存连接器并打开新聊天。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

精选

Glama.ai