# io.github.fliptheweb/fatsecret-mcp (npm · fatsecret-mcp)

MCP server for FatSecret API - food search, nutrition, diary, recipes, weight tracking (unofficial)

- Trust score: 75/100 (medium)
- Change this week: +32
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `fatsecret-mcp`: 75/100 (this document), [markdown](https://verifymcp.io/servers/fliptheweb-fatsecret-mcp/fatsecret-mcp.md), [page](https://verifymcp.io/servers/fliptheweb-fatsecret-mcp/fatsecret-mcp)

## Channel facts

- Registry: `npm`
- Package: `fatsecret-mcp`
- Version: `0.0.8`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (97 of 101), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (97 of 101), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to fliptheweb/fatsecret-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 3093 tokens (~70/item across 44 items; 44 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 80/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 41% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add fliptheweb-fatsecret-mcp -- npx -y fatsecret-mcp
```

### Codex

```bash
codex mcp add fliptheweb-fatsecret-mcp -- npx -y fatsecret-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "fliptheweb-fatsecret-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "fatsecret-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add fliptheweb-fatsecret-mcp --command npx --arg -y --arg fatsecret-mcp
```

### Hermes

```yaml
mcp_servers:
  fliptheweb-fatsecret-mcp:
    command: "npx"
    args: ["-y", "fatsecret-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "fliptheweb-fatsecret-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "fatsecret-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 75, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 71, +66)

- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [security] The attested source repository moved: fliptheweb/fatsecret-mcp
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → fair
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 5, −3)

- [functional regression] Dependency health: partial → unverified

### 2026-07-31 (score 8, −16)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 24, −19)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 43)

First indexed and scored.

## MCP tools (44)

### `search_foods` (~114 tokens)

Search the FatSecret food database. Returns food names, descriptions, and basic nutrition info.

Input parameters:

- `flag_default_serving` (boolean)
- `food_type` (string)
- `include_food_attributes` (boolean)
- `include_food_images` (boolean)
- `include_sub_categories` (boolean)
- `language` (string)
- `max_results` (number)
- `page_number` (number)
- `region` (string)
- `search_expression` (string, required): Search query for foods

### `get_food` (~99 tokens)

Get detailed nutritional information for a specific food by ID. Returns servings, calories, macros, and micronutrients.

Input parameters:

- `flag_default_serving` (boolean)
- `food_id` (integer, required): Food ID
- `include_food_attributes` (boolean)
- `include_food_images` (boolean)
- `include_sub_categories` (boolean)
- `language` (string)
- `page_number` (number)
- `region` (string)

### `find_food_by_barcode` (~102 tokens)

Find food by barcode (GTIN-13). UPC-A, EAN-13 and EAN-8 supported. Premier exclusive.

Input parameters:

- `barcode` (string, required): GTIN-13 barcode number
- `flag_default_serving` (boolean)
- `include_food_attributes` (boolean)
- `include_food_images` (boolean)
- `include_sub_categories` (boolean)
- `language` (string)
- `region` (string)

### `autocomplete_foods` (~54 tokens)

Get autocomplete suggestions for a partial food search expression. Premier exclusive.

Input parameters:

- `expression` (string, required): Partial search expression
- `language` (string)
- `max_results` (number)
- `region` (string)

### `search_recipes` (~177 tokens)

Search recipes with optional filters for calories, macros, prep time, and recipe types.

Input parameters:

- `calories.from` (number)
- `calories.to` (number)
- `carb_percentage.from` (number)
- `carb_percentage.to` (number)
- `fat_percentage.from` (number)
- `fat_percentage.to` (number)
- `max_results` (number)
- `must_have_images` (boolean)
- `page_number` (number)
- `prep_time.from` (number)
- `prep_time.to` (number)
- `protein_percentage.from` (number)
- `protein_percentage.to` (number)
- `recipe_types` (string)
- `recipe_types_matchall` (boolean)
- `search_expression` (string): Search query for recipes
- `sort_by` (string)

### `get_recipe` (~48 tokens)

Get detailed recipe information by ID including ingredients, directions, and nutrition.

Input parameters:

- `max_results` (number)
- `page_number` (number)
- `recipe_id` (integer, required): Recipe ID

### `get_food_categories` (~34 tokens)

Get the full list of food categories. Premier exclusive.

Input parameters:

- `language` (string)
- `region` (string)

### `get_food_sub_categories` (~49 tokens)

Get food sub categories for a given food category. Premier exclusive.

Input parameters:

- `food_category_id` (integer, required): Food category ID
- `language` (string)
- `region` (string)

### `get_brands` (~57 tokens)

Get the list of food brands, optionally filtered by starting letter and type. Premier exclusive.

Input parameters:

- `brand_type` (string)
- `language` (string)
- `region` (string)
- `starts_with` (string)

### `get_recipe_types` (~19 tokens)

Get the full list of supported recipe type names.

### `get_food_entries` (~61 tokens)

Get food diary entries for a date or a specific entry by ID. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Date in YYYY-MM-DD (required if food_entry_id not specified)
- `food_entry_id` (number)

### `get_food_entries_month` (~51 tokens)

Get daily nutrition summary for a month. Returns calories and macros per day. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Any date within the target month (YYYY-MM-DD)

### `create_food_entry` (~108 tokens)

Add a food diary entry. Requires food_id, serving_id, and meal type. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Date in YYYY-MM-DD format (default today)
- `food_entry_name` (string, required): Name for the food entry
- `food_id` (integer, required): Food ID
- `meal` (string, required): Meal type
- `number_of_units` (number, required): Number of serving units
- `serving_id` (integer, required): Serving size ID

### `edit_food_entry` (~79 tokens)

Edit an existing food diary entry. Cannot change the date. Requires profile auth (check_auth_status first).

Input parameters:

- `food_entry_id` (integer, required): Food entry ID to edit
- `food_entry_name` (string)
- `meal` (string): Meal type
- `number_of_units` (number)
- `serving_id` (number)

### `delete_food_entry` (~40 tokens)

Delete a food diary entry by ID. Requires profile auth (check_auth_status first).

Input parameters:

- `food_entry_id` (integer, required): Food entry ID to delete

### `copy_food_entries` (~67 tokens)

Copy food entries from one date to another, optionally filtered by meal. Requires profile auth (check_auth_status first).

Input parameters:

- `from_date` (string, required): Source date YYYY-MM-DD
- `meal` (string): Meal type
- `to_date` (string, required): Target date YYYY-MM-DD

### `copy_saved_meal_entries` (~74 tokens)

Copy entries from a saved meal to a meal on a specific date. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Date in YYYY-MM-DD format (default today)
- `meal` (string, required): Meal type
- `saved_meal_id` (integer, required): Saved meal ID to copy

### `get_favorite_foods` (~26 tokens)

Get the user's favorite foods. Requires profile auth (check_auth_status first).

### `delete_favorite_food` (~58 tokens)

Remove a food from the user's favorites. Requires profile auth (check_auth_status first).

Input parameters:

- `food_id` (integer, required): Food ID to remove from favorites
- `number_of_units` (string)
- `serving_id` (string)

### `get_most_eaten_foods` (~43 tokens)

Get the user's most eaten foods, optionally filtered by meal. Requires profile auth (check_auth_status first).

Input parameters:

- `meal` (string): Meal type

### `get_recently_eaten_foods` (~43 tokens)

Get the user's recently eaten foods, optionally filtered by meal. Requires profile auth (check_auth_status first).

Input parameters:

- `meal` (string): Meal type

### `get_favorite_recipes` (~26 tokens)

Get the user's favorite recipes. Requires profile auth (check_auth_status first).

### `add_favorite_recipe` (~41 tokens)

Add a recipe to the user's favorites. Requires profile auth (check_auth_status first).

Input parameters:

- `recipe_id` (integer, required): Recipe ID to add to favorites

### `delete_favorite_recipe` (~41 tokens)

Remove a recipe from the user's favorites. Requires profile auth (check_auth_status first).

Input parameters:

- `recipe_id` (integer, required): Recipe ID to remove from favorites

### `get_saved_meals` (~42 tokens)

Get the user's saved meals, optionally filtered by meal type. Requires profile auth (check_auth_status first).

Input parameters:

- `meal` (string): Filter by meal type

### `create_saved_meal` (~54 tokens)

Create a new saved meal. Requires profile auth (check_auth_status first).

Input parameters:

- `meals` (string)
- `saved_meal_description` (string)
- `saved_meal_name` (string, required): Meal name

### `edit_saved_meal` (~71 tokens)

Edit a saved meal name, description, or associated meals. Requires profile auth (check_auth_status first).

Input parameters:

- `meals` (string)
- `saved_meal_description` (string)
- `saved_meal_id` (integer, required): Saved meal ID
- `saved_meal_name` (string)

### `delete_saved_meal` (~39 tokens)

Delete a saved meal. Requires profile auth (check_auth_status first).

Input parameters:

- `saved_meal_id` (integer, required): Saved meal ID to delete

### `get_saved_meal_items` (~42 tokens)

Get all food items in a saved meal. Requires profile auth (check_auth_status first).

Input parameters:

- `saved_meal_id` (integer, required): Saved meal ID

### `add_saved_meal_item` (~90 tokens)

Add a food item to a saved meal. Requires profile auth (check_auth_status first).

Input parameters:

- `food_id` (integer, required): Food ID to add
- `number_of_units` (number, required): Number of serving units
- `saved_meal_id` (integer, required): Saved meal ID
- `saved_meal_item_name` (string, required): Item name
- `serving_id` (integer, required): Serving ID

### `edit_saved_meal_item` (~73 tokens)

Edit a food item in a saved meal (name or units). Cannot change serving_id. Requires profile auth (check_auth_status first).

Input parameters:

- `number_of_units` (number)
- `saved_meal_item_id` (integer, required): Saved meal item ID
- `saved_meal_item_name` (string)

### `delete_saved_meal_item` (~46 tokens)

Remove a food item from a saved meal. Requires profile auth (check_auth_status first).

Input parameters:

- `saved_meal_item_id` (integer, required): Saved meal item ID to delete

### `update_weight` (~110 tokens)

Record the user's weight for a date. First weigh-in requires goal_weight_kg and current_height_cm. Requires profile auth (check_auth_status first).

Input parameters:

- `comment` (string)
- `current_height_cm` (number)
- `current_weight_kg` (number, required): Current weight in kg
- `date` (string): Date in YYYY-MM-DD format (default today)
- `goal_weight_kg` (number)
- `height_type` (string)
- `weight_type` (string)

### `get_weight_month` (~44 tokens)

Get the user's weight entries for a month. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Any date within the target month (YYYY-MM-DD)

### `get_exercises` (~30 tokens)

Get the full list of supported exercise types and their IDs. Requires profile auth (check_auth_status first).

### `edit_exercise_entries` (~117 tokens)

Shift exercise time between activities for a date. Moves minutes from one exercise to another. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Date in YYYY-MM-DD format (default today)
- `kcal` (number)
- `minutes` (integer, required): Minutes to shift
- `shift_from_id` (integer, required): Exercise ID to shift time FROM
- `shift_from_name` (string)
- `shift_to_id` (integer, required): Exercise ID to shift time TO
- `shift_to_name` (string)

### `get_exercise_entries_month` (~48 tokens)

Get daily calories expended from exercise for a month. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Any date within the target month (YYYY-MM-DD)

### `save_exercise_template` (~80 tokens)

Save the current day's exercise entries as a template for specified days of the week. Requires profile auth (check_auth_status first).

Input parameters:

- `date` (string): Date in YYYY-MM-DD format (default today)
- `days` (integer, required): Days of week as bit flags (Sun=bit 1, Sat=bit 7), converted to int

### `get_profile` (~26 tokens)

Get profile status information for the authenticated user. Requires profile auth (check_auth_status first).

### `create_food` (~259 tokens)

Create a custom food with nutrition info. Premier exclusive. Requires profile auth (check_auth_status first).

Input parameters:

- `added_sugars` (string)
- `brand_name` (string, required): Brand name
- `calcium` (string)
- `calories` (number, required): Calories (kcal)
- `calories_from_fat` (string)
- `carbohydrate` (number, required): Total carbohydrate (g)
- `cholesterol` (string)
- `fat` (number, required): Total fat (g)
- `fiber` (string)
- `food_name` (string, required): Food name
- `iron` (string)
- `monounsaturated_fat` (string)
- `polyunsaturated_fat` (string)
- `potassium` (string)
- `protein` (number, required): Protein (g)
- `saturated_fat` (string)
- `serving_amount` (string)
- `serving_amount_unit` (string)
- `serving_size` (string, required): Serving size description (e.g. "1 slice")
- `sodium` (string)
- `sugar` (string)
- `trans_fat` (string)
- `vitamin_a` (string)
- `vitamin_c` (string)
- `vitamin_d` (string)

### `check_auth_status` (~29 tokens)

Check if API credentials and profile authentication are configured. Call this first to understand what setup is needed.

### `setup_credentials` (~109 tokens)

Configure FatSecret API credentials. Get them at https://platform.fatsecret.com/ → My Account → API Keys. Saves to persistent config file.

Input parameters:

- `client_id` (string, required): FatSecret Client ID (from platform.fatsecret.com → API Keys)
- `client_secret` (string, required): FatSecret Client Secret (OAuth 2.0)
- `consumer_secret` (string, required): FatSecret Consumer Secret (OAuth 1.0 — different from Client Secret, found on the same API Keys page)

### `start_auth` (~38 tokens)

Start the OAuth 1.0 authorization flow for profile access. Returns an authorization URL the user must visit. Requires API credentials (setup_credentials first).

### `complete_auth` (~39 tokens)

Complete the OAuth 1.0 flow with the verifier code from the authorization page.

Input parameters:

- `verifier` (string, required): OAuth verifier code from the authorization page

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/fliptheweb-fatsecret-mcp/fatsecret-mcp#diagnostics

## Score history

- 2026-08-03: 75
- 2026-08-02: 71
- 2026-08-01: 5
- 2026-07-31: 8
- 2026-07-30: 24
- 2026-07-28: 43
- 2026-07-27: 43

## Links

- npm package: https://www.npmjs.com/package/fatsecret-mcp
- Socket report: https://socket.dev/npm/package/fatsecret-mcp
- Repository: https://github.com/fliptheweb/fatsecret-mcp
- Changelog RSS feed: https://verifymcp.io/servers/fliptheweb-fatsecret-mcp/fatsecret-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/fliptheweb-fatsecret-mcp/fatsecret-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/fliptheweb-fatsecret-mcp/fatsecret-mcp
