Mcp Strava

Mcp Strava

🚀 MCP Strava Server

MCP Strava Server 是一个小型的 Python MCP 服务器,它可以让 Claude Desktop 读取你的 Strava 活动数据。你可以提出类似“显示我最近 10 次跑步的距离和平均配速”这样的问题。

🚀 快速开始

环境准备

  • 操作系统:x64 架构的 Windows 10 或 11
  • Python 版本:3.10 或更高版本
  • 需安装 Claude Desktop

安装步骤

cd C:\Users\AtikantJain\mcp-strava
python -m venv .venv
. .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

配置流程

  1. 在 VS Code 中开始操作,使用 MCP 工具和基于环境的配置编写 server.py
  2. 在虚拟环境中安装依赖:mcp[cli]requestsanyio
  3. 进行 Strava 应用设置:授权回调域设为 localhost,网站设为 http://localhost
  4. 在 Claude Desktop 中添加服务器环境变量:STRAVA_CLIENT_IDSTRAVA_CLIENT_SECRETSTRAVA_REDIRECT_URISTRAVA_TOKEN_PATHSTRAVA_SCOPES
  5. Claude 通过虚拟环境的 Python 和参数 server.py 启动 MCP 服务器。

操作流程

  1. 在 Claude 中运行 oauth_login
  2. 服务器在 http://localhost:8723/callback 启动本地回调并打开浏览器。
  3. 你登录 Strava 并授权。
  4. Strava 携带代码重定向回来。
  5. 服务器使用 client_idclient_secretcode 发送 POST 请求 /oauth/token
  6. 若请求成功(200 OK),服务器将 access_tokenrefresh_tokenexpires_at 保存到 STRAVA_TOKEN_PATH
  7. 你在 Claude 中调用 list_activitiesget_activity
  8. 检查 access_token 是否即将过期:
    • 若过期,服务器使用 refresh_token 发送 POST 请求 /oauth/token 获取新的令牌。
    • 若未过期,服务器使用 Authorization: Bearer access_token 调用 Strava API。
  9. JSON 数据返回给 MCP 服务器,Claude 会给你返回一个摘要信息。

登录错误处理

若在登录过程中出现 401 或其他错误,根据错误类型进行以下处理:

  • client_secret 无效,在 Claude 环境中修正 STRAVA_CLIENT_SECRET 后再次运行 oauth_login
  • client_id 无效,修正 STRAVA_CLIENT_ID 后再次运行 oauth_login
  • redirect_uri 不匹配,确保 STRAVA_REDIRECT_URI = http://localhost:8723/callback 且仪表盘域为 localhost
  • code 无效或过期,再次运行 oauth_login 并及时授权。

✨ 主要特性

  • 工具丰富:提供 oauth_loginlist_activitiesget_activity 等工具。
  • 本地 OAuth 与自动令牌刷新:支持本地 OAuth 认证,并能自动刷新令牌。
  • 令牌本地存储:令牌保存到本地 JSON 文件,且不提交到版本控制。
  • 0 关注
  • 0 收藏,25 浏览
  • system 提出于 2025-10-03 20:18

相似服务问题

相关AI产品