Token导航 LogoToken导航TokenDH.com
Strava Training MCP logo
数据服务stdio官方级别未说明来源级核验

Strava Training MCP

MCP Server

一个提供完整Strava API访问的模型上下文协议(MCP)服务器,专为马拉松训练和比赛分析设计,支持查询运动员数据、分析训练模式、跟踪性能指标和规划比赛。

工具数

22

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude数据分析Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hxie-pallas

提供方

hxie-pallas

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run src/server.py --transport sse --port 9186

详细介绍

斯特拉瓦训练MCP

![License: MIT](https://opensource.org/licenses/MIT) ![Python 3.12](https://www.python.org/downloads/release/python-3120/)

全面 模型上下文协议 (MCP)服务器,提供对Strava API的完全访问,该API专为马拉松训练和比赛分析而设计。此服务器使语言模型能够查询详细的运动员数据、分析训练模式、跟踪表现指标和计划比赛。

特性

  • 综合活动数据:访问详细的活动信息,包括步速、心率、功率、步频、GPS坐标等
  • 训练分析:每周和每月的训练指标、速度趋势和长期分析
  • 详细流:用于分析整个活动绩效的时间序列数据
  • 搭接和拼接:分析配速一致性和分段,为比赛做准备
  • 区域分析:用于训练强度分析的心率和功率区数据
  • 运动员统计:年初至今的总数、个人记录和成就跟踪
  • 马拉松训练工具:心率区域分析、训练负荷监测、损伤风险检测和恢复分析
  • 内置身份验证:使用MCP工具简化OAuth流程-不需要单独的脚本
  • 多个传输:支持stdio、SSE和可流式传输的http

安装

使用紫外线(推荐)

# Clone the repository
git clone 
cd strava-training-mcp

# Install dependencies
uv sync

# Run the server
uv run src/server.py --transport sse --port 9186

使用pip

pip install strava-training-mcp

快速开始

  1. 获取Strava API证书Strava API设置
  2. 启动服务器 (它将指导您完成身份验证)
  3. 使用MCP工具 验证和查询您的Strava数据

快速启动.md 有关详细的身份验证说明。

可用工具

身份验证和设置

  • get_strava_auth_token(client_id, client_secret, auth_code):一步完成身份验证(推荐)
  • save_credentials(client_id, client_secret):保存您的Strava API证书
  • get_auth_url(redirect_uri):使用存储的凭据获取授权URL
  • complete_strava_auth(auth_code):使用授权码完成身份验证
  • check_auth_status():检查是否配置了身份验证以及令牌是否可用

基本活动查询

  • get_activities(limit):获取最近的活动
  • get_activities_by_range(start_date, end_date, limit):获取日期范围内的活动
  • get_activity_by_id(activity_id):获取特定活动的详细信息
  • get_recent(days, limit):获取过去X天的活动
  • get_runs_by_range(start_date, end_date, limit):获取日期范围内的跑步活动

详细活动分析

  • get_activity_streams(activity_id, keys):获取时间序列数据(心率、步速、功率、步频、GPS等)
  • get_activity_laps(activity_id):获取圈数/分段数以分析配速一致性
  • get_activity_zones(activity_id):获取心率和功率区数据

运动员统计

  • get_athlete_stats(athlete_id):获取运动员统计数据,包括年初至今的总数、PR和成绩

训练分析

  • analyze_weekly(start_date, end_date):分析每周培训指标
  • analyze_monthly(year, month):分析月度培训和每周细分
  • find_long_runs(start_date, end_date, min_distance_km):查找日期范围内的长跑
  • analyze_pace_trends(start_date, end_date):分析随时间变化的速度趋势

心率区和损伤预防

  • analyze_hr_zones(start_date, end_date):分析心率区域分布(80/20原理)
  • analyze_training_load(start_date, end_date):分析训练负荷并确定受伤风险指标
  • analyze_hr_trends(start_date, end_date, reference_pace_min_per_km):跟踪心率趋势以监测健康状况的改善
  • analyze_recovery(start_date, end_date):分析恢复模式,包括休息日和训练压力分布
注: 日期应以ISO格式提供(YYYY-MM-DD).

用法

Claude桌面版

更新您的 claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 窗户: %APPDATA%/Claude/claude_desktop_config.json

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

本地运行

# SSE transport (recommended for remote connections)
uv run src/server.py --transport sse --port 9186

# Streamable-http transport (stateless HTTP POST)
uv run src/server.py --transport streamable-http --port 9186

# stdio transport (default, for local use)
uv run src/server.py --transport stdio

查询示例

认证

  • “检查我的Strava身份验证状态”
  • “保存我的Strava凭据:client_id=12345,client_secret=abc123”
  • “获取Strava OAuth的授权URL”
  • “使用代码XYZ789完成Strava身份验证”

基本查询

  • “我最近的活动是什么?”
  • “显示我上周的活动”
  • “在过去的一个月里,我跑得最长的是什么?”
  • “获取我最近跑步的详细信息”

马拉松训练分析

  • “分析我上周的每周训练”
  • “显示我过去一个月的长跑记录”
  • “过去3个月我的节奏趋势是什么?”
  • “分析我2024年1月的训练”

心率区和损伤预防

  • “分析我过去一个月的心率区域”
  • “检查我过去4周的训练负荷和受伤风险”
  • “显示我过去3个月的心率趋势”
  • “分析我的恢复模式——我是否得到了足够的休息?”

活动数据格式

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

字段描述单位
id活动ID-
name活动名称-
sport_type运动类型-
start_date开始日期和时间ISO 8601
distance_metres距离
elapsed_time_seconds总运行时间
moving_time_seconds移动时间
average_speed_mps平均速度米每秒
max_speed_mps最大速度米每秒
average_cadence_rpm平均节奏每分钟转数
average_heartrate_bpm平均心率每分钟心跳次数
max_heartrate_bpm最大心率每分钟心跳次数
average_watts平均功率
weighted_average_watts加权平均功率
kilojoules能量输出千焦
total_elevation_gain_metres总高程增益
elev_high_metres最高海拔
elev_low_metres最低海拔
calories燃烧的卡路里kcal
workout_type训练类型(0=默认,1=比赛,2=长跑,3=训练)-
suffer_score感知运动得分-
start_latlng起始坐标\[lat,lng\]
end_latlng终点坐标\[lat,lng\]

发展

项目结构

strava-training-mcp/
├── src/
│   ├── server.py      # Main MCP server implementation
│   ├── client.py      # Strava API client wrapper
│   ├── tools.py       # MCP tool definitions
│   └── auth.py        # Authentication utilities
├── README.md
├── QUICK_START.md
├── AUTHENTICATION.md
├── STEP_BY_STEP_AUTH.md
└── pyproject.toml

运行测试

# Run linting
uv run ruff check src/

# Type checking
uv run mypy src/

认证

MCP服务器包括内置的身份验证工具。看 认证.md 详细说明。

快速身份验证

  1. 从获取您的客户ID和客户密码 Strava API设置
  2. 使用MCP工具: get_strava_auth_token(client_id, client_secret, auth_code)
  3. 重新启动服务器

有关分步说明,请参阅 STEP_BY_STEP_AUTH.md.

许可证

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

学分

该项目的灵感来自并建立在以下优秀作品的基础上 托梅克/斯特拉瓦mcp服务器原始项目为这个增强版本提供了基础和灵感,该版本增加了全面的训练分析功能、改进的身份验证流程和马拉松专用工具。

贡献

欢迎投稿!请随时提交拉取请求。

目录标签

目录标签

PythonClaude数据分析马拉松训练本地部署运动数据分析性能跟踪Strava集成训练规划

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

22

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP