使用说明
🥫 Pantrydb
远程MCP服务器,用于跟踪您的食品柜中有什么。
展示一个简单的数据库,用于列出、添加和删除餐具室物品。
服务器是远程的,因此可以在旅途中访问(例如在移动设备上)。 它支持使用GitHub OAuth进行身份验证的单个用户。
PantryDB使用 CloudFlare的MCP和OAuth库,并部署在 CloudFlare工人.
📋 目录
🥫 例子
购物时寻求建议。
扫描你的收据,添加到餐具室。
留下一个语音备忘录,让克劳德知道你吃了一些薯片。
🚀 入门指南
先决条件
- 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应用程序。
引导到 github/设置/开发者 使用以下设置创建新的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应用程序:
引导到 github/设置/开发者 使用以下设置创建新的OAuth应用程序:
Application name: PantryDB (prod)
Homepage URL: https://pantrydb.<your-subdomain>.workers.dev
Authorization callback URL: https://pantrydb.<your-subdomain>.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_USERNAME
Cookie加密
设置cookie加密密钥。使用任何随机字符串(例如 openssl rand -hex 32).然后,将密钥设置为机密:
本地
echo 'COOKIE_ENCRYPTION_KEY="your-cookie-encryption-key"' >> .dev.vars
远程
npx wrangler secret put COOKIE_ENCRYPTION_KEY
KV命名空间
创建服务器的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.<your-subdomain>.workers.dev/sse 与:
npx @modelcontextprotocol/inspector
😎 鸣谢
- 餐具室照片由 安妮·斯普拉特 在…上 Unsplash
- Cloudflare“构建远程MCP服务器” 示例 & 模板
- Cloudflare D1 示例
- 收据图片来自 CORD:OCR后解析的合并收据数据集朴承铉著;申承宪;李,巴多;李俊妍;Surh,Jaeheung;徐敏俊;李,华素克,下 CC 4.0 许可证。
特别感谢:
- 拉斐尔 Van HoffelenOAuth导师