关于 TACO Brasil
TACO Brasil 是一个 MCP 服务,为 AI 助手提供巴西 TACO 食物成分数据和家用计量数据。它支持食物查询、营养计算、餐食汇总和比较,并区分缺失值与零,且注明数据来源。
主要功能
- 01搜索 597 种巴西食物
- 02查询每 100 g 或按重量换算的营养成分
- 03计算餐食营养总量
- 04按所选营养素比较食物
- 05将家用计量换算为克
- 06保留缺失值并注明来源
适用场景
- 01查询巴西食物的营养成分
- 02估算一餐的营养总量
- 03比较不同食物的营养值
- 04将家用份量换算为克
MCP 相关
MCP 服务提供只读工具,可搜索食物、查询营养成分、计算和比较餐食或食物,并换算家用计量。支持 stdio 和 Streamable HTTP。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| echo | string | 否 | 要在消息中回显的可选文本。 |
详细介绍
taco-br-mcp
MCP 服务,让 AI 助手能够根据 TACO — Tabela Brasileira de Composição de Alimentos,第 4 版(NEPA/UNICAMP,2011)— 给出精确数据,而不是猜测。涵盖 597 种巴西食物、26 种营养素,数据均按每 100 g 可食部分计算,并包含 IBGE POF 中的家用计量单位(“2 colheres de sopa”“1 unidade”)。
**葡萄牙语简介:**提供《巴西食物成分表》(TACO)的 MCP 服务。可搜索食物、返回营养素、计算膳食总量,并将家用计量单位换算为克。每条回答都会注明来源,表中未提供的数据会标为“无数据”,绝不会记为零。
默认使用 stdio,适用于 Claude Desktop、Claude Code、Cursor 和其他本地 MCP 客户端。它也支持 Streamable HTTP(--http),ChatGPT 正是通过这种方式连接:请参阅远程 HTTP 和 ChatGPT。
安装
需要 Node.js 20 或更高版本。
Claude Code
claude mcp add taco-br -- npx -y taco-br-mcp
Claude Desktop(claude_desktop_config.json)和 Cursor(.cursor/mcp.json)
{
"mcpServers": {
"taco-br": { "command": "npx", "args": ["-y", "taco-br-mcp"] }
}
}
然后可以这样提问:“4 汤匙米饭、100 g carioca 豆和 100 g 烤鸡胸肉组成的一餐有多少 kcal?”
远程 HTTP 和 ChatGPT
ChatGPT 无法访问运行在你电脑上的服务,因此这些工具也可通过 Streamable HTTP 使用:
npx -y taco-br-mcp --http # http://127.0.0.1:3000/mcp
一个公共实例运行于 https://taco-br-mcp.taco-br-mcp.workers.dev/mcp(开放访问,无需登录,但有速率限制;尽力提供服务,不保证正常运行时间)。此仓库也提供 Cloudflare Workers 部署方案(免费计划,开放访问,并按 IP 限制速率)。分步部署说明及 ChatGPT 连接器设置(Settings → Apps & Connectors,开发者模式,身份验证选择“No authentication”)请参阅 docs/remote.md。
工具
| 工具 | 功能 |
|---|---|
search_food | 按葡萄牙语名称查找食物(不区分重音符号,可容忍拼写错误,并能识别 aipim/macaxeira/mandioquinha 等地区名称)。返回 ID 和每 100 g 的千卡数。 |
get_nutrients | 按 ID 获取一种食物的完整成分,数据按每 100 g 计算,也可按指定克数换算。微量值(Tr)表示为 {"trace":true};表格未公布的值为 null,绝不会是 0。 |
get_fatty_acids | 获取一种食物的脂肪酸组成(饱和脂肪酸、单/多不饱和脂肪酸、omega-3 和 omega-6、EPA、DHA、反式脂肪酸、单体脂肪酸)。597 种食物中只有 423 种列于该 TACO 表中;其他食物会标示 available: false,而非 0。 |
get_amino_acids | 获取一种食物的氨基酸组成(赖氨酸、亮氨酸、色氨酸等)。TACO 仅列出 26 种食物;对于其他食物,会说明这一点并列出这 26 种食物。 |
calc_meal | 汇总 [{food_id, grams}] 或 [{food_id, household_measure, quantity}] 中的营养成分。如果某项食物缺少某种营养成分的数据,总量会标记为 is_lower_bound,并列出缺少数据的食物。 |
compare_foods | 按所选营养成分并排比较 2 到 10 种食物,数据按每 100 g 计算。缺失数据仍为 null。 |
convert_household_measure | 将某种食物的“2 colheres de sopa”换算为克数,依据 IBGE POF 表,并通过人工整理的映射表(目前覆盖 204 种食物)。食物名称不明确时会返回候选项;未覆盖的食物或计量单位会报告出来,绝不猜测。 |
ping | 健康检查。 |
所有工具均为只读。每条响应都会注明来源:TACO 第 4 版(NEPA/UNICAMP,2011)。
如何处理缺失数据
Tr(微量,低于定量限)表示为{"trace": true},绝不会是 0。- 表格未公布的值为
null,显示为“sem dado na TACO”,绝不会是 0。来源以三种方式标记这些单元格(NA、表示“分析正在重新评估”的*,或空白);处理后的 CSV 会将它们合并,因此服务不会区分这些情况。例如,全脂牛奶没有公布能量或蛋白质数据。 - 脂肪酸和氨基酸数据来自单独的 TACO 表,仅覆盖部分食物(597 种中分别为 423 种和 26 种)。不在表中的食物会标示
available: false,绝不会返回一行全为 0 的数据。在氨基酸表中,TACO 将低于 0.005 g/100 g 的含量打印为0,00;这是已公布的值(显示为 0 或较小数值),不是缺失数据。 - 某项食物缺少某种营养成分的数据时,
calc_meal的总量为下限:响应会指出缺少数据的食物。 - 家用计量单位的重量是 POF/IBGE 平均值,并不代表你盘中的实际重量。仅映射了 POF 描述与食物相符的食物和计量单位;其他情况均会报告为未覆盖。
小型评估
关于 TACO 的 15 个问题,由 claude -p 在有无服务的情况下作答,每种情况重复 3 次(每个模型运行 90 次,2026 年 10 月 30 日),共使用 3 个模型。数值答案与表中数值相差不超过 5% 即视为正确;对于两个“诚实性”问题,只有在回答 TACO 未发布该数值(全脂牛奶的能量值),或指出总量是最低值(含鸡肉的一餐的纤维含量;鸡肉没有纤维值)时才算正确。
| 类别 | Haiku 5.5 无服务 / 有服务 | Sonnet 5.5 无服务 / 有服务 | Opus 5.5 无服务 / 有服务 |
|---|---|---|---|
| 直接查询 | 12/18 / 18/18 | 16/18 / 18/18 | 18/18 / 18/18 |
| 按克数换算 | 9/9 / 9/9 | 9/9 / 9/9 | 9/9 / 9/9 |
| 比较 | 3/3 / 3/3 | 3/3 / 3/3 | 3/3 / 3/3 |
| 家用计量单位 | 3/6 / 6/6 | 1/6 / 6/6 | 3/6 / 6/6 |
| 整餐 | 3/3 / 3/3 | 0/3 / 3/3 | 3/3 / 3/3 |
| 诚实性 | 1/6 / 6/6 | 3/6 / 6/6 | 3/6 / 6/6 |
| 总计 | 31/45 / 45/45 | 32/45 / 45/45 | 39/45 / 45/45 |
| 运行 90 次的成本 | US$ 0.22 | US$ 3.10 | US$ 5.78 |
解读:使用服务时,三个模型都得分 45/45。不使用服务时,得分为 31 至 39 分(满分 45),且各模型的错误各不相同。Haiku 会给出记忆中的单一食物数值,但这些数值有误(香蕉煎饼的维生素 C、熟扁豆的铁含量);它会将这些数值标记为未经验证,却不会指出整餐的纤维总量是最低值。Sonnet 对家用计量单位和整餐问题大多回答“无数据”。Opus 记得大多数单一数值,但仍会猜测计量单位对应的重量(2 个水煮蛋)。三个模型在全部 3 次运行中都回答全脂牛奶含 61 kcal,但 TACO 并未发布这一数值。还有一个副作用:使用服务时,Haiku 仅在 45 个答案中的 13 个重复了 TACO 引文(工具输出始终附带该引文);Sonnet 和 Opus 则在 45 个答案中全部重复。局限:15 个问题、重复 3 次、基于规则评分(5% 的容差将一个未使用 MCP 的 Sonnet 答案判为正确,尽管其中的米饭数值有误,但总和接近正确值)。问题、答案键和原始答案位于 eval/(每个模型一个文件夹);如需复现:npm run build && node eval/run.mjs --model claude-haiku-5-5 && node eval/score.mjs --all --detail。
开发
npm install
npm run build
npm test
npm run inspect # MCP Inspector against dist/server.js
npm run build:data -- --fetch # regenerate data/ from the pinned upstream CSVs
切勿写入 stdout(console.log):它是协议通道。请使用 console.error。项目规则请参阅 AGENTS.md。
数据与许可
代码:MIT。营养数据:TACO 第 4 版,NEPA/UNICAMP(2011)。家用计量单位重量:来源:IBGE,POF 2008-2009,《巴西消费食品参考计量单位表》——克数来自 IBGE,未经更改;TACO 与 POF 食品之间的对应关系由本项目整理,相关责任由本项目承担。来源、处理过程和固定版本请参阅 NOTICE.md。如将其用于研究,请参阅 CITATION.cff。这不是医疗或营养建议。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。