健康管理MCP「Kenko」をつくりました

Kenko

Nikkaに続く日常生活のソリューションアプリとして、健康管理のためのMCPサーバー+Webアプリ「Kenko」をつくった。

なぜつくったか

筋トレを始めてからメニューや重量を毎回ChatGPTと相談し、決めた内容を筋トレ用のアプリに自分で登録。
トレーニングが終わったら、トレーニング記録や体組成計の結果をテキストや画像で送ってフィードバックをもらうという流れをとっていた。

それらをもっとスムーズに行いたくて、今回MCPサーバーとWebアプリケーションを作った。

実現したかったことは以下の3点。

  1. 前回の記録と、ジムの器具に合わせたメニューを提案してくれて、終わったらそのまま記録も終わる
  2. 食事も写真を送ったら記録される
  3. 体組成計の記録に関しては、ChatGPTのメモリ機能に頼っていたのを、しっかりと記録できるようにする

ClaudeからMCPを使ってメニューと食事を提案

できること

サマリータブ

筋トレ管理

  • ジム・器具の登録(自分が通っているジムの器具を登録できる)
    • 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に話しかけるだけでトレーニングの記録が完結するのが気に入っている。

[VIEW MARKDOWN][EDIT ON GITHUB]
VIEWING ARTICLE