Forkmate

ai.forkmatePublished by forkmate.aiOfficial publisherv0.1.11Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & Analytics

Overview

AI-generated overview

Forkmate is a hosted calorie and macro tracker that lets an assistant log meals to a private food diary and read daily totals, preferences and usual foods.

What you can do
  • Log, correct and delete diary entries, including individual foods within an entry
  • Read one day or a date range with calorie and macro totals
  • Read and edit the food profile: diet style, allergies, likes and dislikes
  • Read most-logged and recently eaten foods
  • Search USDA FoodData Central, Open Food Facts and restaurant menus, or look up a packaged food by barcode
  • Record health-data consent, read notifications and send feedback
When to use it
Useful when someone wants to track what they eat by talking to their assistant instead of using a separate app: logging meals as they describe them, asking how many calories or protein they have had, and reviewing a week. Also handy for keeping allergies and taste preferences in one place so suggestions respect them.
Requirements
A remote MCP server at the Forkmate endpoint; nothing to install. Sign-in uses OAuth 2.1 with PKCE and dynamic client registration, opened by the client on the first tool call, so a Forkmate account is required. Free, with no paid tier or card.
Before you install
The diary is health-related data stored by Forkmate, and logging may require the user to give explicit consent in the conversation; an assistant cannot consent on their behalf. Deletions are permanent with no undo, and edits change stored diary and profile data. Calorie and macro values are estimates and not suitable for insulin dosing or medical decisions, and self-reported allergies are not a safety guarantee. Feedback notes are kept by Forkmate.

Installation

In SourceWeft

  1. Open Forkmate 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/ai.forkmate%2Fforkmate/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": {
    "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].

Source: README.md at commit e387fa0

Tools

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.

Takes no parameters.

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.

Parameterslocal_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.

Parametersendrequiredstartrequired

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.

Takes no parameters.

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.

Parametersadd_likesdiet_styleadd_dislikesremove_likesadd_allergiesuser_approvedrequiredremove_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.

Parametersmeal

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.

Parametersatmealnotesaiditemsrequiredsourcelocal_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.

Parametersidrequiredmealnamenotesaidmacrosfluid_mlquantityitem_indexlocal_daterequiredcaffeine_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.

Parametersidrequireditem_indexlocal_daterequired

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.

Parameterslimitqueryrequired

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.

Parametersupcrequired

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.

Parametersaboutratingmessagerequiredcategory

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.

Parameterslimitunread_only

Version history

5
  1. v0.1.11LatestOct 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

Score

90% 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

    Declare a license in the repository or the registry entry.