
Strava MCP Server

2025.04.17
11
TypeScript运动数据管理位置服务位置服务
Strava MCP Server 是一个基于 TypeScript 实现的 Model Context Protocol (MCP) 服务器,作为 Strava API 的桥梁。它将 Strava 的数据和功能以"工具"的形式暴露出来,供大型语言模型 (LLMs) 通过 MCP 标准使用。该服务器支持自然语言交互,用户可以查询个人运动活动、统计数据、特定活动详情、俱乐部信息、路段信息以及路线管理等。
View on GitHub
Overview
基本能力
产品定位
Strava MCP Server 是一个连接 Strava API 的中间件,旨在通过 MCP 协议为 LLM 提供 Strava 数据的访问能力,支持自然语言查询和操作 Strava 数据。
核心功能
- 🏃 访问最近的活动、个人资料和统计数据
- 🗺️ 探索、查看、收藏和管理路段
- ⏱️ 查看详细的活动和路段努力信息
- 📍 列出和查看保存的路线的详细信息
- 💾 以 GPX 或 TCX 格式导出路线到本地文件系统
- 🤖 通过 MCP 提供 AI 友好的 JSON 响应
- 🔧 使用 Strava API V3
适用场景
- 查询个人运动活动记录
- 获取运动统计数据
- 管理收藏的路段
- 导出运动路线
- 通过自然语言与 Strava 数据交互
工具列表
get-recent-activities
: 获取用户最近的活动get-athlete-profile
: 获取运动员个人资料get-athlete-stats
: 获取运动员统计数据get-activity-details
: 获取特定活动的详细信息list-athlete-clubs
: 列出运动员加入的俱乐部list-starred-segments
: 列出收藏的路段get-segment
: 获取特定路段的详细信息explore-segments
: 在指定地理区域内搜索热门路段star-segment
: 收藏或取消收藏路段get-segment-effort
: 获取特定路段努力的详细信息list-segment-efforts
: 列出运动员在特定路段上的努力list-athlete-routes
: 列出运动员创建的路线get-route
: 获取特定路线的详细信息export-route-gpx
: 以 GPX 格式导出路线export-route-tcx
: 以 TCX 格式导出路线
常见问题解答
- Token 处理: 服务器实现了自动令牌刷新。当初始访问令牌过期时(通常6小时后),服务器将自动使用存储在
.env
文件中的刷新令牌来获取新的访问令牌和刷新令牌。 - 授权回调域: 必须设置为
localhost
- 文件导出路径: 需要配置
ROUTE_EXPORT_PATH
环境变量
使用教程
使用依赖
- Node.js (v18 或更高版本推荐)
- npm (通常随 Node.js 一起安装)
- Strava 账户
安装教程
- 克隆仓库:
git clone <repository_url> strava-mcp
cd strava-mcp
- 安装依赖:
npm install
- Strava API 应用设置:
- 访问 Strava API 设置
- 创建新的 API 应用
- 在"授权回调域"中输入
localhost
- 记录下Client ID和Client Secret
- 生成 API 令牌:
npx ts-node scripts/setup-auth.ts
- 配置导出路径 (可选):
在
.env
文件中添加:
ROUTE_EXPORT_PATH=/your/export/path
- 构建项目:
npm run build
- 运行服务器:
npm start
调试方式
- 检查
.env
文件中的配置是否正确 - 确保
ROUTE_EXPORT_PATH
目录存在且有写入权限 - 查看服务器启动日志是否有错误信息
- 测试各个工具的功能是否正常响应