营养MCP
用于个人营养跟踪的远程MCP服务器——记录膳食、跟踪宏,并通过对话查看营养历史。
快速开始
已经托管并准备好使用——只需将其连接到您的MCP客户端:
https://nutrition-mcp.com/mcp关于第ai条: 定制→ 连接器→ + → 添加自定义连接器→ 粘贴URL→ 连接
首次连接时,系统会要求您使用电子邮件和密码进行注册。您的数据在重新连接后仍然存在。
演示

请阅读其背后的故事: 我如何用单个MCP服务器替换MyFitnessPal和其他应用程序
技术栈
- 包子 --运行时和包管理器
- 荣誉 --HTTP框架
- MCP-SDK --基于流式HTTP的模型上下文协议
- 速贝 --PostgreSQL数据库+用户认证
- OAuth 2.0 --Claude.ai连接器的身份验证
MCP工具
| 工具 | 说明 |
|---|---|
log_meal | 用描述、类型、卡路里、宏、注释记录一顿饭 |
get_meals_today | 记录今天的所有餐点 |
get_meals_by_date | 获取特定日期(YYYY-MM-DD)的餐食 |
get_meals_by_date_range | 在两次约会之间用餐(含) |
get_nutrition_summary | 每日营养总量+日期范围内的目标进度 |
update_meal | 更新现有膳食的任何字段 |
delete_meal | 按ID删除一顿饭 |
set_nutrition_goals | 设定每日卡路里、宏观和水分目标 |
get_nutrition_goals | 获取当前的每日目标 |
get_goal_progress | 获取给定一天的摄入量与目标(默认值:今天) |
log_water | 以毫升为单位记录水合作用条目 |
get_water_today | 获取今天的总取水量和条目 |
get_water_by_date | 获取特定日期的饮水量 |
delete_water | 按ID删除水日志条目 |
get_trends | 7/14/30天平均值、标准偏差、连续性、一周中的哪一天、最佳/最差的一天 |
get_meal_patterns | 预先汇总的行为模式(早餐效应、晚餐时间、周末与工作日、异常值) |
set_timezone | 设置用户的IANA时区(例如。 America/Los_Angeles) |
get_timezone | 获取用户配置的时区 |
delete_account | 永久删除帐户和所有相关数据 |
MCP资源
| URI | 描述 |
|---|---|
nutrition://weekly-summary | 滚动7天摘要(平均值与目标,最佳/最艰难的一天),用于主动拉动 |
自足执行
1.数据库设置
- 创建一个 速贝 项目。
- 启用 电子邮件身份验证 (身份验证→ 提供商→ 电子邮件)并禁用电子邮件确认。
- 应用架构。完整的模式存在于
supabase/migrations/.随着 Supabase命令行界面:
supabase link --project-ref
supabase db push这将创建应用程序所需的每个表、索引、RLS策略和外键。不涉及本地Postgres——迁移是针对您的托管项目运行的。
- 复制 服务角色密钥 从项目设置→ API并将其用作
SUPABASE_SECRET_KEY.
2.环境变量
| 变量 | 描述 |
|---|---|
SUPABASE_URL | 您的Supabase项目URL |
SUPABASE_SECRET_KEY | Supabase服务角色密钥(绕过RLS) |
OAUTH_CLIENT_ID | OAuth客户端标识的随机字符串 |
OAUTH_CLIENT_SECRET | OAuth客户端身份验证的随机字符串 |
PORT | 服务器端口(默认值: 8080) |
注: 中的HTML文件public/包含一个谷歌分析标签(G-1K4HRB2R8X).如果您是自托管,请删除或替换中的gtag代码段public/index.html,public/login.html,以及public/privacy.html.
生成OAuth凭据:
openssl rand -hex 16 # use as OAUTH_CLIENT_ID
openssl rand -hex 32 # use as OAUTH_CLIENT_SECRET发展
bun install
cp .env.example .env # fill in your credentials
bun run dev # starts with hot reload on http://localhost:8080连接到Claude.ai
- 打开 Claude.ai 然后单击 定制
- 点击 连接器,然后 + 按钮
- 点击 添加自定义连接器
- 填写:
- 名称:营养追踪器 - 远程MCP服务器URL: https://nutrition-mcp.com/mcp
- 点击 连接 --出现提示时登录或注册
- 登录后,克劳德可以使用你的营养工具。如果稍后重新连接,请使用相同的电子邮件和密码登录以保留您的数据。
API终点
| 端点 | 描述 |
|---|---|
GET /health | 健康检查 |
GET /.well-known/oauth-authorization-server | OAuth元数据发现 |
POST /register | 动态客户端注册 |
GET /authorize | OAuth授权(显示登录页面) |
POST /approve | 登录/注册处理程序 |
POST /token | 代币兑换 |
GET /favicon.ico | 服务器图标 |
ALL /mcp | MCP端点(经过身份验证) |
部署
该项目包括 Dockerfile 用于基于容器的部署。
- 将您的仓库推送到托管提供商(例如DigitalOcean应用平台)
- 设置上面列出的环境变量
- 应用程序会自动检测Dockerfile并在端口上部署
8080 - 将您的域指向已部署的URL
