
Nikkaに続く日常生活のソリューションアプリとして、健康管理のためのMCPサーバー+Webアプリ「Kenko」をつくった。
なぜつくったか
筋トレを始めてからメニューや重量を毎回ChatGPTと相談し、決めた内容を筋トレ用のアプリに自分で登録。
トレーニングが終わったら、トレーニング記録や体組成計の結果をテキストや画像で送ってフィードバックをもらうという流れをとっていた。
それらをもっとスムーズに行いたくて、今回MCPサーバーとWebアプリケーションを作った。
実現したかったことは以下の3点。
- 前回の記録と、ジムの器具に合わせたメニューを提案してくれて、終わったらそのまま記録も終わる
- 食事も写真を送ったら記録される
- 体組成計の記録に関しては、ChatGPTのメモリ機能に頼っていたのを、しっかりと記録できるようにする

できること

筋トレ管理
- ジム・器具の登録(自分が通っているジムの器具を登録できる)
- ChatGPTのメモリに頼ると以前やったものがメニューに入りやすく、同じメニューになりがちだった。鍛えるべき部位に合わせてマシンを選べるようにしたかった
- 種目の管理(器具と種目を紐づけて、ジムごとに実施可能な種目を把握)
- ワークアウトの記録(セットごとの重量・レップ数・RPE)
- 前回のセッションデータを参照して次のメニューを提案

有酸素運動
- 時間・距離・心拍数・消費カロリーを記録
- 現状はAppleのフィットネスをスクショして送るかたちになるが、Claude Healthが出てきたら変わってきそう
- データの集計
食事管理
- 朝食・昼食・夕食・間食の記録
- マクロ栄養素(カロリー・タンパク質・脂質・炭水化物)の管理
食事の分析に関してはClaudeにまかせ、MCPで構造的に保存して、Webで表示するだけという分け方をしている。

体組成記録
- 体重・体脂肪率・筋肉量・BMIなどの記録と推移
ロゴの作り方
ChatGPTにベクター風のシンプルなロゴタイプと指定して画像を生成し、LottieFilesのRaster to Vectorツールでラスター画像からSVGに変換するという流れで作っている。
CLIがあるサービスとClaude Codeの相性
今回はFly.io、Vercel、Auth0といったCLIが用意されているサービスを選んだ。
Claude Codeからそのまま操作できるので、人間がWebUIからそれっぽい項目を探して設定をいじるよりも、やりたいことを伝えるだけで済んで効率的だった。
おわりに
Nikkaが日記という「内面」のソリューションだとすると、Kenkoは健康という「身体」のソリューション。
どちらも既存のアプリで満足できなくて自分で作ったものだが、自分で使うアプリが一番モチベーションが上がる。
MCPサーバーとして実装したことで、Claudeに話しかけるだけでトレーニングの記録が完結するのが気に入っている。