关于 Calorie Tracker MCP Server
Calorie Tracker MCP Server 面向记录饮食和身体指标的人群,可管理食物营养素数据,并使用 Mifflin-St Jeor 方程计算 BMR 和 TDEE。
主要功能
- 01记录含宏量营养素的食物
- 02计算 BMR 和 TDEE
- 03更新个人资料与活动水平
- 04追踪体重和身体成分历史
- 05支持带 PKCE 的 OAuth 2.1
适用场景
- 01记录每日食物摄入
- 02根据个人资料估算能量需求
- 03查看体重和身体成分变化
MCP 相关
向 MCP 客户端提供食物记录、个人资料、历史数据和用户管理工具。支持带 PKCE 的 OAuth 2.1 身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Calorie Tracker MCP Server
用于追踪每日卡路里摄入量的 MCP 服务,提供准确的 BMR/TDEE 计算。基于 Cloudflare Workers 和 D1 数据库构建。
功能
- 食物追踪:添加、更新和删除食物记录,并记录宏量营养素
- 个人资料管理:使用 Mifflin-St Jeor 公式计算 BMR/TDEE
- 历史数据:追踪体重和身体成分的变化
- 安全性:采用 OAuth 2.1 身份验证,支持 PKCE
快速设置
pnpm install
# Create resources and update wrangler.jsonc with IDs
npx wrangler d1 create calorie-tracker
npx wrangler kv:namespace create OAUTH_KV
# Run migrations and start dev server
npx wrangler d1 migrations apply calorie-tracker --local
pnpm run dev
OAuth 客户端注册
设置管理员 API 密钥:
# Development: Update wrangler.jsonc vars.ADMIN_API_KEY
# Production: Use secrets
npx wrangler secret put ADMIN_API_KEY
注册 OAuth 客户端以获取凭据:
curl -X POST http://localhost:8787/oauth/register \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_ADMIN_API_KEY" \
-d '{
"client_name": "Claude Desktop",
"redirect_uris": ["http://127.0.0.1/callback", "http://localhost/callback"],
"user_id": "admin"
}'
注意:Claude Desktop 会在 OAuth 流程中指定其回调 URL。如果遇到重定向 URI 不匹配错误,请查看 Claude Desktop 的 OAuth 日志,确认其实际要求的回调 URL。
响应:
{
"client_id": "uuid-client-id",
"client_secret": "generated-secret",
"client_name": "Claude Desktop"
}
Claude 配置
选项 1:Bearer Token(Personal/Pro/Max)
使用客户端密钥作为 Bearer Token 进行简单身份验证:
-
注册 OAuth 客户端:
curl -X POST http://localhost:8787/oauth/register \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_ADMIN_API_KEY" \ -d '{ "client_name": "Claude Desktop", "redirect_uris": ["https://claude.ai/api/mcp/auth_callback"], "user_id": "admin" }'保存响应中的
client_secret。 -
Claude Desktop 配置(
claude_desktop_config.json):{ "mcpServers": { "calorie-tracker": { "command": "npx", "args": ["mcp-remote", "http://localhost:8787/sse"], "env": { "BEARER_TOKEN": "<client_secret from registration>" } } } }
选项 2:使用客户端凭据进行 OAuth(仅限 Team/Enterprise)
使用客户端 ID/密钥的私有连接器:
-
注册 OAuth 客户端,并使用回调 URL
https://claude.ai/api/mcp/auth_callback -
在 Claude 中添加自定义连接器:
- 名称:Calorie Tracker
- 远程 MCP 服务 URL:
https://YOUR-WORKER.workers.dev/sse - OAuth 客户端 ID:
<client_id from registration> - OAuth 客户端密钥:
<client_secret from registration>
生产环境部署
部署到 Cloudflare Workers,以便通过移动设备或 Web 访问:
pnpm run deploy
pnpm run migrate
npx wrangler secret put ADMIN_API_KEY
工具
食物追踪:
list_entries- 使用分页列出食物记录add_entry- 添加食物记录并记录宏量营养素update_entry- 更新现有记录delete_entry- 删除记录
个人资料管理:
get_profile- 获取个人资料及 BMR/TDEE 计算结果update_profile- 更新个人资料数据(身高、体重、活动水平)get_profile_history- 获取历史追踪数据
管理:
register_user- 注册新用户revoke_user- 撤销用户访问权限
BMR/TDEE 计算
使用 Mifflin-St Jeor 公式(黄金标准):
男性: BMR = (10 × weight) + (6.25 × height) - (5 × age) + 5
女性: BMR = (10 × weight) + (6.25 × height) - (5 × age) - 161
TDEE: BMR × Activity Multiplier(1.2 - 1.9)
开发
pnpm test # Run tests
pnpm run type-check # TypeScript validation
pnpm run deploy # Deploy to production
pnpm run migrate # Run migrations on remote
技术栈
- 运行时:Cloudflare Workers
- 数据库:D1(SQLite)
- 语言:TypeScript
- 验证:Zod
- 测试:Vitest
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。