宠物健康追踪系统

Dogfood是一款集成MCP的狗狗消化健康追踪系统,通过对话式界面记录饮食、排便和健康观察,并提供可视化仪表板。

  • by igor47
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 igor47/dogfood

使用说明

狗粮

集成MCP的狗消化健康跟踪器。 跟踪你的狗的饮食、食物、排便、能量水平和其他健康观察结果。 主要界面是对话式的——告诉Claude发生了什么,它会通过MCP工具为您记录下来。 网络仪表板允许您浏览时间线并管理食品目录。

运作原理

  1. 定义食物 通过web UI或MCP在目录中(例如“皇家罐头PW粗粒,257卡/杯”)
  2. 告诉克劳德 发生了什么事——“他下午4点吃了2盎司煮火鸡和半杯粗粮”
  3. 克劳德记录下来了 使用MCP工具,从目录中自动计算卡路里
  4. 浏览仪表板 查看今天的餐食、上次排便和可过滤的时间表

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:latest

Docker 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(网络)

  1. 首选 设置>连接器
  2. 点击“添加自定义连接器”
  3. 输入您的服务器URL+ /mcp (例如。 https://your-domain.com/mcp)
  4. 在高级设置中,添加承载令牌
  5. 克劳德现在可以在对话中使用狗粮工具了

发展

需要 布置 用于工具管理(自动安装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"

技术栈