What they did
Ergüden built GymRap, a single-user strength coach. A small Kotlin bridge uploads 23 record types from his watch and phone via Health Connect to a Cloudflare Worker, which computes a readiness score against his 30-day baseline, sleep debt, training targets and weekly sets per muscle group in tested code. The Worker is a remote MCP server with 13 tools behind OAuth scopes. ChatGPT connects to it on a schedule, reads the structured brief and writes only the coaching words, saving them with a tool that checks the text against a schema and ignores repeats of the same report key. The server then emails the report to a fixed address; the model can ask for a send but cannot choose the recipient.
How it went
The first version relied on ChatGPT completing the save, and it did not always. In six scheduled runs over three days ChatGPT's safety layer blocked the save tool; in the chat it looked as if the tool had been called, but the server log showed nothing arrived. He changed the design so a cron check sends a numbers-only report if no coaching text lands by a deadline, and attaches late text to the web report instead of sending a second email. Running cost is nothing beyond his existing ChatGPT subscription. The backend has 137 tests at the published commit.
Worth knowing
Do not let a step the model can be blocked from be the only path to the result. Logging each tool call's name and outcome, without arguments, is what let him tell a refused call from one never made. The readiness score is his own formula, not a medical measure.