Forkmate

ai.forkmate由 forkmate.ai 发布官方发布者v0.1.11更新于 Oct 24, 2026

Free AI calorie & macro tracker: tell your AI what you ate and it logs it to your private food diary

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

概览

AI 生成的概览

Forkmate 是一个托管的卡路里与营养素追踪服务,让助手把饮食记录写入私人饮食日记,并读取每日总计、偏好和常吃食物。

可以做什么
  • 记录、修改和删除饮食日记条目,包括条目中的单个食物
  • 读取某一天或某个日期范围的卡路里与营养素总计
  • 读取并编辑饮食档案:饮食风格、过敏原、喜好与不喜欢的食物
  • 读取最常记录和最近吃过的食物
  • 搜索 USDA FoodData Central、Open Food Facts 和餐厅菜单,或按条码查询包装食品
  • 记录健康数据同意、读取通知并发送反馈
适用场景
适合想通过和助手对话来记录饮食、而不想另开应用的人:随口描述吃了什么即可记录,询问今天摄入了多少卡路里或蛋白质,回顾一周情况。也适合集中保存过敏原和口味偏好,让建议更贴合个人情况。
运行要求
远程 MCP 服务器,使用 Forkmate 端点,无需安装。登录采用 OAuth 2.1(PKCE 与动态客户端注册),客户端在首次调用工具时打开登录页,因此需要 Forkmate 账号。免费,无付费档位,无需银行卡。
安装前请注意
饮食日记属于健康相关数据,由 Forkmate 存储;记录时可能需要用户在对话中明确同意,助手不能代为同意。删除为永久操作且无法撤销,修改会改变已保存的日记和档案数据。卡路里与营养素数值为估算,不适用于胰岛素剂量或其他医疗决定,自报的过敏原也不构成安全保证。反馈内容会由 Forkmate 保存。

安装

在 SourceWeft 中

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

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

交给智能体安装

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

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

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

其他 MCP 客户端

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

{
  "mcpServers": {
    "forkmate": {
      "type": "http",
      "url": "https://mcp.forkmate.ai/"
    }
  }
}

README

Forkmate — free AI calorie tracker MCP server (Claude, ChatGPT, Cursor)

[Add to Cursor] [Install in VS Code] [MCP Registry] [Glama]

Forkmate (forkmate.ai) is a free AI calorie and macro tracker you talk to. Tell your AI assistant what you ate, and it logs the meal with its calories, protein, carbs and fat to your private food diary. See the day in the web diary at app.forkmate.ai.

It is a hosted, remote MCP server. There is nothing to install or run: add one URL to your client and sign in.

Server URLhttps://mcp.forkmate.ai/
TransportStreamable HTTP
AuthOAuth 2.1 with PKCE and dynamic client registration. Your client opens the sign-in when it first calls a tool
PriceFree. No paid tier, no trial, no card, no ads
Registry nameai.forkmate/forkmate (server.json)
Setup guideforkmate.ai/connect

Connect your AI

Claude (claude.ai and Claude Desktop)

Settings → Connectors → Add custom connector → paste https://mcp.forkmate.ai/ → sign in.

Claude Code

sh
claude mcp add --transport http forkmate https://mcp.forkmate.ai/

ChatGPT

On a plan that offers developer mode, turn it on in ChatGPT's settings, create a developer-mode app with the URL https://mcp.forkmate.ai/, choose OAuth, and sign in.

Cursor

Click Add to Cursor above, or add this to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "forkmate": { "url": "https://mcp.forkmate.ai/" }  }}

VS Code (GitHub Copilot)

Click Install in VS Code above, or add this to .vscode/mcp.json:

json
{  "servers": {    "forkmate": { "type": "http", "url": "https://mcp.forkmate.ai/" }  }}

Windsurf

Add this to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "forkmate": { "serverUrl": "https://mcp.forkmate.ai/" }  }}

Cline

MCP Servers → Remote Servers → name forkmate, URL https://mcp.forkmate.ai/, transport Streamable HTTP. AI agents installing it can follow llms-install.md.

Gemini CLI

Add this to ~/.gemini/settings.json:

json
{  "mcpServers": {    "forkmate": { "httpUrl": "https://mcp.forkmate.ai/" }  }}

Any other MCP client

Add a remote HTTP MCP server with the URL https://mcp.forkmate.ai/ and complete the sign-in.

Then tell your assistant what you ate ("two eggs and toast for breakfast"), or ask "how many calories today?".

Tools

ToolWhat it does
log_mealLog what you ate to your diary
update_mealCorrect an entry already in your diary
delete_mealRemove an entry from your diary
get_dayRead one day's diary with calorie and macro totals
get_rangeRead a date range with per-day totals
get_preferencesRead your food profile: likes, dislikes, allergies and diet style
update_preferencesAdd or remove likes, dislikes and allergies, or set your diet style
get_usual_foodsRead the foods you eat most often and the last week's foods
search_foodsSearch USDA FoodData Central and Open Food Facts
lookup_barcodeLook up a packaged food by barcode (Open Food Facts)
whoamiConfirm which account is connected

Prompts

log-meal · log-photo · today-so-far · hit-protein · week-review · import-myfitnesspal

Your client shows these as ready-made starting points.

Coming from MyFitnessPal?

Export your MyFitnessPal data for free and bring your history across: forkmate.ai/migrate-from-myfitnesspal.

Privacy

Every call is scoped to your own signed-in account. Forkmate stores your food diary, which is health-related data. Read the privacy policy and the consumer health data policy. Export and account deletion are self-serve in the app.

Calorie and macro values are estimates. They are not suitable for insulin dosing or any other medical decision.

About this repository

This repository holds the public server manifest and setup instructions. The server itself is hosted at mcp.forkmate.ai; its source is not public.

Made by Shawn Azar. Support: [email protected].

来源:README.md,提交 e387fa0

工具

14

whoami

Who am I

Diagnostic: confirms that this connection is signed in to a Forkmate account. Returns no account id, email or other identifier.

无需输入参数。

get_day

Get day's diary

Read the user's food diary for one day: its entries, each listed with its `id` and each food with its item_index, quantity and macros, and calorie/macro totals. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数local_date

get_range

Get diary range

Read the user's food diary across a date range, with per-day calorie/macro totals and each entry listed with its `id`. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数end必填start必填

get_preferences

Get food profile

Read the user's food profile: diet style, allergies (a structured list of the major US allergens), foods they like, foods they dislike, and a typical-portion note. Allergies are self-reported and not a safety guarantee; the response includes an allergy_disclaimer. Likes and dislikes are taste preferences, not allergies or restrictions.

无需输入参数。

update_preferences

Update food profile

Edit the user's food profile: add or remove foods they like or dislike, add or remove allergies from the major US allergen list, or set their diet style. Only the fields sent change. A removal matches a saved name in any casing; a name that matches nothing is reported in `not_found` and nothing else is affected. Adding a food to likes takes it off dislikes, and the reverse. Lists hold up to 50 foods of up to 80 characters each. The reply is the whole updated profile. It saves what the user states about their own tastes and allergies, not inferences from the diary. Every call carries `user_approved: true`, meaning the user saw this exact change and said yes to it; a call without it changes nothing and returns the change for the user to approve. A user stating a preference (e.g. 'I dislike olives') has not approved saving it: approval is a later message agreeing to the change as proposed. The server cannot verify that a person gave the approval. Removals work without health-data consent and then return only what was removed. The user can see and edit the same profile in Forkmate's Settings.

输入参数add_likesdiet_styleadd_dislikesremove_likesadd_allergiesuser_approved必填remove_dislikesremove_allergies

get_usual_foods

Get usual foods

Read what the user usually and recently eats. `usual` lists their most-logged foods, most frequent first, each with how many times it was logged, the date last eaten, the meal it is usually logged under, and the portion and macros from the last time. `recent` lists each distinct food from the last seven days with the date last eaten, its meal and how many times. An optional `meal` narrows both lists to one meal. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数meal

log_meal

Log a meal

Add a meal to the user's food diary: one or more food items, each with an optional quantity and macros, plus an optional meal label, date, note and provenance `source`. The reply names the new entry's `id` and `local_date`, which identify it for a later edit or deletion. A restaurant meal's numbers depend most on the restaurant, the specific menu item, its size and its add-ons (cheese, fries, sauce, dressing); a bare dish name is logged as a typical serving. When the user names one of their saved recipes ("my chicken and rice", "half my chili"), send their words as one item's name, with any amount in quantity; Forkmate logs the recipe's own foods and numbers in its place. Portion amounts are checked against the user's own words for the meal when they arrive in `said`, and the reply lists each food with the amount it was logged at. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数atmealnotesaiditems必填sourcelocal_date

update_meal

Edit a logged food

Correct a food already in the user's diary — its name, quantity, macros, caffeine or fluid — or change an entry's meal label or note. The entry is identified by `id` and `local_date`, and a food by its `item_index`. Only the fields sent change; macros are merged onto the existing values and overwritten in place, with no history kept. A new `quantity` sent without `macros` rescales the food's macros, caffeine and fluid by the new amount ÷ the old one when both are the same kind of amount (a weight, a volume or a count), so '150 g' to '300 g' doubles them; otherwise the macros stay as they were and the reply says so. An entry cannot be moved to another day. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数id必填mealnamenotesaidmacrosfluid_mlquantityitem_indexlocal_date必填caffeine_mg

delete_meal

Delete a logged food

Delete one food from a diary entry (by `item_index`), or the whole entry (without it). The entry is identified by `id` and `local_date`. Deletion is permanent, with no undo; deleting the last food removes the entry, and an `id` that matches no entry on that date returns a not-found error and deletes nothing. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数id必填item_indexlocal_date必填

search_foods

Search foods

Search USDA FoodData Central, Open Food Facts and Forkmate's curated restaurant menus for a named food. Returns up to 5 candidates, each with macros per 100 g, a `source` label ('USDA', 'Open Food Facts', 'Forkmate' or 'product label', a packaged product's published label read from a cited page and not yet checked by Forkmate), and, when known, `serving_grams`/`serving_label` for one household serving. Curated chain-menu candidates include a `provenance` object that may carry a portion caveat. A query names a food (at least 2 letters, no wildcards); there is no paging. For a bare generic dish ("a burger", "coffee"), the reply also lists `details_that_change_it`: the details that change that dish's numbers most, such as where it is from, which item, its size and add-ons. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数limitquery必填

lookup_barcode

Look up barcode

Look up a packaged food by its UPC/EAN barcode in Open Food Facts. Returns macros per 100 g, a `source` label ('Open Food Facts'), and, when known, `serving_grams`/`serving_label` for one household serving. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

输入参数upc必填

send_feedback

Send feedback to Forkmate

Sends feedback to Forkmate to improve the app: a bug, a feature request, a food or nutrition figure that looked wrong (food_data), or something else. It is for feedback the user has asked to send, in the user's own words rather than a paraphrase. It changes nothing in the diary. The note is kept in the user's own account and deleted with it, and no reply is sent.

输入参数aboutratingmessage必填category

get_notifications

Get notifications

Reads the user's Forkmate notifications, newest first: notices that something the user reported was fixed, Forkmate release notes (what's new), and account messages. Each one has a kind, a title, a body, an optional link, the day it arrived and whether it is unread, and the reply includes the unread count. Read-only: reading marks nothing as read. Notifications older than 180 days are not kept.

输入参数limitunread_only

版本历史

5
  1. v0.1.11最新Oct 8, 2026
  2. v0.1.9Oct 8, 2026
  3. v0.1.7Oct 2, 2026
  4. v0.1.6Oct 1, 2026
  5. v0.1.4Sep 16, 2026

评分

已满足适用检查项的 90%

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

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

    请在仓库或注册中心条目中声明许可证。