项目简介

该项目是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在连接大型语言模型 (LLMs) 与您的 Notion 数据库。它使LLM能够理解并操作您的厨房库存、食谱和购物清单数据,从而实现智能化的管理和互动。服务器部署在 Cloudflare Workers 上,通过 MCP 标准协议与兼容的 LLM 客户端进行通信。

主要功能点

  • 库存管理: 查看、添加、更新和整理您的厨房库存物品。
  • 食谱推荐: 根据您当前拥有的食材,获取可行的食谱建议。
  • 购物清单管理: 维护动态购物清单,支持添加新项目和标记已购买项目。
  • 智能更新: 烹饪后自动更新库存消耗,并将不足的必备品添加到购物清单。
  • Notion 集成: 所有数据和操作都直接同步到您的 Notion 数据库中。

安装步骤

  1. Notion 集成设置:

    • 访问 Notion 集成页面 (https://www.notion.so/my-integrations) 创建一个新的集成,授予读取、更新和插入内容的权限,并复制集成 Token。
    • 在 Notion 中创建用于存放厨房库存、食谱和购物清单的数据库页面。
    • 将您创建的集成分享给这三个数据库页面。
    • (可选但推荐)使用仓库提供的脚本帮助设置数据库结构。
  2. 项目配置:

    • 克隆本仓库到您的本地机器。
    • 安装 Node.js (版本 18 或更高)。
    • 在项目根目录运行 'npm install' 安装依赖。
    • 复制 '.dev.vars' 文件并重命名为 '.dev.vars' (如果不存在),然后根据您的 Notion 集成 Token 和数据库 ID 填充以下配置项:
      • '"NOTION_TOKEN": "您的Notion集成Token"'
      • '"NOTION_PANTRY_DB": "您的厨房库存数据库ID"'
      • '"NOTION_RECIPES_DB": "您的食谱数据库ID"'
      • '"NOTION_SHOPPING_LIST_DB": "您的购物清单数据库ID"'
  3. 部署到 Cloudflare Workers:

    • 确保您已安装并配置 Cloudflare Wrangler CLI 工具。
    • 在项目根目录运行 'npm run deploy' 将服务器代码部署到您的 Cloudflare Workers 账户。部署成功后,您将获得一个 Worker URL。

服务器配置 (供 MCP 客户端参考)

MCP 客户端需要知道如何连接到 MCP 服务器。对于此服务器,它部署为 Cloudflare Worker,通常通过 HTTP/WebSocket 端点访问。以下是 MCP 客户端配置的示例结构,其中 'command' 和 'args' 表示连接方式的概念,实际连接会通过部署后的 Worker URL:

{
  "server name": "Pantry MCP Server",
  "description": "一个用于通过Notion管理厨房库存、食谱和购物清单的MCP服务器。",
  "command": "cloudflare-worker-endpoint",
  "args": [
    "--url", "YOUR_CLOUDFLARE_WORKER_URL"
  ],
  "note": "此MCP服务器部署为Cloudflare Worker。MCP客户端连接时需要配置实际的Worker URL,而非直接运行本地命令。'command' 和 'args' 在此配置中更多是描述性的。"
}

请将 'YOUR_CLOUDFLARE_WORKER_URL' 替换为您实际部署到 Cloudflare 后获得的 Worker URL。

基本使用方法

连接兼容的 MCP 客户端(例如某个支持 MCP 的聊天机器人或应用程序)到此服务器后,您可以通过自然语言与您的厨房数据互动。LLM 会识别您的意图并使用服务器提供的工具执行操作:

  • 查询库存: 告诉 LLM "我的厨房里有什么?" 或 "请查看我的蔬果库存"。LLM 会使用 'getPantryInfo' 工具查询并总结您的库存。
  • 添加物品: 告诉 LLM "我新买了 5 个苹果和 2 磅牛肉"。LLM 会使用 'addPantryItem' 工具将这些物品添加到 Notion 厨房库存数据库。
  • 获取食谱建议: 问 LLM "根据我现有的食材,有什么推荐的晚餐食谱吗?"。LLM 会使用 'getPantryAndRecipes' 工具获取库存和食谱数据,然后分析并给出建议。
  • 管理购物清单: 告诉 LLM "我需要买牛奶和鸡蛋" 或 "我买好了所有东西"。LLM 会使用 'manageShoppingList' 工具添加到清单或处理已购买项。
  • 记录烹饪: 在做完某个食谱后,告诉 LLM "我用 '简单早餐三明治' 食谱做了饭"。LLM 会使用 'updatePantryAfterCooking' 工具减少对应食材的库存,并根据需要更新购物清单。

信息

分类

生产力应用