Fitatu MCP Unofficial について
Fitatu MCP Unofficialは、個人のFitatuアカウントのデータを参照・更新するMCPサーバーです。食事や栄養情報を管理する人向けに、食事プラン、身体測定、食品検索、レシピ管理のツールをstdioまたはStreamable HTTPで提供します。
主な機能
- 01プロフィールと栄養概要の取得
- 02食品とレシピの検索
- 03食事項目の管理
- 04レシピの作成と編集
- 05測定値と設定の更新
活用シーン
- 01日付を指定して食事プランを確認
- 02食品を検索して食事に追加
- 03期間内の栄養情報を集計
- 04レシピと測定記録を管理
MCP 対応
stdioおよびStreamable HTTP経由で、Fitatuアカウントの参照・更新ツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細

Fitatu MCP Unofficial
自分の Fitatu アカウントのデータにアクセスして更新するための、非公式な Model Context Protocol(MCP)サーバーです。stdio または Streamable HTTP 経由で、プロフィールデータ、食事プラン、栄養サマリー、食品検索、レシピ管理のための型付きツールを提供します。
重要
このプロジェクトは Fitatu と提携、推奨、または後援関係にありません。ご自身のアカウントでのみ使用し、Fitatu の認証情報とアカウントデータは機密情報として扱ってください。
特長
- プロフィール、日次プラン、栄養サマリーの照会。
- 最新または指定日の身体測定値の取得と、明示的に指定した日付の一部項目の更新。
- 更新ツールで必要となる識別子を含む、食品とレシピの検索。
- 食事項目の作成、更新、置換、移動、削除。
- レシピの作成、確認、更新、削除。
- ローカルの stdio クライアントと Streamable HTTP クライアント向けの MCP トランスポート。
- ローカル開発と Docker のワークフロー。
必要条件
- Node.js
>=22.18.0 - npm
- Fitatu アカウント
Docker と ngrok は任意で、それぞれを使用するワークフローでのみ必要です。
クイックスタート
依存関係をインストールし、ローカル設定ファイルを作成します。
npm install
cp .env.example .env
.env に FITATU_EMAIL と FITATU_PASSWORD を設定し、開発サーバーを起動します。
npm run dev
デフォルトの MCP エンドポイントは http://localhost:3000/mcp です。
MCP クライアントの設定
MCP_TRANSPORT でトランスポートを 1 つ選択します。
| トランスポート | 最適な用途 | プロセスモデル |
|---|---|---|
stdio | 独自の MCP サーバーを起動するローカルクライアント | クライアントごとに 1 つのサーバープロセス |
http | 1 つ以上のクライアントで共有する常駐サーバー | /mcp 上で実行される長時間稼働サーバー |
stdio
クライアントを設定する前に、サーバーをビルドします。
npm run build
リポジトリ内の .env ファイルと dist/index.js ファイルには、絶対パスを使用してください。
{
"mcpServers": {
"fitatu": {
"command": "node",
"args": [
"--env-file=/absolute/path/to/fitatu-mcp-unofficial/.env",
"/absolute/path/to/fitatu-mcp-unofficial/dist/index.js"
],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}
クライアントがサーバーを起動および停止します。stdio モードでは、標準出力が JSON-RPC ストリーム用に予約されているため、ログは標準エラー出力に書き込まれます。
Streamable HTTP
npm run dev でサーバーを起動するか、ビルドして次のコマンドで実行します。
npm run build
npm start
Streamable HTTP にネイティブ対応しているクライアントは、次の URL に直接接続できます。
http://localhost:3000/mcp
コマンド経由でリモート MCP 接続を起動するクライアントでは、mcp-remote を使用します。
{
"mcpServers": {
"fitatu": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:3000/mcp"]
}
}
}
ローカルサーバーを対話形式で確認するには、次のコマンドを実行します。
npm run inspector
Inspector を http://localhost:3000/mcp に接続します。
ngrok を使用したリモート MCP アクセス
ngrok をインストールして認証します。.env で FITATU_* と
FITATU_INTEGRATION_* を使用して異なる 2 つの Fitatu アカウントを設定し、割り当てられたドメインを追加します。
NGROK_DOMAIN=your-assigned-domain.ngrok-free.dev
npm run dev:all # Both accounts and the tunnel
npm run dev:test-account # Test account only (alternative)
リモート Streamable HTTP 接続に対応している MCP クライアントで、認証なしで次のいずれかの URL を使用します。
- 個人用:
https://YOUR_NGROK_DOMAIN/personal/mcp - テスト用:
https://YOUR_NGROK_DOMAIN/test/mcp
利用可能なツール
| ツール | 目的 |
|---|---|
get_current_user | 認証済みユーザープロフィールの安全な項目を返します。 |
get_body_measurement | 最新の身体測定値、または省略可能な YYYY-MM-DD 日付の完全なエントリーを返します。 |
save_body_measurement | プロフィールの単位を使用して、YYYY-MM-DD 日付の身体測定値を部分的に更新します。 |
get_user_settings | 指定された日付と有効日を含む、日付に応じたエネルギー、計算値、水分の設定を返します。日付を省略した場合は、Fitatu のタイムゾーンで今日の日付が使用されます。 |
update_user_settings | 手動または自動のエネルギー目標を設定するか、水分の1回分の量を更新するか、両方の変更をまとめて適用します。 |
get_day_plan_items | YYYY-MM-DD 日付の食事と食品項目を返します。 |
get_diet_summary | 開始日と終了日を含む期間の栄養とエネルギーを要約します。 |
search_food | Fitatu の食品カタログを検索し、変更に使用できる識別子を返します。 |
search_food_by_barcodes | 公開食品カタログで最大10件のバーコードを並列検索します。 |
add_meal_items | 商品、レシピ、カスタム項目を食事に追加します。 |
update_meal_item | 量、計量単位、または摂取済みの状態を更新します。 |
replace_meal_item | 指定した食事エントリーを置き換えます。 |
move_meal_item | 項目を別の食事、日付、またはその両方に移動します。 |
remove_meal_items | UUID を指定して、デイリープランの選択したエントリーをまとめて削除します。 |
search_recipes | 非公開レシピ、公開レシピ、または両方のカタログを検索します。 |
get_recipe | 1人分あたりの標準的なレシピ詳細を返します。 |
create_recipe | 商品と計量単位の識別子を使用して非公開レシピを作成します。 |
update_recipe | 所有する編集可能なレシピを部分的に更新します。 |
delete_recipe | 名前が正確に一致することを確認した後、レシピを論理削除します。 |
設定
ランタイム設定は環境変数から読み込まれ、起動時に検証されます。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
FITATU_EMAIL | はい | — | Fitatu アカウントのメールアドレス。 |
FITATU_PASSWORD | はい | — | Fitatu アカウントのパスワード。 |
FITATU_INTEGRATION_EMAIL | 統合テストおよびトンネルコマンドで必要 | — | 専用 Fitatu テストアカウントのメールアドレス。 |
FITATU_INTEGRATION_PASSWORD | 統合テストおよびトンネルコマンドで必要 | — | 専用テストアカウントのパスワード。 |
MCP_TRANSPORT | いいえ | http | MCP トランスポート:http または stdio。 |
PORT | いいえ | 3000 | HTTP ポート。stdio モードでは使用されません。 |
HOST | いいえ | 0.0.0.0 | HTTP のバインドアドレス。stdio モードでは使用されません。トンネル起動ツールはループバックを強制します。 |
NODE_ENV | いいえ | development | development、production、または test。 |
SERVER_NAME | いいえ | fitatu-mcp | MCP サーバーが報告する名前。 |
SERVER_VERSION | いいえ | 3.0.0 | MCP サーバーが報告するバージョン。 |
LOG_LEVEL | いいえ | info | silent、error、warn、info、または debug。 |
FITATU_USER_AGENT | いいえ | Dart/3.10 (dart:io) | Fitatu モバイルランタイムのユーザーエージェント。 |
FITATU_APP_VERSION | いいえ | 4.14.4 | Fitatu モバイルアプリケーションのバージョン。 |
FITATU_API_APK_UUID | いいえ | BE4B.251210.005 | Fitatu モバイルビルドの識別子。 |
.env をコミットしないでください。モバイルクライアントのデフォルトプロファイルは、2026-07-30 に取得された Fitatu 4.14.4 の通信内容に一致しており、コードを変更せずに上書きできます。
Docker
現在のイメージビルドには、設定済みの .env ファイルが必要です。
cp .env.example .env
docker build -t fitatu-mcp .
docker run --name fitatu-mcp -p 3000:3000 fitatu-mcp
Dockerfile は .env をイメージにコピーします。生成されたイメージは機密情報として扱い、公開や共有をしないでください。
開発
| タスク | コマンド |
|---|---|
| 開発サーバー | npm run dev |
| ngrok を使用した両方のアカウント | npm run dev:all |
| ngrok を使用したテストアカウント | npm run dev:test-account |
| 本番ビルド | npm run build |
| ビルド済みサーバーの起動 | npm start |
| 型チェック | npm run typecheck |
| リント | npm run lint |
| フォーマットチェック | npm run format:check |
| カバレッジ付き単体テスト | npm run test:ci |
| ローカルカバレッジレポート | npm run test:coverage |
| 統合テスト | npm run test:integration |
npm run test:ci は決定論的に実行され、Fitatu の認証情報を読み込みません。統合テストでは、上記の専用 Fitatu テストアカウントを使用し、その食事プラン、レシピ、身体測定データを変更する場合があります。
レイヤーの境界と設計ルールについては ARCHITECTURE.md を、貢献ガイドラインについては CONTRIBUTING.md を参照してください。
ライセンス
MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。