返回 MCP 目录
public公开dns本地运行

strava-mcp-server

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

article

README

🚀 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。

3. 设置环境变量: - 将以下内容添加到 .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 数据集成到语言模型中,扩展其功能。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端