Strava数据连接服务

Strava MCP服务器是一个连接Claude与Strava数据的服务,允许用户通过Claude Desktop或任何MCP兼容客户端查询活动、统计数据和运动员资料。

  • by bronteee
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bronteee/strava-mcp

使用说明

Strava MCP服务器

一个MCP(模型上下文协议)服务器,将Claude连接到您的Strava数据。直接从Claude Desktop或任何兼容MCP的客户端查询您的活动、统计数据和运动员资料。

特性

  • OAuth身份验证:通过自动令牌刷新进行安全身份验证
  • 活动数据:获取最近的活动、详细的活动信息、统计数据和更新说明
  • 运动员简介:访问您的Strava个人资料和统计数据
  • 路段和路线:按位置探索跑步路段,查看路线详细信息
  • 俱乐部和社区:浏览您的俱乐部、会员和俱乐部活动
  • 社交:查看荣誉、评论、KOM和星级片段

安装

先决条件

  1. Python 3.10+ 安装
  2. Strava API应用程序:创建一个https://www.strava.com/settings/api
    • 将“授权回调域”设置为 127.0.0.1

从GitHub安装

pip install git+https://github.com/bronteee/strava-mcp.git

或者使用紫外线:

uv pip install git+https://github.com/bronteee/strava-mcp.git

配置Claude桌面

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "strava": {
      "command": "strava-mcp",
      "env": {
        "STRAVA_CLIENT_ID": "your_client_id",
        "STRAVA_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

如果安装了紫外线,请使用:

{
  "mcpServers": {
    "strava": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/bronteee/strava-mcp.git", "strava-mcp"],
      "env": {
        "STRAVA_CLIENT_ID": "your_client_id",
        "STRAVA_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

用法

认证

  1. 问克劳德:“连接到我的Strava帐户”
  2. Claude将提供一个授权URL
  3. 在浏览器中打开URL并授权应用程序
  4. 您已连接到当前会话

备注:令牌仅存储在内存中。每次Claude Desktop重新启动时,您都需要重新进行身份验证。

可用工具

认证

工具 说明
get_auth_status 检查您是否经过身份验证
get_auth_url 获取Strava授权URL
authenticate 令牌的交换身份验证码(通常是自动的)
logout 删除存储的令牌

活动与运动员

工具 说明
get_activities 使用可选日期筛选器获取最近的活动
get_activity_details 获取特定活动的详细信息
update_activity_notes 更新活动的注释/描述
get_athlete 获取您的运动员资料
get_athlete_stats 获取您的跑步/骑自行车/游泳统计数据

路段和路线

工具 说明
geocode_location 将位置名称转换为坐标以进行分段搜索
explore_running_segments 查找某个区域中的跑步路段
get_segment 使用折线获取详细的线段信息
get_my_routes 列出您创建的路线
get_route 通过嵌入的路段获取详细的路线信息

俱乐部和社区

工具 说明
get_my_clubs 列出你所加入的俱乐部
get_club 获取俱乐部详细信息
get_club_members 列出俱乐部成员
get_club_activities 获取俱乐部成员最近的活动

社交与参与

工具 说明
get_activity_kudos 看看谁对某项活动表示赞扬
get_activity_comments 获取活动评论
get_my_koms 获取您的KOMs(山之王/女王)
get_starred_segments 获取您的星级片段

示例提示

  • “向我展示我最近的5个Strava活动”
  • “我今年的跑步数据是什么?”
  • “获取我最近骑行的详细信息”
  • “更新我上次活动的笔记,说‘早上跑得真棒!’”
  • “上个月我跑了多少英里?”
  • “查找中央公园附近的跑步路段”
  • “我加入了哪些俱乐部?”
  • “让我看看上次跑步时谁给了我荣誉”
  • “我的KOM是什么?”

发展

设置

git clone https://github.com/bronteee/strava-mcp.git
cd strava-mcp
uv sync --dev

运行测试

uv run pytest

类型检查

uv run ty check src

手动运行服务器

# Set environment variables
export STRAVA_CLIENT_ID=your_client_id
export STRAVA_CLIENT_SECRET=your_client_secret

# Run the server
strava-mcp

安全

  • 令牌仅存储在内存中,并在服务器停止时清除
  • 客户端凭据通过环境变量传递,从不存储在文件中
  • OAuth流使用localhost回调-不涉及外部服务器

许可证

麻省理工学院