关于 Strava MCP Server
Strava MCP Server 将 MCP 客户端连接到 Strava API,提供活动与路段查询,并通过浏览器授权及保存刷新令牌处理身份验证。
主要功能
- 01按日期筛选并获取用户活动
- 02查看活动详情
- 03获取活动中的路段
- 04查询路段排行榜
- 05通过浏览器完成 OAuth 授权
适用场景
- 01回顾近期 Strava 活动
- 02检查某项活动及其路段
- 03查看 Strava 路段排名
MCP 相关
它向 MCP 客户端提供 Strava API 工具,包括活动与路段查询。OAuth 授权通过浏览器启动,刷新令牌会保存以供后续使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Strava MCP 服务
用于与 Strava API 交互的模型上下文协议(MCP)服务。
用户指南
安装
你可以使用 uvx 轻松安装 Strava MCP:
uvx strava-mcp
设置 Strava 凭据
-
创建 Strava API 应用:
- 前往 https://www.strava.com/settings/api
- 创建新应用以获取 Client ID 和 Client Secret
- 在“Authorization Callback Domain”中输入
localhost
-
配置凭据: 创建凭据文件(例如,
~/.ssh/strava.sh):export STRAVA_CLIENT_ID=your_client_id export STRAVA_CLIENT_SECRET=your_client_secret -
配置 Claude Desktop: 将以下内容添加到 Claude 配置文件(
/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json)中:"strava": { "command": "bash", "args": [ "-c", "source ~/.ssh/strava.sh && uvx strava-mcp" ] }
身份验证
首次使用 Strava MCP 工具时:
- 身份验证流程将自动启动
- 浏览器将打开 Strava 授权页面
- 授权后,你将被重定向回本地页面
- 刷新令牌将自动保存,以供后续使用
可用工具
获取用户活动
获取已通过身份验证的用户的活动。
参数:
before(可选):用于筛选的 Unix 时间戳after(可选):用于筛选的 Unix 时间戳page(可选):页码(默认值:1)per_page(可选):每页项目数(默认值:30)
获取活动
获取特定活动的详细信息。
参数:
activity_id:活动 IDinclude_all_efforts(可选):包含路段成绩(默认值:false)
获取活动路段
获取特定活动中的路段。
参数:
activity_id:活动 ID
获取路段排行榜
获取特定路段的排行榜。
参数:
segment_id:路段 ID- 各种可选筛选条件(性别、年龄组等)
开发者指南
项目设置
-
克隆代码库:
git clone <repository-url> cd strava -
安装依赖项:
uv install -
设置环境变量:
export STRAVA_CLIENT_ID=your_client_id export STRAVA_CLIENT_SECRET=your_client_secret或者,创建包含这些变量的
.env文件。
在开发模式下运行
使用 MCP CLI 运行服务:
mcp dev strava_mcp/main.py
手动身份验证
你可以通过运行以下命令手动获取刷新令牌:
python get_token.py
项目结构
strava_mcp/:主包目录__init__.py:包初始化config.py:使用 pydantic-settings 的配置设置models.py:Strava API 实体的 Pydantic 模型api.py:Strava 的底层 API 客户端auth.py:Strava OAuth 身份验证实现oauth_server.py:独立的 OAuth 服务实现service.py:业务逻辑服务层server.py:MCP 服务实现
tests/:单元测试strava_mcp/main.py:运行服务的主入口get_token.py:用于手动获取刷新令牌的实用脚本
运行测试
pytest
发布到 PyPI
构建软件包
# Build both sdist and wheel
uv build
发布到 PyPI
# Publish to Test PyPI first
uv publish --index testpypi
# Publish to PyPI
uv publish
许可证
致谢
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。