Strava MCP Server

Strava MCP Server

site icon
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 数据交互

工具列表

  1. get-recent-activities: 获取用户最近的活动
  2. get-athlete-profile: 获取运动员个人资料
  3. get-athlete-stats: 获取运动员统计数据
  4. get-activity-details: 获取特定活动的详细信息
  5. list-athlete-clubs: 列出运动员加入的俱乐部
  6. list-starred-segments: 列出收藏的路段
  7. get-segment: 获取特定路段的详细信息
  8. explore-segments: 在指定地理区域内搜索热门路段
  9. star-segment: 收藏或取消收藏路段
  10. get-segment-effort: 获取特定路段努力的详细信息
  11. list-segment-efforts: 列出运动员在特定路段上的努力
  12. list-athlete-routes: 列出运动员创建的路线
  13. get-route: 获取特定路线的详细信息
  14. export-route-gpx: 以 GPX 格式导出路线
  15. export-route-tcx: 以 TCX 格式导出路线

常见问题解答

  • Token 处理: 服务器实现了自动令牌刷新。当初始访问令牌过期时(通常6小时后),服务器将自动使用存储在.env文件中的刷新令牌来获取新的访问令牌和刷新令牌。
  • 授权回调域: 必须设置为localhost
  • 文件导出路径: 需要配置ROUTE_EXPORT_PATH环境变量

使用教程

使用依赖

  1. Node.js (v18 或更高版本推荐)
  2. npm (通常随 Node.js 一起安装)
  3. Strava 账户

安装教程

  1. 克隆仓库:
git clone <repository_url> strava-mcp
cd strava-mcp
  1. 安装依赖:
npm install
  1. Strava API 应用设置:
  2. 访问 Strava API 设置
  3. 创建新的 API 应用
  4. 在"授权回调域"中输入localhost
  5. 记录下Client IDClient Secret
  6. 生成 API 令牌:
npx ts-node scripts/setup-auth.ts
  1. 配置导出路径 (可选): 在.env文件中添加:
ROUTE_EXPORT_PATH=/your/export/path
  1. 构建项目:
npm run build
  1. 运行服务器:
npm start

调试方式

  1. 检查.env文件中的配置是否正确
  2. 确保ROUTE_EXPORT_PATH目录存在且有写入权限
  3. 查看服务器启动日志是否有错误信息
  4. 测试各个工具的功能是否正常响应

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。