Token导航 LogoToken导航TokenDH.com
Fatsecret MCP logo
AI代理未说明官方级别未说明来源级核验

Fatsecret MCP

MCP Server

FatSecret MCP Server是一个模型上下文协议服务器,用于连接兼容MCP的LLM到FatSecret的营养数据库和食物记录功能。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaudeAI代理Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Mkp-dev-portefolio

提供方

Mkp-dev-portefolio

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🥗 FatSecret MCP服务器

A. 模型上下文协议(MCP) 服务器 FatSecret平台API.将任何兼容MCP的LLM(Claude、GPT-4、Cursor、Continue等)直接连接到FatSecret的营养数据库和食物记录功能。

特性

工具描述身份验证
search_foods按名称搜索FatSecret食品数据库OAuth 2.0
get_food获取特定食物的完整营养信息(所有份量+微量)OAuth 2.0
search_recipes使用卡路里/宏过滤器搜索食谱OAuth 2.0
get_food_entries阅读任何日期的日记条目OAuth 1.0
add_food_entry将食物记录到日记中OAuth 1.0
get_daily_nutrition从日记汇总的每日宏/卡路里总量OAuth 1.0
get_month_of_statistics整个月的每日营养统计OAuth 1.0
注: 标记的工具 OAuth 1.0 需要额外的用户级令牌(请参见 获取用户令牌).三人 OAuth 2.0 这些工具仅适用于您的应用程序凭据。

______________________________________________________________________

快速开始

1.获取API凭据

  1. 注册地址: platform.fatsecret.com
  2. 创建一个应用程序来接收您的 客户端ID客户端密钥

2.安装和构建

# Clone the repo
git clone https://github.com/YOUR_USERNAME/fatsecret-mcp.git
cd fatsecret-mcp

# Install dependencies
npm install

# Build TypeScript
npm run build

3.配置凭据

cp .env.example .env
# Edit .env and fill in your credentials

4.测试它

# Quick sanity check — search for "apple"
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_foods","arguments":{"query":"apple"}}}' \
  | FATSECRET_CLIENT_ID=xxx FATSECRET_CLIENT_SECRET=yyy node dist/index.js

______________________________________________________________________

Claude桌面配置

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "fatsecret": {
      "command": "node",
      "args": ["/absolute/path/to/fatsecret-mcp/dist/index.js"],
      "env": {
        "FATSECRET_CLIENT_ID": "your_client_id",
        "FATSECRET_CLIENT_SECRET": "your_client_secret",
        "FATSECRET_ACCESS_TOKEN": "your_access_token",
        "FATSECRET_ACCESS_TOKEN_SECRET": "your_access_token_secret"
      }
    }
  }
}

或者,如果你更喜欢使用 .env 文件和 npx:

{
  "mcpServers": {
    "fatsecret": {
      "command": "npx",
      "args": ["fatsecret-mcp"],
      "env": {
        "FATSECRET_CLIENT_ID": "your_client_id",
        "FATSECRET_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

编辑配置后,重新启动Claude Desktop。您应该在Claude的工具面板中看到FatSecret工具。

______________________________________________________________________

工具参考

search_foods

搜索FatSecret食品数据库。

参数:

参数类型必填默认说明
querystring搜索词(例如。 "chicken breast")
max_results编号10每页显示结果(1-50)
page_number编号0从零开始的页面索引
food_type"generic""brand""all""all"按食物类型筛选
regionstring--ISO 3166-1 alpha-2代码(例如。 "US")

示例提示: *“搜索烤三文鱼,给我看看卡路里”*

______________________________________________________________________

get_food

获取食品的完整营养数据。

参数:

参数类型必填说明
food_idstringFatSecret食品ID(来自 search_foods)
flag_default_servingboolean突出显示默认服务(默认 true)

示例提示: *“获取食品ID 35718的完整营养信息”*

______________________________________________________________________

search_recipes

搜索FatSecret的食谱集。

参数:

参数类型必填说明
querystring搜索词(例如。 "lemon chicken")
max_resultsnumber每页结果数(1-50,默认值 10)
page_numbernumber从零开始的页面索引
calories_min数量每份的最低卡路里
calories_max数量每份最大卡路里
sort_bystringnewestoldestcaloriesPerServingAscendingcaloriesPerServingDescending
must_have_imagesboolean仅返回带有图像的食谱

示例提示: *“寻找400卡路里以下的高蛋白食谱”*

______________________________________________________________________

get_food_entries

阅读食物日记条目。 *需要OAuth 1.0令牌。*

参数:

参数类型必填说明
datestringYYYY-MM-DD (默认为今天)
food_entry_idstring检索特定条目

示例提示: *“我今天午饭吃了什么?”*

______________________________________________________________________

add_food_entry

把食物记在日记里。 *需要OAuth 1.0令牌。*

参数:

参数类型必填说明
food_idstringFatSecret食品ID
serving_idstring服务尺寸ID(从 get_food)
number_of_units编号食用份数
meal"breakfast""lunch""dinner""other"用餐时段
datestringYYYY-MM-DD (默认为今天)
food_entry_namestring自定义显示名称

示例提示: *“记录1.5份鸡胸肉(food_id 4888,serving_id 15183)作为今天的晚餐”*

______________________________________________________________________

get_daily_nutrition

一天的总热量和宏观总量。 *需要OAuth 1.0令牌。*

参数:

参数类型必填说明
datestringYYYY-MM-DD (默认为今天)

示例提示: *“我昨天吃了多少卡路里和多少克蛋白质?”*

______________________________________________________________________

get_month_of_statistics

整个月的每日营养数据。 *需要OAuth 1.0令牌。*

参数:

参数类型必填说明
datestring目标月份中的任何日期(默认为当前月份)

示例提示: *“显示我2026年3月的营养数据”*

______________________________________________________________________

获取用户令牌(日记功能)

日记工具需要 三条腿的OAuth 1.0 以获得用户特定的访问令牌和秘密。以下是完整的过程:

步骤1--获取请求令牌

# Replace with your actual credentials
curl -X POST "https://www.fatsecret.com/oauth/request_token" \
  -H "Authorization: OAuth oauth_callback=\"oob\", \
      oauth_consumer_key=\"YOUR_CLIENT_ID\", \
      oauth_nonce=\"$(openssl rand -hex 16)\", \
      oauth_signature_method=\"HMAC-SHA1\", \
      oauth_timestamp=\"$(date +%s)\", \
      oauth_version=\"1.0\", \
      oauth_signature=\"\""

步骤2——在浏览器中授权

指导用户:

https://www.fatsecret.com/oauth/authorize?oauth_token=

用户登录并批准。FatSecret展示了一个 PIN/验证码.

步骤3——交换访问令牌

curl -X POST "https://www.fatsecret.com/oauth/access_token" \
  -H "Authorization: OAuth oauth_consumer_key=\"YOUR_CLIENT_ID\", \
      oauth_token=\"\", \
      oauth_verifier=\"
\", \
      ..."

响应包含 oauth_token (访问令牌)和 oauth_token_secret.将这些存储为 FATSECRET_ACCESS_TOKENFATSECRET_ACCESS_TOKEN_SECRET.

对于一个人设置(记录您自己的用餐),您可以使用FatSecret API Demo工具来完成OAuth 1.0流并直接复制生成的令牌。

______________________________________________________________________

对话示例

在Claude Desktop中配置后,您可以进行自然对话,例如:

你: “我早餐刚吃了一碗燕麦片加牛奶。你能记下来吗?” 克劳德: *(电话 search_foodsget_foodadd_food_entry 自动)* “完成!我早餐吃了1杯煮熟的燕麦片(147千卡)和1杯全脂牛奶(149千卡)。总共296千卡,含13克蛋白质。”
你: “我的宏今天看起来怎么样?” 克劳德: *(电话 get_daily_nutrition)* “到目前为止,你已经摄入了1240千卡:87克蛋白质(28%),142克碳水化合物(46%),38克脂肪(27%)。”

______________________________________________________________________

发展

# Run in development mode (no build step)
npm run dev

# Type-check only
npm run typecheck

# Build for production
npm run build

项目结构

src/
├── index.ts          # MCP server entry point, tool dispatch
├── fatsecret.ts      # API client (OAuth 2.0 + OAuth 1.0 HMAC-SHA1)
└── tools/
    ├── food.ts       # search_foods, get_food, search_recipes
    ├── diary.ts      # get_food_entries, add_food_entry
    └── nutrition.ts  # get_daily_nutrition, get_month_of_statistics

______________________________________________________________________

API限制和已知限制

限制详细信息
日记需要OAuth 1.0日记和月度统计端点不支持OAuth 2.0。您必须完成3个标签的OAuth 1.0流程并存储个人令牌。
无费率限制文档FatSecret不会公开发布速率限制。免费等级通常限制在约2 req/sec。卓越理财账户有更高的限制。
JSON不一致单个结果响应返回一个对象;多结果响应返回一个数组。客户端通过以下方式自动处理此问题 toArray().
主要功能条形码扫描、图像识别(Snap It)和NLP食品记录需要订阅Premier API。
区域可用性有些食品/品牌是针对特定地区的。使用 region 要筛选的参数。
日期整数FatSecret日期存储为“自1970-01-01以来的天数”。客户端转换为/从 YYYY-MM-DD 透明的字符串。

______________________________________________________________________

许可证

麻省理工学院——见 许可证 了解详情。

______________________________________________________________________

贡献

欢迎问题和拉取请求!请先打开一个问题以了解重大更改。

目录标签

目录标签

TypeScriptClaudeAI代理营养数据库本地部署食物记录健康管理API连接LLM集成

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP