使用说明

项目简介

Strava MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型(LLM)客户端提供访问 Strava 运动数据的能力。通过此服务器,LLM 可以安全、便捷地获取用户的 Strava 活动信息,从而在运动健康、个性化推荐等应用场景中实现更智能的功能。

主要功能点

  • 获取用户活动列表:允许 LLM 获取经过身份验证的 Strava 用户的活动概要列表,支持按时间范围和分页筛选。
  • 获取活动详情:允许 LLM 获取特定 Strava 活动的详细信息,包括运动类型、距离、时间、海拔、心率等数据。
  • 获取活动分段信息:允许 LLM 获取 Strava 活动中的分段(Segments)信息,例如坡度、距离、配速等,用于更细粒度的运动分析。
  • OAuth 2.0 认证:采用 OAuth 2.0 协议进行用户身份验证,确保数据访问的安全性。
  • 易于安装和配置:使用 'uvx' 即可快速安装,并提供详细的配置指南。

安装步骤

  1. 安装 Strava MCP Server: 使用 'uvx' 包管理器可以轻松安装 Strava MCP Server:

    uvx strava-mcp
  2. 配置 Strava API 凭据:

    • 访问 Strava API 网站 创建一个新的 API 应用程序,获取 'Client ID' 和 'Client Secret'。
    • 将 "Authorization Callback Domain" 设置为 'localhost'。
    • 创建一个凭据文件(例如 '~/.ssh/strava.sh'),并填入你的 'Client ID' 和 'Client Secret':
      export STRAVA_CLIENT_ID=your_client_id
      export STRAVA_CLIENT_SECRET=your_client_secret
  3. 配置 MCP 客户端: 以 Claude Desktop 为例,在 Claude 的配置文件 ('/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json') 中添加 Strava 服务器配置:

    "strava": {
        "serverName": "strava",
        "command": "bash",
        "args": [
            "-c",
            "source ~/.ssh/strava.sh && uvx strava-mcp"
        ]
    }

    配置信息参数说明:

    • '"serverName"': 服务器名称,客户端用于标识和调用。例如这里设置为 '"strava"'。
    • '"command"': 启动 MCP 服务器的命令。这里使用 'bash' 解释器。
    • '"args"': 传递给 'command' 的参数列表。
      • '"-c"': 'bash -c' 表示执行后续的字符串命令。
      • '"source ~/.ssh/strava.sh && uvx strava-mcp"': 实际执行的命令。
        • 'source ~/.ssh/strava.sh': 加载 Strava API 凭据的环境变量。
        • 'uvx strava-mcp': 运行已安装的 'strava-mcp' MCP 服务器。

基本使用方法

  1. 启动 Strava MCP Server: MCP 服务器会在客户端(如 Claude)首次调用 Strava 工具时自动启动。

  2. 身份验证: 首次使用 Strava 工具时,会自动启动 OAuth 认证流程:

    • 浏览器会自动打开 Strava 授权页面。
    • 授权成功后,会重定向到一个本地页面,并自动保存 'refresh token',用于后续访问。
  3. 在 MCP 客户端中使用 Strava 工具: 在支持 MCP 协议的 LLM 客户端中,你可以调用 Strava MCP Server 提供的工具,例如:

    • 获取用户活动: 调用 'strava.get_user_activities' 工具,可以获取用户的运动活动列表。可以根据需要添加 'before'、'after' 等参数进行筛选。

    • 获取活动详情: 调用 'strava.get_activity' 工具,并传入 'activity_id' 参数,可以获取指定活动的详细信息。

    • 获取活动分段: 调用 'strava.get_activity_segments' 工具,并传入 'activity_id' 参数,可以获取指定活动的分段信息。

    具体工具的使用方法和参数请参考仓库 'README.md' 文档中 "Available Tools" 章节的描述。

信息

分类

网页与API