尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗An open-source food label checker for ChatGPT and Claude. Ask "is this healthy?" with a barcode, a product name or a photo of the label. You get a 0-100 score with the reasons, the way Yuka or Oasis would show it, but inside your chat and with a scoring method anyone can read.
| Score | Rating |
|---|---|
| 75-100 | Excellent |
| 50-74 | Good |
| 25-49 | Poor |
| 0-24 | Bad |
How the score is built: docs/METHODOLOGY.md.
One MCP server serves both assistants. ChatGPT and Claude both implement the open MCP Apps standard, so the same score card renders inline in each of them:
ChatGPT / Claude ──MCP──▶ FoodChecker server ──▶ Open Food Facts API
▲ │
└──── score card (MCP Apps UI) + text summary
| Tool | What it does |
|---|---|
check_food | Look up a product by barcode or name, and score it |
analyze_label | Score a product from its label (photo or pasted text), including US per-serving labels |
find_healthier_alternatives | Find similar products that score clearly higher |
explain_additive | Explain an additive by E-number or name ("E471", "Red 40") with its risk level and sources |
All tools are read-only and need no login.
A public instance runs at https://foodchecker-ebon.vercel.app/mcp. Paste that URL into ChatGPT or Claude as shown below. You can try the score card in a browser at https://foodchecker-ebon.vercel.app.
npm install
npm run dev
npm test runs the scoring tests.npm run smoke calls every tool over MCP against live data while the server is running.Use the hosted URL or your own deployment. ChatGPT can't reach localhost.
https://foodchecker-ebon.vercel.app/mcp. Authentication: No authentication.To list it in the ChatGPT app directory, follow OpenAI's submission flow at platform.openai.com/plugins. FoodChecker already supports two of its requirements through environment variables:
OPENAI_APPS_CHALLENGE: the domain-verification token, served at /.well-known/openai-apps-challenge.CHATGPT_WIDGET_DOMAIN: your widget origin.You'll also need a privacy policy URL, a terms URL, test prompts and a demo video.
claude.ai or Claude Desktop: go to Customize → Connectors → Add custom connector, paste https://foodchecker-ebon.vercel.app/mcp, and choose No sign-in. The score card renders on web, desktop and mobile.
Claude Code, remote server: run claude mcp add --transport http foodchecker https://foodchecker-ebon.vercel.app/mcp.
Claude Code, local server: run claude mcp add foodchecker -- npx tsx /path/to/repo/src/stdio.ts.
Claude Code plugin with a usage skill: this repo is a plugin marketplace. It points at the hosted server. If you self-host, change the URL in plugins/foodchecker/.mcp.json. Then run:
/plugin marketplace add kjagsadvisors/foodchecker
/plugin install foodchecker@foodchecker
Claude Code shows text, not the score card. The text summary carries the same information.
The server is a standard web Request → Response handler (src/app.ts), so it runs almost anywhere.
docker build -t foodchecker . && docker run -p 3000:3000 foodcheckervercel deploy. vercel.json builds the project and routes everything to api/index.js.npm run build && npm startSet OFF_USER_AGENT to FoodChecker/0.1.0 (your contact email). Open Food Facts asks every app to identify itself. See .env.example for the other settings.
Rate limits: Open Food Facts allows roughly 15 product lookups and 10 searches per minute per IP. FoodChecker caches results in memory (products for 12 hours, searches for 1 hour). For heavy traffic, load the Open Food Facts data dump into your own database.
src/core/ scoring engine: Nutri-Score 2023, additive table, ingredient parser, 0-100 score
src/off/ Open Food Facts client and data normalisation
src/mcp/ MCP server, tool definitions, score-card widget, text summaries
src/app.ts web handler: /mcp, /preview, landing page
src/http.ts Node server src/stdio.ts local stdio server
plugins/ Claude Code plugin (MCP config + food-check skill)
test/ scoring tests scripts/ smoke test, dev MCP Apps host
The most useful contributions are:
src/core/additives.ts): challenge a risk level with a source, or add a missing additive and its label names in your language.src/core/ingredients.ts): label wording that gets missed. Add a test case in test/scoring.test.ts.npm run dev:host builds a small MCP Apps host on the official AppBridge. Then open /dev/host?barcode=… to check the widget the way ChatGPT and Claude embed it.
FoodChecker gives general information about packaged food. It is not medical advice.