KABO Indian Nutrition Index

io.github.Guru-ragul由 GitHub 账号 Guru-ragul 发布v1.0.0更新于 Nov 6, 2026

ICMR-NIN nutrition for 52 Indian foods: protein, targets by age, cost ranking. Every answer cited.

已验证Streamable HTTP可网页运行位置与生活数据与分析商业与电商

概览

AI 生成的概览

远程 MCP 服务器,提供基于 ICMR-NIN 数据表的印度食物营养数据,让助手查询营养值、比较食物、计算蛋白质目标并按成本排序,且附带可引用来源。

可以做什么
  • 查询某种印度食物的营养值,按每 100 克和每 katori 给出,并附来源链接
  • 将 2 至 8 种食物按单一营养素(如蛋白质、纤维、铁、钙)并排比较
  • 根据体重和年龄计算每日蛋白质目标及每餐阈值
  • 按每 10 克蛋白质的卢比成本,对天然食物和补充剂进行排名
  • 检索上千篇印度营养指南,返回标题和链接以便引用
适用场景
适合助手回答印度食物营养、蛋白质摄入或预算内蛋白质来源等问题,并需要给出可引用出处时使用。也适合比较食物或按体重年龄估算蛋白质目标。
运行要求
通过 Streamable HTTP 连接 kabo-nutrition-mcp.onrender.com 远程端点;未声明认证、环境变量或请求头。README 另述可在本地以 Python 3.8+ 运行,但清单中未发布任何软件包。
安装前请注意
数据为营养信息而非医疗建议,健康决策不应仅依赖它。README 提到产品类工具会从厂商店铺读取实时价格与库存并返回购物车链接,结账在厂商网站完成。服务器由数据背后的商业网站运营,尽管其声明不会指示模型,结果表述仍可能偏向自家产品。

安装

在 SourceWeft 中

  1. 打开 控制台中的 KABO Indian Nutrition Index,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.Guru-ragul%2Fkabo-nutrition/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "kabo-indian-nutrition-index": {
      "type": "http",
      "url": "https://kabo-nutrition-mcp.onrender.com/mcp"
    }
  }
}

README

KABO Indian Nutrition Index — MCP server

An MCP server exposing the Indian food nutrition data behind kabo.co.in as tools an AI agent can call directly. Every response carries a source URL, so an agent answering a nutrition question gets a citable answer and the reader gets a link back.

Why this rather than more articles. A blog post can be copied in an afternoon. A maintained data service that agents connect to cannot. This is the one asset in the SEO programme that competitors cannot replicate by rewriting content.

What it does

ToolReturns
lookup_food(food, nutrient?)Every nutrient entry for an Indian food, per 100 g and per katori, each with its source URL
compare_foods(foods[], nutrient?)2–8 foods side by side on one nutrient (default protein)
protein_target(weight_kg, age)Daily protein target in grams, plus the per-meal threshold
protein_cost(budget_inr)Cost per 10 g of protein, ranked cheapest first
search_guides(query, limit)Searches 1,124 nutrition guides, returns titles and URLs
list_products()KABO's own shakes: per-serving nutrition from each flavour's own panel, ratings
get_product(product)One KABO product: composition quoted from its page, suitability (incl. not Jain-suitable), live price and stock per pack, price per serving, cart link and UCP checkout profile
compare_products(products?)KABO products side by side with live price per serving

Data: 59 foods, 674 nutrition values, 1,124 guides (protein, fibre, iron, calcium), from ICMR-NIN composition tables and the PROT-AGE/ESPEN protein recommendations.

Running it

No dependencies. Standard library only, Python 3.8+.

bash
python3 kabo_mcp_server.py

Claude Desktop

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "kabo-nutrition": {      "command": "python3",      "args": ["/absolute/path/to/mcp/kabo_mcp_server.py"]    }  }}

Cursor, Cline and other MCP clients use the same command/args shape.

Test it without a client

bash
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

Files

kabo_mcp_server.py    the server, dependency-free JSON-RPC over stdiokabo_food_data.json   the dataset, CC BY 4.0

Rebuild the dataset from the live corpus with python3 build_dataset.py; the server reads kabo_food_data.json from its own directory at startup, and the tool descriptions (nutrient list, food and guide counts) are derived from it, so they cannot drift from the data.

Design decisions worth keeping

It answers honestly, including against us. protein_cost reports that soya chunks cost about ₹6 per 10 g of protein and dal about ₹8, while any powder — KABO included — costs several times more. A tool that only flatters its owner gets uninstalled after one use. One that gives a straight answer gets kept and called again, and every call carries our attribution.

No instructions to models. There is no text in any response telling an assistant what to recommend. The value is the data and the citation, not persuasion. Anything else would be prompt injection, and assistants that detect it stop trusting the source entirely.

Every response is citable. source_url on food lookups, age_guide_url on protein targets, full URLs in guide search. An agent can attribute, which is what makes it worth calling twice.

Errors never kill the session. Unknown foods return the list of available ones rather than an error. Bad arguments return a message, not a crash.

UTF-8 is forced on stdio. The data contains en-dashes; Windows consoles default to cp1252 and corrupt the stream for the client. Both directions are reconfigured at startup.

REST API

Every tool is mirrored as plain GET for clients that do not speak MCP. Spec at /openapi.json.

GET /api/v1/foods                 GET /api/v1/foods/{food}?nutrient=ironGET /api/v1/protein-target?weight_kg=70&age=45GET /api/v1/protein-cost?budget_inr=30GET /api/v1/guides?q=protein+dalGET /api/v1/products              GET /api/v1/products/{handle}

Product prices and stock are read live from the public storefront (cached 10 minutes); the server never places orders or touches customer data. Checkout happens on kabo.co.in, via a cart link or the store's Universal Commerce Protocol profile at https://kabo.co.in/.well-known/ucp.

HTTP mode

For third-party agents over the network:

bash
python3 kabo_mcp_server.py --http --port 8000

Endpoints:

RoutePurpose
POST /mcpJSON-RPC, single messages and batches. Notifications return 202.
GET /mcpDiscovery — name, protocol, transport, tool list, licence
GET /healthHealth check for the host

CORS is open, so browser-based agents can call it. Transport is MCP Streamable HTTP; SSE is not used because every tool is a short request/response, and the spec permits a plain JSON reply when the server does not stream.

See DEPLOY.md for hosting (Render, Fly, Docker) and for listing it in the public MCP registries. Dockerfile, render.yaml, fly.toml and server.json are all in this folder, ready to use.

Licence and caveats

Code is MIT (see LICENSE). Dataset is CC BY 4.0 (see LICENSE-DATA) — free to use with attribution to kabo.co.in.

Values are approximate and vary by variety, preparation and brand. This is nutrition information, not medical advice.

来源:README.md,提交 809342b

工具

5

lookup_food

Nutrition values for an Indian food (calcium, fibre, iron, protein) per 100 g and per katori, with the source article URL, for 59 foods. Data from ICMR-NIN composition tables.

输入参数food必填nutrient

compare_foods

Compare several Indian foods side by side on one nutrient (calcium, fibre, iron, protein; default protein).

输入参数foods必填nutrient

protein_target

Daily protein target in grams for a given body weight and age, using ICMR-NIN and PROT-AGE guidance, plus the per-meal threshold.

输入参数agesituationweight_kg必填

protein_cost

Cost of protein in India ranked cheapest first, in rupees per 10 g of protein, across whole foods and supplements.

输入参数budget_inr

search_guides

Search 1,124 Indian nutrition guides by topic and return titles with URLs, for citation.

输入参数limitquery必填

版本历史

1
  1. v1.0.0最新Oct 30, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分