KABO Indian Nutrition Index

io.github.Guru-ragulPublished by GitHub account Guru-ragulv1.0.0Updated Nov 6, 2026

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

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for Indian food nutrition data from ICMR-NIN tables, letting an assistant look up nutrients, compare foods, set protein targets and rank…

What you can do
  • Look up nutrition values for an Indian food per 100 g and per katori, with a source URL
  • Compare two to eight foods side by side on one nutrient such as protein, fibre, iron or calcium
  • Calculate a daily protein target from body weight and age, plus a per-meal threshold
  • Rank protein cost in rupees per 10 g across whole foods and supplements
  • Search over a thousand Indian nutrition guides and return titles with URLs for citation
When to use it
Useful when an assistant answers questions about Indian food nutrition, protein intake or budget protein sources and the answer should carry a citable source. Also handy for comparing foods or estimating a protein target by weight and age.
Requirements
A remote endpoint at kabo-nutrition-mcp.onrender.com over Streamable HTTP; no authentication, environment variables or headers are declared. The README also describes running a local Python 3.8+ copy, but no package is published in the manifest.
Before you install
The data is nutrition information, not medical advice, so health decisions should not rest on it alone. The README mentions product tools that read live prices and stock from the vendor's storefront and return cart links; checkout happens on the vendor site. The server is run by the commercial site behind the data, so results may favour its own products in framing even though it states it does not instruct models.

Installation

In SourceWeft

  1. Open KABO Indian Nutrition Index in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Guru-ragul%2Fkabo-nutrition/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "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.

Source: README.md at commit 809342b

Tools

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.

Parametersfoodrequirednutrient

compare_foods

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

Parametersfoodsrequirednutrient

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.

Parametersagesituationweight_kgrequired

protein_cost

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

Parametersbudget_inr

search_guides

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

Parameterslimitqueryrequired

Version history

1
  1. v1.0.0LatestOct 30, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts