狗粮
集成MCP的狗消化健康跟踪器。 跟踪你的狗的饮食、食物、排便、能量水平和其他健康观察结果。 主要界面是对话式的——告诉Claude发生了什么,它会通过MCP工具为您记录下来。 网络仪表板允许您浏览时间线并管理食品目录。
运作原理
- 定义食物 通过web UI或MCP在目录中(例如“皇家罐头PW粗粒,257卡/杯”)
- 告诉克劳德 发生了什么事——“他下午4点吃了2盎司煮火鸡和半杯粗粮”
- 克劳德记录下来了 使用MCP工具,从目录中自动计算卡路里
- 浏览仪表板 查看今天的餐食、上次排便和可过滤的时间表
MCP工具
| 工具 | 说明 |
|---|---|
add_food | 在目录中添加一种食物,包括名称、单位和卡路里 |
list_foods | 列出食品目录(按餐/零食筛选) |
log_meal | 记录一顿饭,参考目录食物+数量 |
log_treat | 记录食物(编目食物或自由形式的名称) |
log_bowel_movement | 用布里斯托尔量表记录排便情况(1-7) |
log_health | 记录健康观察(能量、呕吐、气体等) |
get_recent_entries | 查询时间线 |
get_dog_profile | 获取狗的个人资料信息 |
自足执行
Dogfood作为一个Docker容器运行,并使用SQLite进行存储。
Docker快速入门
docker run -d \
-p 3000:3000 \
-v dogfood-data:/app/data \
-e MCP_BEARER_TOKEN=your-secret-token \
ghcr.io/igor47/dogfood:latestDocker Compose
services:
dogfood:
image: ghcr.io/igor47/dogfood:latest
ports:
- "3000:3000"
volumes:
- dogfood-data:/app/data
environment:
- MCP_BEARER_TOKEN=your-secret-token
volumes:
dogfood-data:环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 3000 (Docker)/ 3002 (dev) | 服务器端口 |
SQLITE_PATH | ./data/db/dogfood.db | SQLite数据库文件路径 |
MCP_BEARER_TOKEN | *(无)* | MCP端点身份验证的承载令牌。如果为空, /mcp 是开放的。 |
UPLOAD_DIR | ./data/uploads | 上传文件附件目录 |
PUBLIC_URL | *(无)* | 公共基础URL(例如。 https://dogfood.example.com).MCP上传流所需。 |
UPLOAD_SIGNING_KEY | *(每个进程随机)* | 签名上传URL的HMAC密钥。如果未设置,则自动生成;为重新启动时的URL持久性明确设置。 |
DISPLAY_TZ | UTC | 显示日期的时区(例如。 America/Los_Angeles).日期以UTC存储。 |
数据持久性
在以下位置安装卷 /app/data。其中包括:
db/dogfood.db--SQLite数据库uploads/--上传的文件附件(图像、PDF)
迁移在启动时自动运行。
连接克劳德
克劳德代码(CLI)
claude mcp add --transport http dogfood https://your-domain.com/mcp \
--header "Authorization: Bearer your-secret-token"Claude.ai(网络)
- 首选 设置>连接器
- 点击“添加自定义连接器”
- 输入您的服务器URL+
/mcp(例如。https://your-domain.com/mcp) - 在高级设置中,添加承载令牌
- 克劳德现在可以在对话中使用狗粮工具了
发展
需要 布置 用于工具管理(自动安装Bun)。
# Install dependencies
mise run install
# Start dev server (hot reload on port 3002)
mise run app:dev
# Run checks (lint + typecheck)
mise run check
# Run tests
mise run test在中设置您的MCP承载令牌 mise.local.toml (忽略):
[env]
MCP_BEARER_TOKEN = "your-secret-token"使用Claude Code进行本地开发:
claude mcp add --transport http dogfood http://localhost:3002/mcp \
--header "Authorization: Bearer your-secret-token"