🥫 Pantrydb
远程MCP服务器,用于跟踪您的食品柜中有什么。
展示一个简单的数据库,用于列出、添加和删除餐具室物品。
服务器是远程的,因此可以在旅途中访问(例如在移动设备上)。 它支持使用GitHub OAuth进行身份验证的单个用户。
PantryDB使用 CloudFlare的MCP和OAuth库,并部署在 CloudFlare工人.
📋 目录
- - Cookie加密 - KV命名空间 - D1数据库 - 部署
🥫 例子
购物时寻求建议。
扫描你的收据,添加到餐具室。
留下一个语音备忘录,让克劳德知道你吃了一些薯片。
🚀 入门指南
先决条件
- Node.js (v18或更高)以及 npm -用于运行项目和管理依赖关系
- 心脏出血 -用于生成cookie加密密钥(
openssl rand -hex 32) - GitHub账号 -用于OAuth身份验证设置
- Cloudflare帐户 -用于工人部署和D1/KV服务
安装
安装依赖项:
npm install登录牧马人:
npx wrangler login🚢 部署
- 本地: _在本地运行PantryDB,并使用同一台机器上的MCP客户端访问它。_
- 远程: _远程部署PantryDB并从任何MCP客户端访问。_
GitHub OAuth
本地
为本地开发创建新的OAuth应用程序。
引导到 使用以下设置创建新的OAuth应用程序:
Application name: PantryDB (local)
Homepage URL: http://localhost:8788
Authorization callback URL: http://localhost:8788/callback记下您的客户端ID并生成客户端密钥。将两者都添加到a .dev.vars 项目根目录中的文件,将用于在本地开发中设置机密:
touch .dev.vars
echo 'GITHUB_CLIENT_ID="your-client-id"' >> .dev.vars
echo 'GITHUB_CLIENT_SECRET="your-client-secret"' >> .dev.vars然后,添加唯一允许使用PantryDB的GitHub帐户的用户名:
echo 'ALLOWED_GITHUB_USERNAME="your-username"' >> .dev.vars远程
为远程服务器创建新的OAuth应用程序:
引导到 使用以下设置创建新的OAuth应用程序:
Application name: PantryDB (prod)
Homepage URL: https://pantrydb..workers.dev
Authorization callback URL: https://pantrydb..workers.dev/callback记下您的客户端ID并生成客户端密钥。通过牧马人设置秘密:
npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET然后,设置唯一允许使用PantryDB的GitHub帐户的用户名:
npx wrangler secret put ALLOWED_GITHUB_USERNAMECookie加密
设置cookie加密密钥。使用任何随机字符串(例如 openssl rand -hex 32).然后,将密钥设置为机密:
本地
echo 'COOKIE_ENCRYPTION_KEY="your-cookie-encryption-key"' >> .dev.vars远程
npx wrangler secret put COOKIE_ENCRYPTION_KEYKV命名空间
创建服务器的OAuth KV命名空间:
npx wrangler kv:namespace create "OAUTH_KV"然后,更新Wrangler文件(wrangler.jsonc)使用KV ID。
D1数据库
创建d1数据库。
npx wrangler d1 create pantrydb然后初始化它。
# local
npx wrangler d1 execute pantrydb --local --file=db/schema.sql
# or remote
npx wrangler d1 execute pantrydb --remote --file=db/schema.sql最后,更新Wrangler文件(wrangler.jsonc)使用D1数据库ID。
部署
本地
在本地运行MCP服务器 http://localhost:8788/sse:
npx wrangler dev远程
部署MCP服务器,使其在您的 workers.dev 域名:
npx wrangler deploy🔌 用法
然后连接到您当地的PantryDB http://localhost:8788/sse,或您的远程PantryDB https://pantrydb..workers.dev/sse 与:
npx @modelcontextprotocol/inspector😎 鸣谢
- 餐具室照片由 安妮·斯普拉特 在…上 Unsplash
- Cloudflare D1 示例
特别感谢:
- 拉斐尔 Van HoffelenOAuth导师
