食谱数据库管理服务

Paprika MCP Server是一个允许用户通过Claude查询和管理Paprika 3食谱数据库的服务,主要用于膳食计划和食谱管理。

  • by JohnHR
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 JohnHR/paprika-mcp

使用说明

Paprika MCP服务器

一个MCP服务器,让Claude查询和管理您的辣椒粉3食谱数据库,以进行膳食计划。

工具

阅读工具

  • 浏览密码 --使用可配置的排序(名称、id、评级、preference_score、last_made、prep_time、cook_time)和分页(偏移/限制)遍历整个库
  • 搜索密码 --按关键字、类别和最低偏好分数搜索(默认4--通过 min_score=0 包括所有食谱)。支持三种排序策略: score_then_staleness (默认), staleness (从未制作/最古老的第一个),以及 score (纯粹的最爱)
  • 获取密码详细信息 --获取包含配料和说明的完整食谱;接受 recipe_id (确切地), url (源URL匹配),或 name (部分匹配——如果多个食谱匹配,则返回消歧列表)
  • 获取_历史记录 --看看你最近做了什么(基于过时的菜单类别)
  • 列表_类别 --列出所有配方类别及其ID
  • get_category_definitions --返回用于对食谱进行分类的完整类别定义JSON(名称、规则、信号、边缘情况)

写入工具

  • create_meal计划 --通过用类别标记食谱来创建新的基于日期的膳食计划(自动重新启动辣椒粉)
  • 导入密码 --使用Paprika的内置浏览器/抓取器从URL导入食谱(自动重复数据消除)
  • 添加密码到类别 --将一个或多个食谱添加到现有类别中(接受单个ID或批量操作列表)
  • 从类别中删除密码 --从类别中删除一个或多个配方(接受单个ID或批量操作列表)
  • 删除类别 --删除类别及其所有配方关联
  • 删除密码 --将配方移至垃圾箱(软删除;将删除同步到其他设备并删除所有类别关联)

偏好评分(0-7)

每个食谱都有一个综合得分:星级(0-5)+1(如果在“尝试和真实”中)+1(如喜欢)。

设置

0.先决条件

  • 仅限macOS --导入工作流使用AppleScript驱动Paprika的UI
  • Mac版辣椒粉3 已安装,配方库已同步
  • 克劳德桌面 安装

1.安装uv

curl -LsSf https://astral.sh/uv/install.sh | sh

2.添加到克劳德桌面

在克隆的仓库中,运行以下命令以打印具有正确路径的精确配置片段:

echo '{
  "mcpServers": {
    "paprika": {
      "command": "uv",
      "args": ["--directory", "'"$(pwd)"'", "run", "server.py"]
    }
  }
}'

将输出粘贴到 ~/Library/Application Support/Claude/claude_desktop_config.json。如果文件已经有其他MCP服务器,只需添加 "paprika": { ... } 现有内部的块 "mcpServers" 对象。

3.重新启动克劳德桌面

Paprika工具现在可以在任何对话中使用。

4.类别定义

回购包括 data/category_definitions.json,告诉克劳德在建议进口食谱的类别时每个类别意味着什么。 如果你在共享同一辣椒库的第二台机器上设置它 (例如,配偶的Mac具有相同的同步配方集合),无需采取任何行动——包含的文件是正确的。

如果你从一个不同类别的辣椒库开始,让克劳德生成一个新的库:

“我的辣椒酱类别与包含的category_definitions.json不匹配。请调用list_categories查看我实际拥有的内容,然后重写data/classy_definitions.mson进行匹配。”

示例提示

  • “计划5顿晚餐——一顿素食,一条鱼,把我解冻的鸡腿都吃光。”
  • “保留鲑鱼和黄油鸡,但要找到不同的蔬菜和意大利面选择。”
  • “我喜欢这些,但加入了一些我们以前从未做过的东西。”
  • “我们有一段时间没有做过的评价最高的食谱是什么?”
  • “给我看看过去几周我们吃了什么。”
  • “导入此配方:https://example.com/amazing-soup"

运作原理

服务器直接访问Paprika 3 SQLite数据库,以读取食谱和管理膳食计划。对于导入,它通过AppleScript驱动Paprika的内置浏览器,从URL中抓取和保存食谱。

在制定用餐计划时,它:

  1. 使用格式创建新类别 YYYYMMDD Label (例如,“20260215菜单”)
  2. 用此类别标记所选食谱
  3. 自动重新启动辣椒粉,以便立即看到更改

辣椒粉中的类别类似于标签,因此食谱可以属于多个类别/膳食计划。

“最后制作”日期是从膳食计划类别推断出来的——如果一个食谱标有“20260309菜单”,那么它最后一次制作是在2026年3月9日左右。

跨设备同步

写入操作(创建膳食计划、标记食谱、导入、删除类别)将受影响的记录标记为脏记录(ZISSYNCED = 0, ZSTATUS = 'modified'/'new'/'deleted')与新鲜 ZSYNCHASH。这一消息告诉Paprika内置的同步引擎在下一个同步周期将更改推送到云,以便它们自动传播到其他设备。