KABO Indian Nutrition Index について
KABO Indian Nutrition Indexは、インドの食品栄養データ、タンパク質目標、コスト比較をAIエージェントに提供します。栄養情報の検索や食品比較に使え、回答には出典URLが付き、ガイド検索とKABO製品情報にも対応します。
主な機能
- 01出典URL付き食品栄養値の検索
- 02食品間の栄養比較
- 031日のタンパク質目標の計算
- 04タンパク質コストによる食品順位付け
- 05栄養ガイド検索と製品情報の照会
活用シーン
- 01インド食品の1食分の栄養確認
- 02食品ごとのタンパク質量の比較
- 03予算内のタンパク質源の検索
- 04栄養ガイドや製品情報の検索
MCP 対応
MCP サーバーとして、食品の栄養検索と比較、タンパク質目標とコストの計算、ガイド検索、製品照会のツールをエージェントに提供します。stdioとStreamable HTTPに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://kabo-nutrition-mcp.onrender.com/mcpclaude mcp add --transport http guru-ragul-kabo-nutrition https://kabo-nutrition-mcp.onrender.com/mcp{"mcpServers":{"guru-ragul-kabo-nutrition":{"type":"http","url":"https://kabo-nutrition-mcp.onrender.com/mcp"}}}Cursor で開く{"servers":{"guru-ragul-kabo-nutrition":{"type":"http","url":"https://kabo-nutrition-mcp.onrender.com/mcp"}}}VS Code で開く{"mcpServers":{"guru-ragul-kabo-nutrition":{"type":"http","url":"https://kabo-nutrition-mcp.onrender.com/mcp"}}}{"mcpServers":{"guru-ragul-kabo-nutrition":{"serverUrl":"https://kabo-nutrition-mcp.onrender.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
KABO インド栄養インデックス — MCP サーバー
kabo.co.in のインド食品栄養データを、AI エージェントが直接呼び出せるツールとして公開する MCP サーバーです。すべての応答に参照元 URL が含まれるため、栄養に関する質問に答えるエージェントは出典を示せる回答を得られ、読者は元のページへのリンクを確認できます。
記事を増やすよりも、これを選ぶ理由。 ブログ記事なら午後のうちにコピーできます。しかし、エージェントが接続する、継続的に保守されたデータサービスはコピーできません。これは、コンテンツを書き換えて競合他社が再現できない、SEO 施策における唯一の資産です。
できること
| ツール | 戻り値 |
|---|---|
lookup_food(food, nutrient?) | インド食品のすべての栄養項目を、100 g あたりと 1 カトリあたりで返します。それぞれに参照元 URL が付属します |
compare_foods(foods[], nutrient?) | 2〜8 種類の食品を、1 つの栄養素(デフォルトはタンパク質)で横並びに比較します |
protein_target(weight_kg, age) | 1 日のタンパク質目標量(g)と、1 食あたりの基準量を返します |
protein_cost(budget_inr) | タンパク質 10 g あたりのコストを、安い順に並べて返します |
search_guides(query, limit) | 1,124 件の栄養ガイドを検索し、タイトルと URL を返します |
list_products() | KABO のシェイクを一覧表示します。各フレーバーのパッケージ表示に基づく 1 食分あたりの栄養情報と評価を返します |
get_product(product) | KABO 製品 1 点のページに記載された成分、適合性(ジャイナ教徒向けではない場合を含む)、パックごとのリアルタイム価格と在庫、1 食分あたりの価格、カートへのリンク、UCP チェックアウトプロファイルを返します |
compare_products(products?) | KABO 製品をリアルタイムの 1 食分あたりの価格で横並びに比較します |
データ:59 種類の食品、674 件の栄養値、1,124 件のガイド(タンパク質、食物繊維、鉄、カルシウム)。ICMR-NIN の食品成分表と、PROT-AGE/ESPEN のタンパク質推奨値に基づいています。
実行方法
依存関係はありません。標準ライブラリのみを使用します。Python 3.8 以降が必要です。
python3 kabo_mcp_server.py
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"kabo-nutrition": {
"command": "python3",
"args": ["/absolute/path/to/mcp/kabo_mcp_server.py"]
}
}
}
Cursor、Cline、その他の MCP クライアントでも同じ command/args の形式を使用します。
クライアントなしでテストする
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
'{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"lookup_food","arguments":{"food":"rajma"}}}' \
| python3 kabo_mcp_server.py
ファイル
kabo_mcp_server.py the server, dependency-free JSON-RPC over stdio
kabo_food_data.json the dataset, CC BY 4.0
python3 build_dataset.py を実行すると、公開中のコーパスからデータセットを再構築できます。サーバーは起動時に自身のディレクトリから kabo_food_data.json を読み込みます。また、ツールの説明に含まれる栄養素一覧、食品数、ガイド数もこのデータから生成されるため、実データと食い違うことはありません。
維持すべき設計上の判断
自社に不都合な場合も含め、正直に回答します。 protein_cost は、大豆ミートがタンパク質 10 g あたり約 ₹6、ダルが約 ₹8 である一方、粉末製品は KABO のものも含めて数倍高いことを示します。所有者を称賛するだけのツールは、1 度使われたらアンインストールされます。率直に答えるツールなら使い続けてもらえ、再び呼び出されます。そして、呼び出しのたびに自社の情報も記載されます。
モデルへの指示はありません。 アシスタントに何を勧めるべきか指示する文言は、応答に一切含まれていません。価値があるのはデータと出典であり、説得ではありません。それ以外の内容はプロンプトインジェクションとなり、それを検出したアシスタントは参照元をまったく信頼しなくなります。
すべての応答に出典を示せます。 食品検索では source_url、タンパク質目標では age_guide_url、ガイド検索では完全な URL を返します。エージェントは出典を明記できます。それが、再び呼び出す価値につながります。
エラーによってセッションが終了することはありません。 不明な食品が指定された場合は、エラーではなく利用可能な食品の一覧を返します。不正な引数に対しては、クラッシュせずメッセージを返します。
標準入出力では UTF-8 を強制します。 データにはエンダッシュが含まれます。Windows のコンソールはデフォルトで cp1252 を使用するため、そのままではクライアント向けのストリームが破損します。起動時に入出力の両方を再設定します。
REST API
MCP に対応していないクライアント向けに、すべてのツールを通常の GET としても提供しています。仕様は /openapi.json にあります。
GET /api/v1/foods GET /api/v1/foods/{food}?nutrient=iron
GET /api/v1/protein-target?weight_kg=70&age=45
GET /api/v1/protein-cost?budget_inr=30
GET /api/v1/guides?q=protein+dal
GET /api/v1/products GET /api/v1/products/{handle}
製品の価格と在庫は公開ストアフロントからリアルタイムで取得されます(10 分間キャッシュ)。サーバーが注文を行ったり、顧客データを扱ったりすることはありません。チェックアウトは kabo.co.in で、カートへのリンクまたはストアの Universal Commerce Protocol プロファイル(https://kabo.co.in/.well-known/ucp)を通じて行います。
HTTP モード
ネットワーク経由でサードパーティ製エージェントを利用する場合:
python3 kabo_mcp_server.py --http --port 8000
エンドポイント:
| ルート | 用途 |
|---|---|
POST /mcp | JSON-RPC。単一メッセージとバッチに対応します。通知には 202 を返します。 |
GET /mcp | 検出 — 名前、プロトコル、トランスポート、ツール一覧、ライセンス |
GET /health | ホストのヘルスチェック |
CORS はオープンなので、ブラウザベースのエージェントから呼び出せます。トランスポートは MCP Streamable HTTP です。各ツールは短いリクエスト/レスポンスであり、仕様ではサーバーがストリーミングしない場合にプレーンな JSON レスポンスが認められているため、SSE は使用しません。
ホスティング(Render、Fly、Docker)と、公開 MCP レジストリへの登録については、DEPLOY.md を参照してください。Dockerfile、render.yaml、fly.toml、server.json はすべてこのフォルダーにあり、そのまま使用できます。
ライセンスと注意事項
コードは MIT ライセンスです(LICENSE を参照)。データセットは CC BY 4.0 です(LICENSE-DATA を参照)。kabo.co.in のクレジットを表示すれば、自由に使用できます。
数値は概算であり、品種、調理方法、ブランドによって異なります。これは栄養情報であり、医療上のアドバイスではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。