使用说明
Strava MCP服务器
Strava API和MCP(Model Context Protocol)的规格化距离的幂函数。
这MCP通过使用服务器Claude等的AI直接从助手Strava中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。可以用对话形式确认跑步和骑自行车的记录,也可以简单地查询统计信息。
📦 支持的客户端
这MCP服务器可供以下客户端使用:
- ✅ Claude桌面版 - Anthropic官方桌面应用程序
- ✅ 光标 - AI统一代码编辑器
- ✅ 马努斯 - AI辅助平台
- ✅ 迪菲 -不编码AI应用程序平台
- ⚠️ ChatGPT(开发模式) - Custom GPT Actions 经过(需要HTTP包装)
安装
npm从安装
npm install -g @keitaro_aigc/strava-mcp-server
或项目本地:
npm install @keitaro_aigc/strava-mcp-server
从源构建
git clone https://github.com/yourusername/strava-mcp-server.git
cd strava-mcp-server
npm install
npm run build
主要功能
这MCP服务器提供以下工具:
1. get_activities -获取活动列表
获取最近的跑步、骑自行车、游泳等活动一览表。
- 参数:
page(可选):页码(默认值:1)per_page(可选):每页计数(默认值:30,最大值:200)
- 可获取的信息:活动名称、距离、时间、平均速度、获得海拔等
2. get_activity -获取特定活动的详细信息
指定的活动ID的明细栏样式中定义的设置。
- 参数:
activity_id(必需):活动的ID
- 可获取的信息:详细统计、中断时间、心率、功率数据等
3. get_athlete -获取运动员简介
获取被认证的运动员(自己)的简介信息。
- 可获取的信息:姓名、体重、所在地、性别等
4. get_athlete_stats -获取统计信息
获取运动员的累计统计信息或最近的统计信息。
- 参数:
athlete_id(必需):运动员的ID
- 可获取的信息:累计距离、累计时间、最近4周的统计、今年的统计等
安装,安装
前提条件
- Node.js 18已安装以上内容
- Strava拥有账户
- Claude Desktop或MCP已安装支持的客户端
第1步:Strava API认证信息
Strava API要使用,请创建应用程序API必须获取凭据。
1.1 Strava创建应用程序
- Strava API设置页面访问
- 「Create App」或单击“我的API应用程序”
- 输入以下信息:
- 应用程序名称:任何名称(例如“我的MCP Server”)
- 类别:选择适当的类别
- 俱乐部:空白OK
- 网站:任意URL(例如:
http://localhost) - 授权回调域:
localhost - 应用描述:任何说明
- 接受使用条款并单击“创建”
1.2 Client ID和Client Secret确认
创建应用程序时,将显示以下信息:
- 客户端ID:数字罗列(例如123456)
- 客户端密钥:字母数字字符串(例如:abc123def456)
请把这些记下来。
1.3 Refresh Token获取
- 以下URL请在浏览器中打开(
YOUR_CLIENT_ID实际的Client ID):
https://www.strava.com/oauth/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=http://localhost&approval_prompt=force&scope=activity:read_all
-
Strava登录并单击“授权”
-
重定向后的URL(
http://localhost/?...),模板名称将采用不同的格式code复制参数值- 例:
http://localhost/?code=abc123xyz789在工作空间的边缘abc123xyz789复制
- 例:
-
在终端处执行以下命令(将每个值替换为实际值):
curl -X POST https://www.strava.com/oauth/token \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET \
-d code=YOUR_CODE \
-d grant_type=authorization_code
- 包含在响应中
refresh_token的值:
{
"access_token": "...",
"refresh_token": "abc123...", ← この値をメモ
"expires_at": 1234567890
}
第2步:Claude Desktop中的设置
Claude Desktop的配置文件(claude_desktop_config.json)中添加以下内容:
macOS
- Claude Desktop打开配置文件:
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
- 添加以下内容(如果有现有设置
mcpServers添加到节):
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "@keitaro_aigc/strava-mcp-server"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
-
Claude Desktop重新启动
-
Claude Desktop右下角🔨显示标记「strava」确认可用
视窗
- Claude Desktop打开配置文件:
notepad %APPDATA%\Claude\claude_desktop_config.json
-
macOS相同的JSON添加设置
-
将每个值替换为实际值
-
Claude Desktop重新启动
-
🔨确认标记中的“strava”可用
步骤2-B: Cursor 中的设置
Cursor 在编辑器中使用:
配置文件位置
- macOS/Linux:
~/.cursor/mcp.json - 视窗:
%APPDATA%\Cursor\User\mcp.json
设定手顺
- 创建或编辑配置文件:
# macOS/Linux
mkdir -p ~/.cursor
nano ~/.cursor/mcp.json
# Windows
mkdir %APPDATA%\Cursor\User
notepad %APPDATA%\Cursor\User\mcp.json
- 添加以下内容:
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "@keitaro_aigc/strava-mcp-server"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
-
将每个值替换为实际凭据
-
Cursor 重新启动
-
Cursor 的,之AI 聊天MCP 确保工具可用
步骤2-C: Manus 中的设置
Manus 使用时:
设定手顺
-
Manus 打开设置画面
-
MCP 转到服务器设置部分
-
添加新服务器:
{
"name": "strava",
"command": "npx",
"args": ["-y", "@keitaro_aigc/strava-mcp-server"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
-
保存设置
-
Manus 重新启动并启用工具
步骤2-D: Dify 中的设置
Dify 在平台上:
对于自主机版本
- Dify 的,之
docker-compose.yml添加环境变量:
services:
api:
environment:
# 既存の環境変数...
STRAVA_CLIENT_ID: "your_client_id"
STRAVA_CLIENT_SECRET: "your_client_secret"
STRAVA_REFRESH_TOKEN: "your_refresh_token"
- MCP 将服务器注册为自定义工具:
{
"tool_name": "strava_mcp",
"command": "npx -y @keitaro_aigc/strava-mcp-server",
"type": "mcp"
}
- Docker 重新启动容器:
docker-compose down
docker-compose up -d
对于云版本
-
Dify 打开工作区设置
-
转到“自定义工具”部分
-
新的MCP 添加工具并设置端点信息
注意:在云版中MCP 服务器可能需要单独托管。
步骤2-E: ChatGPT(开发模式)中的设置
ChatGPT 在的开发模式中使用:
前提条件
- ChatGPT Plus 或Enterprise 账户
- 定制GPT 创建权限
设定手顺
-
ChatGPT 在中选择GPTs→创建a GPT
-
「Configure」在工作空间的边缘Actions 添加
-
MCP 打开服务器API 作为端点托管(例如:Vercel、AWS Lambda 的下界
-
OpenAPI 定义架构:
openapi: 3.0.0
info:
title: Strava MCP Server
version: 1.0.0
servers:
- url: https://your-deployment-url.com
paths:
/get_activities:
post:
summary: Get athlete activities
requestBody:
content:
application/json:
schema:
type: object
properties:
page:
type: integer
per_page:
type: integer
responses:
'200':
description: Success
/get_activity:
post:
summary: Get specific activity
requestBody:
content:
application/json:
schema:
type: object
properties:
activity_id:
type: integer
required:
- activity_id
responses:
'200':
description: Success
- 单击功能区上Actions 的设置中添加
注意: ChatGPT 中所述的工具,调整墙的布局和几何形状MCP 服务器HTTP 我需要一个喇叭。直接的STDIO 不支持连接。
步骤3:动作确认
每个客户机都可以问:
克劳德桌面/光标/手动
最近のアクティビティを5件教えて
迪菲
在工作流中Strava MCP 调用工具,指定参数后运行。
ChatGPT
定制GPT 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
Strava的数据显示的话,设置就完成了!🎉
故障排除
エラー:“刷新访问令牌失败”
- Client ID、Client Secret、Refresh Token确认是否正确
- Strava确认应用程序的状态是否为“活动”
未显示工具
- Claude Desktop完全重新启动(退出菜单并重新启动)
- 在动态输入提示中单击JSON确认格式是否正确(逗号位置、闭合括号等)
"command not found" 错误
- Node.js 18确认是否安装了以上内容:
node -v - npm确认是否正确安装:
npm -v
使用本地开发构建
npm从源代码构建而不是通过:
1.克隆和构建存储库
git clone https://github.com/groundcobra009/strava-mcp-server.git
cd strava-mcp-server
npm install
npm run build
2. Claude Desktop配置(本地构建版)
macOS
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/Users/keitaro/🏀|TRAE/20251028strava-mcp/dist/index.js"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
Windows(本地版本)
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["C:\\path\\to\\strava-mcp-server\\dist\\index.js"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
注意: C:\\path\\to\\strava-mcp-server\\的部分替换为实际克隆的目录路径。
3.环境变量的设置(用于本地开发)
在本地开发中.env也可以使用文件:
cp .env.example .env
# .envファイルを編集して認証情報を設定
npm发布程序(面向开发人员)
将此软件包npm发布到:
1. npm创建和登录帐户
# npmアカウントがない場合は作成
npm adduser
# すでにアカウントがある場合はログイン
npm login
2. package.json确认的设置
name:包名称(如果有作用域)@username/package-name)version:版本号(语义版本化)repository: GitHub仓库URLauthor:作者情报
3.构建和测试
# ビルド
npm run build
# パッケージ内容を確認
npm pack --dry-run
4. npm公开
# スコープ付きパッケージの場合は公開アクセスを設定
npm publish --access public
# 通常のパッケージの場合
npm publish
5.版本更新(下一次以后)
# パッチバージョンアップ(1.0.0 -> 1.0.1)
npm version patch
# マイナーバージョンアップ(1.0.0 -> 1.1.0)
npm version minor
# メジャーバージョンアップ(1.0.0 -> 2.0.0)
npm version major
# 再公開
npm publish --access public
注意事项
package.json的,之name自己的npm请使用用户名进行作用域化(例如:@yourusername/strava-mcp-server)repository的,之URL实际的GitHub仓库URL重新启动交互渲染- 无法删除已发布的版本(仅在24小时内可用)
.npmignore中排除了源代码和不需要的文件
使用例
基本用法
Claude Desktop或者其他MCP在对应的客户机中,用以下自然的对话Strava可访问数据:
示例1:检查最近的活动
あなた: 「最近のランニング記録を10件見せて」
Claude: get_activitiesツールを使用して、最近のアクティビティ10件を取得します...
1. 朝ラン - 5.2km, 26分15秒, 平均ペース 5:03/km
2. 夜ラン - 10.5km, 52分30秒, 平均ペース 5:00/km
...
示例2:详细分析特定活动
あなた: 「昨日のランニング(ID: 12345678)の詳細を教えて」
Claude: get_activityツールで詳細を取得します...
アクティビティ: モーニングラン
距離: 10.5km
タイム: 52分30秒
平均ペース: 5:00/km
獲得標高: 85m
平均心拍数: 152bpm
最大心拍数: 172bpm
示例3:确认统计信息
あなた: 「今月の走行距離の合計は?」
Claude: get_athlete_statsツールで統計情報を取得します...
今年の累計:
- 総距離: 245.8km
- 総時間: 20時間35分
- アクティビティ数: 28回
最近4週間:
- 総距離: 82.3km
- 総時間: 6時間52分
示例4:确认简档信息
あなた: 「私のStravaプロフィールを見せて」
Claude: get_athleteツールでプロフィール情報を取得します...
名前: Taro Yamada
所在地: Tokyo, Japan
体重: 65kg
登録日: 2020年1月15日
应用方法
数据分析
あなた: 「先月と今月のランニング距離を比較して、改善点を教えて」
Claude: 統計データを取得して分析します...
培训计划
あなた: 「最近のペースの傾向から、来週のトレーニングメニューを提案して」
Claude: アクティビティデータを分析してトレーニングプランを提案します...
动机管理
あなた: 「今年の目標1000kmに対して、現在の進捗率と達成見込みは?」
Claude: 累計統計から進捗を計算します...
开发人员信息
本地开发
在开发模式(监视模式)下编辑代码时:
# ウォッチモードで自動ビルド
npm run dev
# 別ターミナルでテスト実行
node dist/index.js
项目结构
.
├── src/
│ └── index.ts # メインのMCPサーバー実装
├── dist/ # TypeScriptビルド出力(自動生成)
├── package.json # npmパッケージ設定
├── tsconfig.json # TypeScript設定
├── .env.example # 環境変数テンプレート
├── .gitignore # Git除外ファイル
├── .npmignore # npm公開除外ファイル
├── LICENSE # MITライセンス
└── README.md # ドキュメント
使用技术
- TypeScript 5.3+:型安全代码
- MCP SDK 0.5+: Model Context Protocol公式SDK
- 阿西奥斯: HTTP请求库
- Dotenv。:环境变数管理
- Node.js 18+:実行环境
貪献
欢迎普鲁特和伊修的报告!
- 将显示Fork
- 创建新分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add amazing feature') - 分公司Push (
git push origin feature/amazing-feature) - Pull Request创建
链接
- npm包装: https://www.npmjs.com/package/@keitaro-aigc/strava mcp服务器
- GitHub仓库: https://github.com/groundcobra009/strava-mcp-server
- Strava API文档: https://developers.strava.com/
- MCP正式文档: https://modelcontextprotocol.io/
许可证
麻省理工学院