mcpField
S
strava-mcp

strava-mcp

本地服务
github.com/r-huijts健康医疗50320 周前更新

关于 strava-mcp

strava-mcp 是一个用于访问 Strava API 的 MCP 服务,让 LLM 能够读取用户的 Strava 数据。适合希望在 AI 客户端中查询运动记录的 Strava 用户。

主要功能

  1. 01访问 Strava 活动与运动数据
  2. 02通过 OAuth 连接用户账户
  3. 03支持路段、路线与俱乐部相关查询
  4. 04提供 GPX 与 TCX 路线导出

适用场景

  1. 01用自然语言查询近期训练记录
  2. 02查看单次活动的圈速与心率数据
  3. 03导出路线到 GPS 设备

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 Strava 的活动、路段、路线等相关工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"r-huijts-strava": {
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>"
}
}
}
}
启动命令npx -y strava-mcp-server
需要配置的环境变量
STRAVA_CLIENT_IDYour Strava API client ID
STRAVA_CLIENT_SECRET密钥Your Strava API client secret
STRAVA_ACCESS_TOKEN密钥Your Strava API access token

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmstrava-mcp-server1.0.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Strava MCP 服务

通过 AI 与你的 Strava 数据对话。

将 Claude 连接到你的 Strava 账号,并用日常语言提问:“我这个月跑了多远?”,“分析我最近一次骑行”,或“显示我速度最快的路段。”

MseeP.ai 安全评估徽章

Strava Server MCP 服务

你可以用它做什么?

连接后,只需像和一位能够访问你所有 Strava 数据的朋友聊天一样与 Claude 对话:

🏃 跟踪进度

“我这个月跑了多少公里?”

“比较我从 1 月到 12 月的跑步数据”

“我有史以来最长的一次骑行是什么?”

📊 分析训练

“详细分析我最近一次骑行训练——显示功率、心率和踏频”

“我昨天跑步时的心率区间怎么样?”

“我间歇训练每一圈的平均配速是多少?”

🗺️ 探索路线和路段

“中央公园附近最受欢迎的骑行路段有哪些?”

“显示我收藏的路段”

“将我的周日早晨路线导出为 GPX 文件”

🏆 获取训练建议

“分析我本周的训练负荷”

“我目前的体能状况与上个月相比如何?”

“总结我今年的骑行表现”


快速开始(3 步)

第 1 步:添加到 Claude Desktop

打开你的 Claude Desktop 配置文件:

  • Mac:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

将以下内容添加到文件中:

{
  "mcpServers": {
    "strava": {
      "command": "npx",
      "args": ["-y", "@r-huijts/strava-mcp-server"]
    }
  }
}
第 1 步(替代方案):添加到 Claude Code

你可以使用以下命令将此 MCP 服务添加到 Claude Code:

claude mcp add --transport stdio strava -- npx @r-huijts/strava-mcp-server

你可以按如下方式确认安装成功:

% claude mcp list
Checking MCP server health...

strava: npx @r-huijts/strava-mcp-server - ✓ Connected
第 2 步:重启 Claude Desktop

关闭并重新打开 Claude Desktop,以加载新配置。

第 3 步:连接你的 Strava

只需对 Claude 说:

“连接我的 Strava 账号”

浏览器窗口将会打开。输入你的 Strava API 凭据,授权此应用,即可完成!

就是这么简单! 开始询问你的活动情况吧。


连接你的 Strava 账号

首次设置

当你说“连接我的 Strava 账号”时,会发生以下情况:

  1. 浏览器窗口打开,显示设置页面
  2. 输入你的 Strava API 凭据(Client ID 和 Client Secret)
  3. 点击“Continue to Strava”——你将被重定向到 Strava
  4. 在 Strava 网站上授权此应用
  5. 看到成功消息——你可以关闭浏览器
  6. 完成! Claude 会确认你已连接

你的凭据会保存在本地的 ~/.config/strava-mcp/config.json 中,并在不同会话间保留。

获取 Strava API 凭据

你需要创建一个免费的 Strava API 应用(只需设置一次):

  1. 前往 strava.com/settings/api
  2. 点击“Create an App”(或查看你现有的应用)
  3. 填写表单:
    • 应用名称:任意填写(例如,“My Claude Assistant”)
    • 类别:任选
    • 网站:可填写任意内容(例如,http://localhost)
    • 授权回调域名:必须是 localhost
  4. 复制你的 Client ID 和 Client Secret

就是这么简单!你只需要设置一次。

管理连接
  • 检查状态:“我已连接到 Strava 吗?”
  • 重新连接:“连接我的 Strava 账号”(使用 force: true 重新连接)
  • 断开连接:“断开我的 Strava 账号连接”

安装选项

选项 A:直接使用(推荐)

无需安装!快速开始中的 npx 命令会自动下载并运行最新版本。

选项 B:全局安装

如果你更喜欢只安装一次:

npm install -g @r-huijts/strava-mcp-server

然后更新 Claude 配置以使用:

{
  "mcpServers": {
    "strava": {
      "command": "strava-mcp-server"
    }
  }
}

注意: 虽然包名是 @r-huijts/strava-mcp-server,但为保持向后兼容,可执行文件名称仍为 strava-mcp-server。

选项 C:从源代码构建

适合希望修改代码的开发者:

git clone https://github.com/r-huijts/strava-mcp.git
cd strava-mcp
npm install
npm run build

然后将 Claude 指向你的本地构建:

{
  "mcpServers": {
    "strava": {
      "command": "node",
      "args": ["/path/to/strava-mcp/dist/server.js"]
    }
  }
}

对话示例

早间签到

你:我这周做了哪些运动?

Claude:查看你本周的 Strava 活动,你完成了:

  • 周一:5.2km 跑步(28:15)
  • 周三:45km 骑行(1:32:00)
  • 周六:10km 跑步(52:30)

总计:3 项活动,共 60.2km。坚持得不错!

训练分析

你:详细分析我最近一次骑行训练

Claude:以下是你昨天「晚间环线」骑行的详细分析:

概览

  • 距离:42.3 km
  • 时间:1:28:45
  • 平均速度:28.6 km/h

功率分析

  • 平均功率:185W
  • 标准化功率:198W
  • 最大功率:520W

心率

  • 平均:142 bpm
  • 最大:175 bpm
  • 4 区及以上时长:23 分钟

你的功率与心率比值表明有不错的有氧效率……

查找新路线

你:帮我找一些科罗拉多州博尔德附近有挑战性的骑行爬坡路线

Claude:以下是博尔德附近热门的爬坡路段:

  1. Flagstaff Road - 5.2km,平均坡度 6.8%
  2. Sunshine Canyon - 3.8km,平均坡度 7.2%
  3. Left Hand Canyon - 8.1km,平均坡度 4.5%

需要我把其中哪些标为星标,方便你以后查找吗?


可用工具

账户与个人资料
你可以询问什么功能
“连接我的 Strava 账户”将你的 Strava 账户连接到 Claude
“检查我的 Strava 连接”显示连接状态
“断开我的 Strava 账户”解除 Strava 连接并清除已存储的令牌
“获取我的 Strava 个人资料”显示你的个人资料信息
“我有哪些鞋子?”列出你的鞋子及其使用距离
“我的训练区间是什么?”显示心率和功率区间
活动
你可以询问什么功能
“显示我最近的活动”列出你最近的训练
“获取我一月份的所有跑步记录”按筛选条件获取活动
“分析活动 12345”查看某项活动的详细信息
“显示我上次跑步的分段记录”逐圈分析
“获取我这次骑行的心率数据”训练时间序列数据(优化的紧凑格式)
“显示我徒步的照片”活动照片
统计与进度
你可以询问什么功能
“我的跑步数据统计是什么?”年初至今及历史总计
“我今年骑行了多远?”按活动类型统计总量
“我最长的一次骑行有多远?”个人纪录
路段
你可以询问什么功能
“显示我标为星标的路段”你收藏的路段
“查找 [location] 附近的路段”查找热门路段
“获取路段 12345 的详细信息”路段信息和排行榜
“将此路段标为星标”保存到收藏夹
“显示我在 [segment] 上的成绩”你在某个路段上的尝试记录
路线
你可以询问什么功能
“列出我保存的路线”你创建的路线
“获取我的 [route name] 的详细信息”路线信息
“将 [route] 导出为 GPX”下载到 GPS 设备使用
“将 [route] 导出为 TCX”下载到 GPS 设备使用
俱乐部
你可以询问什么功能
“我加入了哪些俱乐部?”列出你的 Strava 俱乐部
训练
你可以询问什么功能
“将这个训练转换为 Zwift 文件”将训练计划整理为结构化文件(目前支持 Zwift .zwo)
服务
你可以询问的内容功能
“Strava 服务的版本是什么?”显示 MCP 服务版本和元数据

故障排除

“连接我的 Strava 账户”没有打开浏览器
  • 确保 Claude Desktop 正在运行 MCP 服务(检查 Claude 中是否有错误)
  • 尝试重启 Claude Desktop
  • 检查端口 8111 是否被防火墙阻止
“身份验证失败”或“令牌无效”
  • 你的令牌可能已过期——说“连接我的 Strava 账户”以重新连接
  • 确保你的 Strava API 应用仍在 strava.com/settings/api 上处于活动状态
“缺少凭据”错误
  • 你需要完成 OAuth 流程——说“连接我的 Strava 账户”
  • 如果你使用环境变量,请确保 4 个变量都已设置(参见“开发者”部分)
Claude 看不到 Strava 工具
  • 确保你的 claude_desktop_config.json 是有效的 JSON(末尾不能有逗号!)
  • 修改配置后重启 Claude Desktop
  • 检查 Claude 的开发者控制台中是否有错误消息
更改包名后出现 JSONRPC.ProtocolTransportError

如果更新到 @r-huijts/strava-mcp-server 后出现 JSONRPC 错误:

  1. 清除 npx 缓存:在终端中运行 rm -rf ~/.npm/_npx
  2. 验证配置是否使用 @r-huijts/strava-mcp-server(而不是旧的 strava-mcp-server)
  3. 彻底重启 Claude Desktop(退出并重新打开)
  4. 手动测试:运行 npx -y @r-huijts/strava-mcp-server——你应该会看到“Starting Strava MCP Server v1.2.1...”

开发者

点击展开技术详情
环境变量

你可以设置环境变量,而不是使用基于浏览器的身份验证:

变量描述
STRAVA_CLIENT_ID你的 Strava 应用客户端 ID
STRAVA_CLIENT_SECRET你的 Strava 应用客户端密钥
STRAVA_ACCESS_TOKENOAuth 访问令牌
STRAVA_REFRESH_TOKENOAuth 刷新令牌
ROUTE_EXPORT_PATHGPX/TCX 导出的目录
令牌刷新

服务会自动刷新过期的令牌。新令牌会同时保存到 process.env 和 ~/.config/strava-mcp/config.json。

配置优先级
  1. 环境变量(优先级最高)
  2. ~/.config/strava-mcp/config.json
  3. 本地 .env 文件
构建与测试
npm install
npm run build
npm test
活动数据流优化

get-activity-streams 工具默认使用紧凑格式,在保留全部数据的同时将负载大小减少约 70-80%:

  • 紧凑格式(默认):包含元数据的原始数组,体积缩小约 70-80%,适合大模型处理
  • 详细格式:带格式化值的易读对象(向后兼容)
  • 智能分块:大型活动会自动拆分为约 50KB 的数据块
  • 可选降采样:可缩减超大型数据集,同时保留关键特征

紧凑格式包含全面的元数据(单位、描述、统计数据),便于大模型理解原始数值数据。

API 参考

该服务实现了 Model Context Protocol(MCP),并为 Strava API v3 提供 25 个工具。实现详情请参阅 src/tools/ 中的源代码。

贡献

欢迎贡献!请提交 Pull Request。


许可证

MIT 许可证——详情请参阅 LICENSE 文件。


有问题? 请在 GitHub 上提交 issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。