Strava Mcp Server

Strava Mcp Server

🚀 Strava MCP 服务器

一个基于 Model Context Protocol (MCP) 的服务器,它提供了对 Strava API 的访问能力,允许语言模型查询已认证运动员的活动数据。

Python 包 许可证: MIT Python 3.10

🚀 快速开始

本服务器可让语言模型轻松查询 Strava 中已认证运动员的活动数据。下面将详细介绍使用前的准备工作。

✨ 主要特性

该服务器提供了一系列工具,用于查询 Strava 中运动员的活动数据:

活动查询

  • get_activities(limit: int = 10):获取已认证运动员最近的活动。
  • get_activities_by_date_range(start_date: str, end_date: str, limit: int = 30):在特定日期范围内获取活动。日期需以 ISO 格式(YYYY-MM-DD)提供。
  • get_activity_by_id(activity_id: int):获取某个特定活动的详细信息。
  • get_recent_activities(days: int = 7, limit: int = 10):获取过去 X 天内的活动。

📦 安装指南

要使用此服务器,您需要通过 Strava API 进行身份验证,具体步骤如下:

  1. 创建 Strava API 应用
    • 前往 Strava API 设置
    • 创建一个应用以获取您的 Client ID 和 Client Secret。
    • 将授权回调域设置为 localhost
  2. 获取您的 refresh token
    • 使用随附的 get_strava_token.py 脚本:
python get_strava_token.py
- 按照提示输入您的 Strava 凭证以获取 refresh token。
  1. 设置环境变量
    • 将以下内容添加到 .env 文件或相应配置文件中:
STRAVA_REFRESH_TOKEN=your_refresh_token_here

📚 详细文档

活动数据格式

服务器返回的活动数据具有一致的字段名称和单位,具体如下:

字段 描述 单位
name 活动名称 -
sport_type 运动类型 -
start_date 开始日期和时间 ISO 8601
distance_metres 距离
elapsed_time_seconds 总计时
moving_time_seconds 移动时间
average_speed_mps 平均速度 米每秒
max_speed_mps 最大速度 米每秒
total_elevation_gain_metres 总海拔提升
elev_high_metres 最高海拔
elev_low_metres 最低海拔
calories 消耗的卡路里 kcal
start_latlng 起点坐标 [lat, lng]
end_latlng 终点坐标 [lat, lng]

配置 MCP 服务器

根据您使用的语言模型(Claude Desktop 或 Web),按照以下步骤进行配置:

Claude Desktop

  1. 打开 ~/.config/anthropic/claude/settings.json
  2. "mcp" 下添加 Strava 插件:
"plugins": {
"strava": {
"enabled": true,
"api_key": "your_api_key",
"refresh_token": "your_refresh_token"
}
}
  1. 保存文件并重启 Claude。

Claude Web

  1. 访问 Claude Web
  2. 进入设置页面。
  3. 在 MCP 部分添加 Strava 插件:
    • API 密钥:your_api_key
    • Refresh Token:your_refresh_token

💻 使用示例

基础用法

以下是一些示例查询,帮助您快速上手:

查询最近活动

print(strava.get_recent_activities())

获取特定活动详细信息

activity_id = 123456789
print(strava.get_activity_by_id(activity_id))

📄 许可证

本项目采用 MIT 许可证

⚠️ 重要提示

  • 确保您的 API 密钥和 refresh token 安全,避免泄露。
  • 定期更新 refresh token,以防止过期。
  • 处理错误时,请参考文档中的错误处理部分。

通过以上步骤,您可以轻松将 Strava 数据集成到语言模型中,扩展其功能。

  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-21 09:36

相似服务问题