使用说明
Strava MCP
MCP服务器,用于通过LLM查询Strava活动。采用人工智能优先原则设计自然语言查询。
特性
- 将Strava API的活动同步到本地SQLite数据库
- 用于自动令牌刷新和活动同步的后台工作人员
- 11种基于意图的MCP工具,具有人工智能友好的见解
- HTTP/SSE传输(LM Studio)或stdio(Claude Desktop)
- 区域数据同步(需要Strava Summit订阅)
需求
- 转到1.24+
- Strava API证书
- Strava Summit订阅(可选,用于区域数据)
设置
1.获取Strava API证书
- 首选https://www.strava.com/settings/api
- 创建应用程序
- 注意客户端ID和客户端密码
- 将授权回调域设置为
localhost
2.建造
make build
# or
go build -o strava-mcp .
3.跑步
./strava-mcp
第一次运行时,系统将提示您输入Strava API凭据并通过浏览器进行身份验证。凭证和令牌存储在SQLite数据库中并自动刷新。
CLI选项
Usage:
strava-mcp [flags]
Flags:
--db string path to SQLite database file (default "strava_activities.db")
--force-reauth force OAuth re-authentication, clearing existing tokens
-h, --help help for strava-mcp
--no-sync run MCP server only without Strava API sync (offline mode)
-p, --port int MCP server port (0 for stdio mode) (default 8080)
--sync-interval duration interval between activity syncs (default 15m0s)
--token-refresh-interval duration interval between token refresh checks (default 30m0s)
-v, --verbose count increase verbosity (-v for debug, -vv for trace with HTTP headers)
MCP客户端配置
LM工作室(HTTP/SSE)
使用默认端口运行:
./strava-mcp
在LM Studio中配置:
{
"mcpServers": {
"strava": {
"url": "http://127.0.0.1:8080/"
}
}
}
克劳德桌面(stdio)
使用stdio传输运行:
./strava-mcp --port 0
在Claude桌面中配置(claude_desktop_config.json):
{
"mcpServers": {
"strava": {
"command": "/path/to/strava-mcp",
"args": ["--port", "0"]
}
}
}
离线模式
在没有Strava API连接的情况下运行(使用现有数据库):
./strava-mcp --no-sync
示例问题
问你的法学硕士这些问题-MCP工具将自动使用:
进展与趋势
- “我跑得更快了吗?”
- “在过去的三个月里,我的速度有什么改善?”
- “今年我的距离趋势是什么?”
训练负荷
- “我训练过度了吗?”
- “本周与我的平均水平相比如何?”
- “我每周的工作量是多少?”
个人记录
- “我骑自行车的PR是什么?”
- “我有史以来跑得最长的是什么?”
- “显示我最快的活动”
活动搜索
- “显示我的最新活动”
- “找到我今年骑行时间最长的地方”
- “我上周做了什么?”
区域分析(需要Strava峰会)
- “我在2区要花多少时间?”
- “分析我的心率区域”
- “我训练的强度合适吗?”
比较
- “将本月与上月进行比较”
- “今年和去年相比怎么样?”
每周总结
- “我的一周过得怎么样?”
- “这周我训练了什么?”
可用工具
活动搜索
| 工具 | 说明 |
|---|---|
find_activities |
具有特殊查询(最新/最旧/最快/最长)、过滤器(类型/日期)和排序的统一活动搜索 |
汇总和总结
| 工具 | 说明 |
|---|---|
count_activities |
活动计数,可选择按类型/月/周分组 |
get_training_summary |
综合训练统计数据(距离、持续时间、速度、心率、卡路里、海拔高度) |
get_week_summary |
当前/上周活动和总计明细 |
分析和见解
| 工具 | 说明 |
|---|---|
compare_periods |
两个时间段的并排比较,百分比变化 |
analyze_progress |
趋势检测-回答“我变快了吗?” |
check_training_load |
每周交易量分析-回答“我训练过度了吗?” |
get_personal_records |
各类别个人最佳成绩(最快、最长、卡路里最多) |
指标
| 工具 | 说明 |
|---|---|
get_metrics_summary |
详细指标(距离/持续时间/速度/心率/卡路里/节奏/海拔) |
区域(需要斯特拉瓦峰会)
| 工具 | 说明 |
|---|---|
get_activity_zones |
特定活动的心率和功率区 |
analyze_zones |
具有80/20培训见解的汇总区域统计数据 |
工具响应格式
所有工具返回结构化响应,包括:
- 数据:所要求的信息
- 洞察:对数据的人工智能友好观察
- 建议操作:建议的后续工具调用
发展
make build # Build binary
make test # Run tests
make test-cover # Run tests with coverage
make generate # Regenerate sqlc code
make vet # Run go vet
make deps # Tidy dependencies
数据库迁移
数据库迁移是通过以下方式管理的 鹅。迁移文件位于 sql/migrations/ 作为SQL文件 -- +goose Up 和 -- +goose Down 注释。
迁移在启动时自动运行。
许可证
麻省理工学院
