尚未偵測到更新。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.