Strava MCP服务器

一个提供Strava API访问的模型上下文协议服务器,使语言模型能够与Strava数据交互,包括活动、运动员信息等。

  • by ctvidic
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 ctvidic/strava-mcp-server

使用说明

Strava MCP服务器

一种模型上下文协议(MCP)服务器,提供对Strava API的访问。该服务器使语言模型能够与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. 创建一个 config/.env 使用您的Strava API证书提交:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REFRESH_TOKEN=your_refresh_token
  1. 要获得Strava API证书:
    • 首选https://www.strava.com/settings/api
    • 创建新应用程序
    • 记下客户端ID和客户端密码
    • 按照OAuth 2.0流程获取刷新令牌

用法

与克劳德一起使用

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

活动查询

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

性能分析

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

社会交往

  • “谁对我最近的活动表示赞赏?”
  • “显示我对马拉松比赛的评论”
  • “列出我的所有俱乐部活动”
  • “查找我和朋友一起做的活动”

成就追踪

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

克劳德提供的数据

  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. 访问API http://localhost:8000

可用端点:

  • 获取 /activities/recent -列出最近的活动
  • 获取 /activities/{id} -获取活动详细信息
  • 获取 /activities/{id}/map -获取活动图可视化
  • 获取 /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许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • Strava API文件
  • 模型上下文协议(MCP)规范
  • 贡献者和维护者