Plan running and strength in a conversation, then adjust after training. Start with Claude, connect Intervals.icu, and approve workouts before sending them.
Sports & fitnessPython · DockerfileGitHub @atomchungOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Adaptive running and strength coaching for the long run — a hosted MCP server and Agent Skill that keeps one current 28-day plan in step with your Intervals.icu evidence. Independent project, not affiliated with Garmin or Intervals.icu.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
官網 paceandstaystrong.com | 遇到問題看支援頁 把一個網址貼進 Claude 或 ChatGPT,你就有一個讀得到你真實訓練的教練。 它讀你 Intervals.icu 帳號裡的活動與恢復數據,維持同一份 28 天的跑步+重訓方向與本週課表,拿計畫去對你實際做了什麼,並在你同意之後,把每一堂課排進你的日曆。免費使用,沒有付費方案。 Garmin 不是使用前提。 Garmin 只是目前第一條做過實機驗證的下游裝置路徑;Apple Watch、COROS、Polar、Suunto、Wahoo、其他 app/手錶,甚至沒有手錶,都可以用同一個教練。差別在於有多少可信的訓練紀錄能進到教練手上,以及 Intervals 後面那段裝置同步是否已經被驗證過。 一般使用者直接用託管版: https://mcp.paceandstaystrong.com/mcp。你需要一個 Intervals.icu 帳號,但不需要自己向 Intervals 申請 OAuth App,也不需要自己維運伺服器。 官網把同一條流程拆成四個點擊步驟走一次:開始使用。Read the full README ↗
官網 paceandstaystrong.com | 遇到問題看支援頁
把一個網址貼進 Claude 或 ChatGPT,你就有一個讀得到你真實訓練的教練。
它讀你 Intervals.icu 帳號裡的活動與恢復數據,維持同一份 28 天的跑步+重訓方向與本週課表,拿計畫去對你實際做了什麼,並在你同意之後,把每一堂課排進你的日曆。免費使用,沒有付費方案。
Garmin 不是使用前提。 Garmin 只是目前第一條做過實機驗證的下游裝置路徑;Apple Watch、COROS、Polar、Suunto、Wahoo、其他 app/手錶,甚至沒有手錶,都可以用同一個教練。差別在於有多少可信的訓練紀錄能進到教練手上,以及 Intervals 後面那段裝置同步是否已經被驗證過。
一般使用者直接用託管版:
https://mcp.paceandstaystrong.com/mcp。你需要一個 Intervals.icu 帳號,但不需要自己向 Intervals 申請 OAuth App,也不需要自己維運伺服器。
官網把同一條流程拆成四個點擊步驟走一次:開始使用。
在 AI 的連接器設定裡新增一個 remote MCP server,網址是:
https://mcp.paceandstaystrong.com/mcp
沒有別的欄位要填,也沒有金鑰要貼。
瀏覽器會開 Intervals.icu 的同意頁。登入你自己的 Intervals.icu 帳號,四個權限都勾起來:
| 權限 | 教練拿它做什麼 |
|---|---|
ACTIVITY:READ | 讀你已完成的訓練。 |
WELLNESS:READ | 讀 Intervals 手上的恢復數據。 |
CALENDAR:WRITE | 讀寫訓練日曆,讓你確認過的課表能送進去,並讀回來核對。 |
SETTINGS:WRITE | 讀你的門檻配速。它唯一會寫進去的,是你還沒有的門檻配速,發生在你已經確認過的課表交付當下;已經設好的絕不覆寫。 |
Intervals 也有只讀的設定權限;這裡要寫入,是因為上面那個補值動作真的會寫。它之所以需要,是因為 Intervals 這邊沒有門檻配速時,它照樣收下有配速的課表,但往手錶送的時候會把配速目標拿掉——你會收到距離正確、卻沒有任何目標的一堂課。少勾任何一個權限,需要它的功能就會壞掉,而且不容易看出原因;重新連線補上即可。
不要把 Intervals 密碼、API key 或 token 貼進對話。
教練讀的是 Intervals.icu 裡已經有的東西。帳號是新的話,有兩條路把歷史補進去:
.fit 檔,請它匯入。同檔與同一場活動會自動去重,判斷不了才回頭問你。(檔案是給教練的,不會進 Intervals.icu。)裝置量不到的東西也可以直接在對話裡講:重訓的實際組數重量次數、本週能練的時間與器材、體重體脂、沒帶錶的那一場、「最近很累」「睡不好」,以及你從手錶上實際看到的睡眠、HRV、靜止心率、readiness 數字。教練不會把一句「我很累」偷偷翻成一個假的 readiness 分數。
不用先填問卷:
讀我最近的訓練,告訴我這週該怎麼練。
或:
我想提升 VO2max,又不想掉力量,幫我排第一個 28 天方向。
教練會先讀已經有的資料,再只問真正會改變決策的缺口——例如本週可練日、器材,或裝置不可能知道的重訓基準。
之後每一次改動也是同一條體驗:改動前後對照 → 你同意一次 → 才寫入。
交付是另一個獨立確認:課表預覽 → 你同意一次 → 寫進 Intervals.icu → 讀回來核對。
預覽會先說明這次要寫進哪一個 Intervals.icu 帳號——先講 Intervals 上的 email,再講顯示名稱,所以同時有正式帳號和測試帳號的人,在寫進去之前就看得出來是哪一個。email 放前面,是因為自己的兩個帳號常常取同一個顯示名稱。兩者都是當下向 Intervals 讀的,只用在這一次回答,不會被存下來。
本產品能證明的最遠一步是 Intervals.icu 收下了。Intervals 成功不等於課表已經在 Garmin、Apple Watch 或其他手錶上——Intervals 後面那段同步是外部路徑,要各自驗證。
Intervals.icu 是目前的中轉站:它幫教練接住不同裝置/app 的活動與恢復數據,也承接教練確認後的日曆課表。它不是計畫本身的存放處。
手錶 / 訓練 app
│
▼
Intervals.icu ───── 已完成活動 + 恢復數據 ─────► 教練
▲ │
│ │
└────────── 你確認過的日曆課表 ◄───────────┘
│
▼
Garmin / Apple Watch / 其他下游同步
責任分工:
只有帳號本身是必要條件。Intervals 裡已經有活動與恢復數據的話,教練自動拿得到的資料會比較完整;沒有的欄位保持「不知道」,不會被當成 0,也不會因為少一個選配數值就把一般教練對話擋掉。
實際會感覺到的差別只有一個:**託管版你在手機上就能直接用;自架只有在跑伺服器的那台電腦上能用。**下面每一行都是這個差別的成本。
| 託管版(推薦) | 自架 | |
|---|---|---|
| 手機上能用嗎 | 能——連一個有手機 App 的 client 就好 | 不能,除非你自己把伺服器對外開放並處理 TLS |
| 網址 | https://mcp.paceandstaystrong.com/mcp | 你自己的伺服器,例如 http://127.0.0.1:8422/mcp |
| 維運 | 不用自己管 | 自己啟動、更新、備份與維運 |
| Intervals OAuth App | 不需要 | 需要自己的 OAuth application 憑證 |
| 計畫存哪 | 託管端、以每位使用者為範圍 | 你自己的伺服器 state root |
| 適合誰 | 一般使用者、多個 client 共用同一份計畫 | 開發者、需要完全自管環境/資料的人 |
託管版會自己處理 dynamic client registration、PKCE、token 與使用者對應;一般使用者不需要任何 id、API key、client secret 或環境變數。
openclaw mcp add 指到同一個網址,加上 --auth oauth。一個 instance 若不只一個人用,要把 OAuth identity 設成 per-requester,否則所有人會連到同一個 Intervals 帳號。設定見 entrypoints/openclaw/。逐入口「已完整實機驗證」或「已封裝、等待真實連線驗證」的狀態,以 entrypoints/ 為準。
Repo 使用 Python 3.11,只有一個釘死版本的依賴:官方 MCP Python SDK(requirements.txt 寫版本,requirements.lock 連同它解析出的每個套件一起釘死 sha256),它負責 /mcp 的協定與傳輸層。教練判斷、驗證、store、交付與身分都仍然只用標準函式庫。
python3 -m pip install --require-hashes -r requirements.lock。client_id / secret。流程見 Intervals.icu OAuth support。<gateway-origin>/oauth/callback。本機 client 可以走 loopback;remote client 需要可達的 HTTPS 或安全通道。export GARMIN_COACH_LOOP_GATEWAY_STATE_ROOT="$HOME/.local/share/long-run-hybrid-coach-gateway"
export GARMIN_COACH_LOOP_TOKEN_HMAC_KEY="$(openssl rand -base64 32)"
export GARMIN_COACH_LOOP_INTERVALS_CLIENT_ID="..."
export GARMIN_COACH_LOOP_INTERVALS_CLIENT_SECRET="..."
python3 -m garmin_coach_loop.cli serve-gateway --host 127.0.0.1 --port 8422
http://127.0.0.1:8422/mcp。要正式提供給 remote client 的話,不要把 loopback 範例當 production runbook。Persistent volume、TLS、信任的 client origin、single replica、release identity 與部署驗證見 docs/deploy-gateway.md。
本機設定 GARMIN_COACH_LOOP_GATEWAY_URL 指向託管版時,本機寫入預設會被擋;只有明確加 --offline 才代表「我刻意在做另一份本機計畫」。已經有本機資料的人可以搬到託管版,流程見 docs/ops/migrate-local-store-to-hosted.md。
getCoachState)。託管端保存維持同一份計畫所必要的東西:計畫的版本鏈、決策與回執、你自己回報的紀錄、身分對應,以及還沒收斂的交付紀錄。
匯出時刻意不包含三樣東西:授權憑證的 fingerprint(單向的指紋,只拿來做內部記帳)、供應商的原始 payload 與 GPS 軌跡(原始活動檔應該跟供應商拿),以及內部的 owner id(本產品自己的儲存位置編號)。
刪除也有三個明確邊界,這三件不在本產品能刪的範圍:
匯出在對話裡自己做。刪除整個帳號是寫信申請,流程在支援頁:要的是你的 Intervals.icu athlete id,以及一張 Intervals.icu Settings 頁的截圖;不會跟你要密碼、API key 或 token。在對話裡要求刪除全部資料,教練只會給你這一頁——在你寄信之前,沒有提交,也沒有刪除任何東西。
1.4.5 之前刪除是兩次 tool call 加一次確認。有些 AI 用戶端會在自己的核准層擋掉那次確認,服務端完全收不到訊息,使用者手上只剩一份預覽、資料沒被刪掉。改成一條一定走得完的路,取代兩條中間可能斷掉的路。
完整生命週期見 docs/account-lifecycle.md,公開隱私政策在 paceandstaystrong.com/zh/privacy.html(英文版為準)。
目前 release 對外有 23 個 MCP tool、2 個 prompt、34 個 CLI 指令、4 份 JSON Schema contract、10 張 identity 表。這些數量由測試從真實程式碼推導,避免這份文件自己走鐘。
Long Run Hybrid Coach 是獨立專案,與 Garmin、Intervals.icu、Apple 或其他裝置/平台供應商沒有隸屬、背書或贊助關係。程式碼以 MIT License 釋出。