mcpField
S
Strava Mcp Unofficial

Strava Mcp Unofficial

本地服务
wellness.delx.ai健康医疗33 周前更新

关于 Strava Mcp Unofficial

Strava Mcp Unofficial 是面向 MCP 客户端的本地优先 Strava 数据服务,供关注训练和耐力表现的用户查询活动与训练背景。它提供多种隐私模式,默认隐藏 GPS,并在本机保存令牌和 SQLite 缓存。

主要功能

  1. 01查询活动、分段与路线
  2. 02读取心率、功率等活动流
  3. 03生成每日与每周训练摘要
  4. 04默认隐藏 GPS 信息
  5. 05本地 OAuth 与 SQLite 缓存

适用场景

  1. 01回顾近期活动和每周训练负荷
  2. 02查看活动的心率、功率或踏频数据
  3. 03在明确授权后检查 GPS 轨迹
  4. 04连接 AI Agent 前验证 Strava 设置

MCP 相关

通过 MCP 向兼容客户端提供 Strava 活动、运动数据流、运动员资料、分段和路线等工具、提示词与资源。默认使用 stdio,也支持仅监听回环地址的 Streamable HTTP。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"strava-mcp-davidmosiah": {
"command": "npx",
"args": [
"-y",
"strava-mcp-unofficial"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_REDIRECT_URI": "<STRAVA_REDIRECT_URI>",
"STRAVA_TOKEN_PATH": "<STRAVA_TOKEN_PATH>",
"STRAVA_PRIVACY_MODE": "<STRAVA_PRIVACY_MODE>",
"STRAVA_CACHE": "<STRAVA_CACHE>",
"STRAVA_CACHE_PATH": "<STRAVA_CACHE_PATH>",
"STRAVA_NO_CACHE": "<STRAVA_NO_CACHE>"
}
}
}
}
启动命令npx -y strava-mcp-unofficial
需要配置的环境变量
STRAVA_CLIENT_IDStrava OAuth client ID. Optional when configured with strava-mcp-server setup.
STRAVA_CLIENT_SECRET密钥Strava OAuth client secret. Prefer strava-mcp-server setup so this secret is stored in ~/.strava-mcp/config.json instead of MCP client config.
STRAVA_REDIRECT_URIRedirect URI configured in the Strava Developer Dashboard. Optional when configured with strava-mcp-server setup.
STRAVA_TOKEN_PATH密钥Optional local path for OAuth tokens. Defaults to ~/.strava-mcp/tokens.json.
STRAVA_PRIVACY_MODEOptional payload mode: summary, structured, or raw. Defaults to structured. raw means full Strava API payloads, not continuous 24/7 raw sensor telemetry.
STRAVA_CACHEOptional SQLite cache toggle. Set to true or sqlite to enable.
STRAVA_CACHE_PATHOptional local SQLite cache path. Defaults to ~/.strava-mcp/cache.sqlite.
STRAVA_NO_CACHESet to true to bypass the in-memory HTTP response cache (60s TTL for GET only). POST/PUT/DELETE and 4xx/5xx responses are never cached regardless.

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

安装包
npmstrava-mcp-unofficial0.4.6

工具

29

收录的工具列表 · 更新于 3 周前

参数类型必填说明
response_formatenum否markdown | json

详细介绍

Strava MCP

Strava MCP — 面向 AI Agent 的 Strava MCP
让你的 AI Agent 在本地访问 Strava 活动、数据流、路段和路线 —。
本地优先的 MCP 服务 — 令牌永远不会离开你的设备。

npm 版本 npm 下载量 MIT 许可证 网站

GitHub 星标数 专为 MCP 打造 Hermes 一键配置 Strava

⚡ 使用 Delx Wellness for Hermes 一键安装: npx -y delx-wellness-hermes setup — 在专用的 Hermes 配置中预先配置此连接器及其他 8 个连接器。

或者将其独立接入 Claude Desktop / Cursor / ChatGPT Desktop — 请参阅下方的安装部分。


HTTP(v2 无状态)

默认使用 stdio。可选 Streamable HTTP — 无会话 ID,返回 JSON 响应,仅限环回连接:

npx -y strava-mcp-unofficial --http
# GET  http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp   (sessionless)

环境变量:STRAVA_MCP_HOST、STRAVA_MCP_PORT、STRAVA_MCP_TRANSPORT=http。

本地优先的 MCP 服务,可将 AI Agent 连接到你的 Strava 活动、路线、数据流和训练背景信息。

非官方项目。 与 Strava, Inc. 无关联,也未获其认可或支持。Strava 是其各自所有者的商标。请仅将此项目用于你自己的 Strava 账户,并遵守 Strava 的 API 协议。

由 David Mosiah 为使用 Claude、Cursor、Hermes、OpenClaw 或其他兼容 MCP 的 Agent 来思考训练、耐力和表现的人打造——无需从 Strava 复制粘贴数据。

这是 Delx Wellness 的一部分;Delx Wellness 是本地优先的健康类 MCP 连接器目录。

如果此连接器对你的 Agent 工作流有所帮助,请为此仓库点个星。星标能让其他 AI 开发者更容易发现这个项目,也能帮助 Delx 持续推出本地优先的健康基础设施。

为什么需要它

Strava 留存着你训练的长期记录——每一次骑行、跑步、游泳、路段、路线和数据流。但这些数据藏在 OAuth API 后面,且有严格的速率限制(每个应用每 15 分钟 200 次请求、每天 2,000 次),GPS 数据默认具有隐私敏感性。

这个软件包会在本地完成 OAuth 授权流程,在 Strava 的每个应用速率限制下控制请求频率,除非你明确选择启用,否则会隐藏 GPS 纬度和经度,并通过模型上下文协议提供 Strava 数据。任何兼容 MCP 的 Agent 只需一段配置,就能获取你的训练上下文。令牌绝不会离开你的设备。

快速开始

大约一分钟,就能从零开始发出第一次 Agent 调用。你只需要一个 Strava 应用(在此创建),并将重定向 URI 设为 http://127.0.0.1:3000/callback。

1. 输入应用的客户端 ID 和密钥(交互式操作,保存到 ~/.strava-mcp/config.json,权限为 0600):

npx -y strava-mcp-unofficial setup

2. 授权 Strava。 auth 会打开浏览器;--no-open 会打印 URL,方便你自行粘贴(适用于无头设备)。令牌会保存在本地——命令绝不会打印令牌:

$ npx -y strava-mcp-unofficial auth --no-open
Strava MCP · Authorization

Open this URL manually:
  https://www.strava.com/oauth/authorize?client_id=12345&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fcallback&response_type=code&approval_prompt=auto&scope=read%2Cactivity%3Aread_all%2Cprofile%3Aread_all&state=aa38f29b

Steps
  1. Approve access in the browser tab that opens.
  2. Strava will redirect to the local callback.
  3. Tokens are saved locally; this command never prints them.

Waiting for callback...

3. 确认已准备就绪——doctor 会确认权限范围和配置,但不会调用 Strava:

$ npx -y strava-mcp-unofficial doctor
Strava MCP · Doctor
Status: READY ✓

Checks
  ✓  Node.js >=20
  ✓  Env vars
  ✓  Local config
  ✓  Automatic auth redirect
  ✓  Token file
  ✓  Token permissions
  ✓  Refresh token
  ✓  OAuth scopes
  ·  Privacy mode
  ·  Cache

Next steps
  1. Ready. Add this MCP server to your agent and start with strava_daily_summary.

如果 OAuth scopes 显示 ✗,请重新运行 auth,并批准 activity:read_all profile:read_all read。

4. 首次调用——无需真实账户。 请 Agent 运行 strava_demo。它会返回逼真的模拟数据(标记为 is_demo: true),这样你就能在连接真实数据前配置好提示词:

> Call strava_demo and summarize my week.

# Strava Demo

- **is_demo**: true
- **recent_sessions**: 3
- **load_classification**: moderate
- **primary_signal**: Recent Strava load is manageable; use intent and consistency as the main lever.
- **recommended_handoff**: exercise_catalog_recommend_session

使用 response_format: "json" 调用,即可获取完整的数据结构。sample 块中的字段与 strava_daily_summary、strava_training_context 和 strava_list_activities 一一对应——npm run test:demo-contract 会使用 fixtures/strava-activities.mjs 运行实际构建器;如果模拟数据虚构或遗漏字段,构建就会失败。将 strava_demo 换成真实工具,就会以相同的数据结构填入你的 Strava 数据。

5. 将其接入 MCP 客户端:

{
  "mcpServers": {
    "strava": {
      "command": "npx",
      "args": ["-y", "strava-mcp-unofficial"]
    }
  }
}

对于 Claude Desktop,运行 setup --client claude,即可自动生成配置片段。Hermes 的配置方法请参阅下文的 Hermes / 远程配置。

与 Agent 一起试用

可以先问这三个问题:

Use strava_connection_status to check setup, then run strava_daily_summary.
Tell me what my training context looks like in 5 lines.
Call strava_weekly_summary with response_format=json. Find my biggest
load/intensity bottleneck and give me a next-week endurance plan.
Use the strava_activity_stream_investigator prompt for activity_id=<id>.
Don't expose GPS unless I explicitly ask for it.

数据可用性

此软件包使用官方 Strava API v3。本 README 中的 raw 指受支持端点返回的 Strava 上游 JSON 数据,而非连续的设备遥测数据。

数据可用性备注
活动(跑步、骑行、游泳、步行、训练)✓所有记录的活动
活动详情 + 区间 + 分段✓心率、功率、踏频、海拔、装备
活动数据流(心率 / 踏频 / 瓦特 / 海拔)✓活动期间每秒采样数据
GPS 纬度/经度数据流需启用默认隐藏;需要 include_gps=true 或 raw 模式
运动员资料 + 区间 + 汇总统计✓已认证的运动员
路线 + 俱乐部 + 装备✓在摘要/结构化模式下会隐藏路线几何数据
实时设备遥测数据 / 连续心率—Strava 的公共 API 不提供

工具

从这些工具开始:

  • strava_connection_status — 在调用 Strava 前验证本地设置、权限范围和就绪状态
  • strava_data_inventory — 列出支持的数据领域、权限范围、隐私模式和建议的首次调用,不调用 Strava API。
  • strava_daily_summary — 今日最新活动、每周负荷和强度背景
  • strava_weekly_summary — 评分卡、与上周的比较及下周训练计划

身份验证与诊断

  • strava_capabilities、strava_agent_manifest、strava_privacy_audit、strava_cache_status
  • strava_get_auth_url、strava_exchange_code、strava_revoke_access

运动员与训练

  • strava_get_athlete、strava_get_zones、strava_get_athlete_stats

活动与数据流

  • strava_list_activities、strava_get_activity、strava_get_activity_zones
  • strava_activity_series、strava_get_activity_streams — GPS 经纬度需要设置 include_gps=true 或使用 raw 模式

路线与背景信息

  • strava_list_routes、strava_get_route、strava_list_clubs、strava_get_gear

提示词

  • strava_daily_training_director — 实用的每日训练简报
  • strava_weekly_endurance_review — 每周比较及下周耐力训练计划
  • strava_activity_stream_investigator — 使用数据流调查一项活动(支持 GPS)

每项提示词都接受 timezone(IANA,默认值为 UTC)。

资源

  • strava://capabilities、strava://agent-manifest
  • strava://athlete
  • strava://latest/activity
  • strava://summary/daily、strava://summary/weekly

隐私与安全

  • OAuth 令牌存储在 ~/.strava-mcp/tokens.json 中,权限为 0600,工具绝不会返回令牌。
  • 默认不请求写入/上传权限范围——按设计仅支持读取。
  • 在 summary 和 structured 模式下,会递归移除 GPS 经纬度和路线几何数据;只有在数据流调用中明确设置 include_gps=true 或使用 raw 模式时才会包含这些数据。
  • 除此之外,结构化模式会保留完整的上游生理记录和 Strava 未来新增的字段。
  • 将带时区的 ISO 日期时间转换为 Strava epoch 秒时,活动的 after / before 筛选条件会保留时间点语义;无效范围会在发送 HTTP 请求前报错。
  • 除非明确请求使用 raw 模式,否则也会对路线几何数据进行脱敏。
  • MCP 客户端无法看到访问令牌或刷新令牌。
  • 这不是医疗建议。该服务提供用户授权的数据,用于个人 AI 工作流,而非诊断或训练处方。

配置

setup 会将其中大多数配置写入 ~/.strava-mcp/config.json(0600)。支持手动通过环境变量覆盖:

STRAVA_CLIENT_ID=…
STRAVA_CLIENT_SECRET=…
STRAVA_REDIRECT_URI=http://127.0.0.1:3000/callback

# Optional
STRAVA_SCOPES="read activity:read_all profile:read_all"
STRAVA_PRIVACY_MODE=structured        # summary | structured | raw
STRAVA_CACHE=sqlite                   # optional read-through cache

Hermes / 远程设置

npx -y strava-mcp-unofficial setup --client hermes --no-auth
npx -y strava-mcp-unofficial auth                       # run locally if browser auth is needed
npx -y strava-mcp-unofficial doctor --client hermes
hermes mcp test strava

Hermes 通常会为 Strava 工具添加前缀:

  • mcp_strava_strava_agent_manifest
  • mcp_strava_strava_connection_status
  • mcp_strava_strava_daily_summary
  • mcp_strava_strava_weekly_summary
  • mcp_strava_strava_get_activity_streams

更改 Hermes 配置后,使用 /reload-mcp 或 hermes mcp test strava。常规数据访问无需重启网关。

如果浏览器 OAuth 必须在与 Hermes 不同的机器上进行,请在本地运行 auth,然后将 ~/.strava-mcp/tokens.json 复制到服务器,并执行 chmod 600。若要访问活动历史和数据流,令牌必须包含 activity:read_all profile:read_all read。

要求

  • Node.js 20+
  • 一个重定向 URI 为 http://127.0.0.1:3000/callback 的 Strava 应用

选择这些权限范围的原因:

  • read — 公开个人资料、路线和 Strava 公开资源
  • activity:read_all — 你的活动,包括应用可见的私密活动
  • profile:read_all — 更完整的已验证运动员个人资料字段

默认不请求任何写入权限范围。

开发

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

使用 MCP Inspector 进行测试:

npx @modelcontextprotocol/inspector node dist/index.js

链接

另请参阅

完整的 Delx Wellness 连接器库:

提供商软件包仓库
WHOOPwhoop-mcp-unofficialwhoop-mcp
Ouraoura-mcp-unofficialouramcp
Garmingarmin-mcp-unofficialgarminmcp
Stravastrava-mcp-unofficialstrava-mcp
Fitbitfitbit-mcp-unofficialfitbitmcp
Withingswithings-mcp-unofficialwithingsmcp
Apple Healthapple-health-mcp-unofficialapple-health-mcp
Polarpolar-mcp-unofficialpolarmcp
Nourish(营养)wellness-nourishwellness-nourish

Hermes 一键设置 — 预配置上述所有连接器,以及健康技能和入门引导:delx-wellness-hermes。

📧 联系与支持

许可证

MIT — 详见 LICENSE。

免责声明

本软件按原样提供。它不是医疗器械,不提供医疗建议,也不应用于诊断、治疗或训练方案制定。如有医疗或训练方面的疑虑,请务必咨询合格的专业人士。

Skill 或 MCP

同一个软件包,两种使用方式。MCP 通过 stdio/HTTP 注册工具。Skill 可在客户端不支持 MCP 时,通过 CLI 调用相同的工具:

npx -y strava-mcp-unofficial call strava_connection_status --json '{}'

将 skill/SKILL.md 复制到你的 Agent 技能目录。

评论

支持 Markdown

第一次接触 MCP?

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

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