indian-food-nutrition-mcp について
indian-food-nutrition-mcpは、IFCT 2017とUSDAのデータを使い、AIアシスタントによるインド料理の記録と栄養検索を可能にするMCPサーバーです。テキストや写真での記録、家庭で使う単位に対応し、データはSQLiteとCSVにローカル保存します。
主な機能
- 01IFCTとUSDAの食品検索
- 02家庭で使う単位で食事を記録
- 031日の栄養合計を照会
- 04期間別の摂取履歴を確認
- 05食事記録の編集と削除
- 06URLから食事写真を取得
活用シーン
- 01インドの家庭料理と分量の記録
- 021日のタンパク質やカロリー摂取量の確認
- 03週ごとの食事記録を見直して助言に活用
- 04料理の写真を使った食事記録
MCP 対応
MCPサーバーとして、食品検索、食事記録、日次・履歴照会、記録編集、画像取得のツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
indian-food-nutrition-mcp
AI アシスタントが、ついにインド料理のカロリーを正しく計算できるようになります。
Claude(近日中にChatGPTにも対応予定)を通じて、自然な言葉で食事を記録できるMCPサーバーです。*「ロティ2枚とカトーリ1杯のダール」*のように入力するか、食事の写真を送るだけです。カロリーとマクロ栄養素の算出には、**インドの公式食品成分データ(IFCT 2017、国立栄養研究所)**と、それ以外の食品についてはUSDAのデータを使用します。ロティをトルティーヤとみなすような、米国中心のデータベースには頼りません。
理由
人気のあるカロリーデータベースは、どれもUSDAのデータを基にしています。家庭料理のインド料理には不正確です。使っている油も調理法も違い、カトーリやイドゥリも載っていません。インド料理の優れたデータベースを持つアプリは1つありますが、APIを提供せず、サブスクリプションの利用者だけに限定しています。一方、インド政府は実際のデータを公開しています。このプロジェクトは、そのデータを、すでに使っているAIから利用できるようにし、実際に食べたものをAIが記憶できるようにします。
- インド料理に正確: ハイデラバードのNINがインドの6地域で測定したIFCT 2017のデータを使用しています。ギー、アッタ、ダール類、地域ごとの品種を収録しています。
- それ以外の食品も網羅: USDAの食品・飲料7,800品目以上(パブリックドメイン)。
- 家庭で使う単位に対応: カトーリ、皿、個、カップ単位で記録できます。数量の入力は必須です。分量を推測せず、モデルが確認します。
- 写真で記録: Claudeに食事の写真を見せられます(アップロードまたは
fetch_image経由のURL)。 - AIが食事を記憶:
get_historyで実際の摂取内容を取得できるため、AIはデータに基づいて(「トレーニング日はタンパク質が不足しています」など)アドバイスできます。感覚に頼る必要はありません。 - ローカル優先でプライベート: お使いのマシン上のSQLiteに保存し、常に最新のCSVミラーを
~/.nutrition-mcp/meals.csvに保持します。アカウントもクラウドもテレメトリーも不要です。
クイックスタート(Claude Desktop)
npm install -g indian-food-nutrition-mcp
claude_desktop_config.jsonに追加します(Settings → Developer → Edit Config):
{
"mcpServers": {
"nutrition": {
"command": "indian-food-nutrition-mcp"
}
}
}
Claude Desktopを再起動して、あとは話しかけるだけです:
「朝食を記録して:イドゥリ3個と小さなボウル1杯のサンバル」 「今日はタンパク質をどれくらい摂りましたか?」 「昼食の写真です。記録してください」 「先週の食事を確認して、食生活の問題点を教えてください」
ツール
| ツール | 機能 |
|---|---|
search_food | 食品8,300品目以上(IFCT + USDA)を検索し、100gあたりのカロリー・タンパク質・炭水化物・脂質・食物繊維を表示 |
log_meal | 数量と家庭で使う単位を必須として、食品を記録。マクロ栄養素はデータベースから算出 |
get_day | 1日分の記録と合計 |
get_history | 指定期間の日ごとの合計。AIによるコーチングに使うコンテキストブロック |
edit_entry / delete_entry | 記録を修正し、履歴の正確さを保つ |
fetch_image | URLから食事の写真を取得し、モデルが確認して記録できるようにする |
データとライセンス
コードはAGPL-3.0-or-laterです。バンドルされているデータはIFCT 2017 + USDA SR Legacy(パブリックドメイン)です。INDBの調理済み料理データセット(料理としてのダール、ドーサ、イドゥリと1人前の分量)はコードでサポートされていますが、作成者からライセンスが付与されるまで再配布しません。npm run build:indbを実行すると、個人利用のためにローカルで生成できます。データの完全な出典情報はDATA_SOURCES.mdを参照してください。
ホスト版(ChatGPT、モバイル、セットアップ不要)
このローカルサーバーは、現在Claude Desktopで利用できます。ChatGPTコネクターとして動作し、デバイス間で同期するホスト版も近日公開予定です。早期に利用するには、「hosted」というタイトルでissueを作成するか、リリース情報をフォローしてください。
ストレージ
~/.nutrition-mcp/nutrition.db(SQLite、WAL)+ ~/.nutrition-mcp/meals.csv(自動更新されるミラー)。NUTRITION_DB_PATH / NUTRITION_CSV_PATHで保存先を上書きできます。
クレジット
- Indian Food Composition Tables 2017、National Institute of Nutrition、Hyderabad(
@nodef/ifct2017パッケージ経由、AGPL) - USDA FoodData Central、SR Legacy
- Indian Nutrient Databank(Jaacks Lab)、コードでのサポートのみ。データはライセンス待ち
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。