Strava MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides access to the Strava API for retrieving and analyzing activity data, including runs, rides, and workouts. Supports fetching activity details, athlete statistics, route visualization, achievement tracking, and social features like kudos and comments.

Strava MCP 服务器

提供对 Strava API 访问权限的模型上下文协议 (MCP) 服务器。该服务器使语言模型能够与 Strava 数据(包括活动、运动员信息等)进行交互。

特征

  • 🏃‍♂️ 活动追踪和分析
  • 📊 运动员统计数据
  • 🗺️ 路线可视化
  • 🏆 成就追踪
  • 🤝 社交功能(点赞、评论)

先决条件

  • Python 3.12+
  • Strava API 凭证
  • pip(Python 包安装程序)

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/strava_mcp.git cd strava_mcp
  1. 创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

配置

  1. 使用您的 Strava API 凭证创建一个config/.env文件:
STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REFRESH_TOKEN=your_refresh_token
  1. 要获取 Strava API 凭证:

用法

与 Claude 一起使用

连接后,您可以通过 Claude 以多种方式与您的 Strava 数据进行交互:

活动查询

  • “显示我最近的活动”
  • “获取我上次跑步的详细信息”
  • “这个月我骑行最长的一次是什么时候?”
  • “向我展示我创下个人记录的活动”
  • “显示我最近活动的路线图”

性能分析

  • “我今年的平均跑步速度是多少?”
  • “比较一下我上个月和本月的骑行表现”
  • “显示我昨天锻炼的心率区”
  • “我所有活动的总海拔高度是多少?”
  • “计算我每周跑步的里程数”

社交互动

  • “谁对我最近的活动表示赞赏?”
  • “显示有关我马拉松跑步的评论”
  • “列出我的所有俱乐部活动”
  • “查找我与朋友一起进行的活动”

成就追踪

  • “列出我的所有细分成就”
  • “显示我在本地片段的个人记录”
  • “本周我取得了哪些成就?”
  • “显示我的年度目标进展情况”

数据可通过 Claude 获取

  1. 活动详情:
    • 距离、持续时间、步速
    • 路线图和海拔剖面图
    • 心率、功率和踏频数据
    • 分段和圈数信息
    • 活动期间的天气状况
  2. 运动员统计:
    • 年初至今和历史总数
    • 个人记录和成就
    • 训练负荷和体能趋势
    • 设备使用与维护
  3. 社交数据:
    • 点赞和评论
    • 俱乐部活动和排行榜
    • 朋友活动和挑战
    • 细分工作和排名
  4. 路线信息:
    • 带有海拔数据的详细地图
    • 细分分析
    • 热门路线和路段
    • 路线规划与分析

作为 MCP 服务器

更新您的 Claude Desktop 配置:

{ "mcpServers": { "Strava": { "command": "python", "args": ["src/strava_server.py"], "cwd": "/path/to/strava_mcp", "env": { "STRAVA_CLIENT_ID": "your_client_id", "STRAVA_CLIENT_SECRET": "your_client_secret", "STRAVA_REFRESH_TOKEN": "your_refresh_token" } } } }

作为 HTTP 服务器

  1. 启动服务器:
./run_server.sh
  1. 通过http://localhost:8000访问 API

可用端点:

  • GET /activities/recent - 列出最近的活动
  • GET /activities/{id} - 获取活动详情
  • GET /activities/{id}/map - 获取活动地图可视化
  • GET /athlete/stats - 获取运动员统计数据

发展

项目结构

strava_mcp/ ├── src/ │ ├── strava_server.py # MCP server implementation │ ├── strava_http_server.py # HTTP API server │ ├── map_utils.py # Map visualization utilities │ └── templates.py # HTML templates ├── config/ │ └── .env # Environment variables (not in git) ├── requirements.txt # Python dependencies └── run_server.sh # Server startup script

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交你的更改
  4. 推送到分支
  5. 创建拉取请求

安全

  • 切勿提交.env文件或 API 凭证
  • .gitignore文件配置用于防止提交敏感数据
  • 对所有敏感配置使用环境变量

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

  • Strava API 文档
  • 模型上下文协议 (MCP) 规范
  • 贡献者和维护者
-
security - not tested
A
license - permissive license
-
quality - not tested

模型上下文协议服务器,使语言模型能够与 Strava 数据进行交互,包括活动、运动员统计数据、路线、成就和社交功能。

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Usage
            1. Using with Claude
            2. As an MCP Server
            3. As an HTTP Server
          2. Development
            1. Project Structure
            2. Contributing
          3. Security
            1. License
              1. Acknowledgments
                ID: sm3o76u1xq