incremental.icu 是一款专为运动爱好者打造的跨平台数据同步工具。它能够连接佳明(Garmin)与高驰(Coros)平台,通过调用官方提供的 API 同步数据,协助用户高效管理运动记录,特别适合同时使用多设备记录运动状态的用户。
创建这个工具的初衷,是为了解决佳明海内外版本数据不同步导致 Strava 和微信运动等数据国内平台只能二选一的问题。后来使用了高驰训练平台感觉不错,于是增加了高驰的平台支持。
- 一键同步:设定两个平台,手动拉取最新 10 条数据,进行差量同步。
- 手动同步:在数据列表中找到对应的数据记录,手动推送到指定平台。
- 定时同步:设定定时任务,自动执行同步。
| 平台 | 支持状态 | 交互格式 |
|---|---|---|
| 佳明 (Garmin) 国内版 | ✅ 已支持 | .FIT |
| 佳明 (Garmin) 国际版 | ✅ 已支持 | .FIT |
| 高驰 (Coros) | ✅ 已支持 | .FIT |
访问 incremental.icu 即可直接注册并开始管理您的运动数据。
如果您希望参与开发或自行部署本项目,请参考以下技术细节。
- 前端框架: Next.js (App Router)
- 后端服务: FastAPI (Python) 提供接口
- UI 组件库: shadcn/ui & Alpine.js
- 数据库: Neon (Serverless Postgres)
- 邮件服务: Resend
- 图标库: Tabler Icons
- garth: 一个模拟佳明客户端的 python 包,目前版本 0.5.17 更高版本支持佳明国内版有问题。
- Cerk: 用于用户身份验证和授权的后端服务,基于 Clerk.js 提供。
- 代码规范: 前端部署之前记得先跑一下
npm run lint。 - 前端部署: 托管于 Vercel。
- 注意: 后端接口地址需要配置在
/vercel.json中。
- 注意: 后端接口地址需要配置在
- 自动化工作流:
- CI/CD: 前端通过 Vercel 自动部署,后端通过 GitHub Actions。
- 定时任务: 使用 GitHub Actions 处理定时同步任务。
- 网站状态监测: Better Stack
- 网站流量分析: Google Analytics
- 登录逻辑参考: running_page (前端佳明高驰登录逻辑参考,但因为前端登录的有效性会掉,目前已经不采用前端登录的方式)
- 佳明高驰数据同步参考: garmin-sync-coros
- 身份验证: 支持 Google 和 GitHub 原生的 OAuth 单点登录。
本项目提供基于 MCP (Model Context Protocol) 的标准接口,允许 AI 助手(如 ChatGPT Desktop、Claude Desktop 等)直接查询用户的运动数据,实现"让 AI 帮你查跑步记录和心率数据"的能力。
- 服务地址:
https://incremental.icu/mcp(streamable-http传输协议) - 鉴权方式: 支持两种
- JWT Bearer: 复用主站签发的 JWT,请求头携带
Authorization: Bearer <JWT>(JWT 与主站共享SECRET_KEY,HS256 签名) - OAuth 2.1: Authorization Code + PKCE,支持客户端自动发现授权服务器(
/.well-known/oauth-protected-resource)
- JWT Bearer: 复用主站签发的 JWT,请求头携带
| Tool | 描述 |
|---|---|
get_latest_run |
获取当前用户最近一次跑步记录(距离、时长、心率、配速、爬升等) |
get_run_history |
分页查询历史跑步记录,支持日期范围过滤 |
get_heart_rate_history |
获取最近 N 天或指定日期范围的每日心率汇总 |
get_daily_heart_rate |
获取指定日期的当天心率汇总与采样明细 |
query_user_profile |
获取当前登录用户的基本信息(用户名、邮箱、会员状态、时区等) |
say_hello |
示例工具,用于验证连接是否正常 |
ChatGPT Desktop / Claude Desktop 等支持 MCP 的客户端,可通过 streamable-http 桥接配置:
{
"mcpServers": {
"incremental": {
"command": "npx",
"args": [
"-y", "@tollbit/mcp-streamable-http-shim",
"--url", "https://incremental.icu/mcp",
"-H", "Authorization: Bearer <YOUR_JWT>"
]
}
}
}支持 OAuth 的客户端可省略
-H参数,首次调用时会自动发起 OAuth 授权流程。
MCP 服务由独立仓库 incremental-mcp 实现,部署于 Linux 服务器,与主站共享同一 PostgreSQL 数据库。
本项目使用 GitHub Projects 进行进度管理与任务追踪。