S

Strava健康数据分析服务器

一个模型上下文协议服务器,为语言模型提供对Strava API数据的访问,使它们能够查询和分析Strava上的运动员活动。

health-and-wellnessresearch-and-datasearch

1.4k 查看 · 2026-07-07 更新

简介

一个模型上下文协议服务器,为语言模型提供对Strava API数据的访问,使它们能够查询和分析Strava上的运动员活动。

简介

一个模型上下文协议服务器,为语言模型提供对Strava API数据的访问,使它们能够查询和分析Strava上的运动员活动。

Strava MCP 服务器

Python Package License: MIT Python 3.10

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

可用工具

该服务器提供了以下工具:

活动查询

  • get_activities(limit: int = 10): 获取已认证运动员的最近活动
  • get_activities_by_date_range(start_date: str, end_date: str, limit: int = 30): 获取特定日期范围内的活动
  • get_activity_by_id(activity_id: int): 获取特定活动的详细信息
  • get_recent_activities(days: int = 7, limit: int = 10): 获取过去 X 天内的活动

日期应以 ISO 格式 (YYYY-MM-DD) 提供。

活动数据格式

服务器返回的活动数据具有统一的字段名称和单位:

字段描述单位
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燃烧的卡路里千卡
start_latlng起点坐标[纬度, 经度]
end_latlng终点坐标[纬度, 经度]

认证

要使用此服务器,您需要与 Strava API 进行认证。请按照以下步骤操作:

  1. 创建一个 Strava API 应用程序:

    • 前往 Strava API 设置
    • 创建一个应用程序以获取您的 Client ID 和 Client Secret
    • 将授权回调域设置为 localhost
  2. 获取您的刷新令牌:

    • 使用随附的 get_strava_token.py 脚本:
    python get_strava_token.py
    • 按照提示授权您的应用程序
    • 脚本会将您的令牌保存到 .env 文件中
  3. 设置环境变量: 服务器需要以下环境变量:

    • STRAVA_CLIENT_ID: 您的 Strava API Client ID
    • STRAVA_CLIENT_SECRET: 您的 Strava API Client Secret
    • STRAVA_REFRESH_TOKEN: 您的 Strava API 刷新令牌

使用方法

Claude for Desktop

更新您的 claude_desktop_config.json(在 macOS 上位于 ~/Library/Application\ Support/Claude/claude_desktop_config.json,在 Windows 上位于 %APPDATA%/Claude/claude_desktop_config.json),以包含以下内容:

{ "mcpServers": { "strava": { "command": "uvx", "args": [ "strava-mcp-server" ], "env": { "STRAVA_CLIENT_ID": "YOUR_CLIENT_ID", "STRAVA_CLIENT_SECRET": "YOUR_CLIENT_SECRET", "STRAVA_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN" } } } }

Claude Web

对于 Claude Web,你可以本地运行服务器并通过 MCP 扩展连接它。

示例查询

连接后,你可以向 Claude 提问,例如:

  • "我最近的活动有哪些?"
  • "显示我上周的活动"
  • "过去一个月里我最长的一次跑步是多久?"
  • "获取关于我最新骑行活动的详细信息"

错误处理

服务器为常见的问题提供了易于理解的错误消息:

  • 无效的日期格式
  • API 认证错误
  • 网络连接问题

许可证

本项目采用 MIT 许可证发布 - 详情请参阅 LICENSE 文件。

工具列表

  • get_activities: Get the authenticated athlete's recent activities.

    Args: limit: Maximum number of activities to return (default: 10)

    Returns: Dictionary containing activities data

  • get_activities_by_date_range: Get activities within a specific date range.

    Args: start_date: Start date in ISO format (YYYY-MM-DD) end_date: End date in ISO format (YYYY-MM-DD) limit: Maximum number of activities to return (default: 30)

    Returns: Dictionary containing activities data

  • get_activity_by_id: Get detailed information about a specific activity.

    Args: activity_id: ID of the activity to retrieve

    Returns: Dictionary containing activity details

  • get_recent_activities: Get activities from the past X days.

    Args: days: Number of days to look back (default: 7) limit: Maximum number of activities to return (default: 10)

    Returns: Dictionary containing activities data

服务配置

[{'mcpServers': {'strava': {'args': ['strava-mcp-server'], 'command': 'uvx', 'env': {'STRAVA_CLIENT_ID': 'YOUR_CLIENT_ID', 'STRAVA_CLIENT_SECRET': 'YOUR_CLIENT_SECRET', 'STRAVA_REFRESH_TOKEN': 'YOUR_REFRESH_TOKEN'}}}}]

来源