享受MCP服务器
MCP(模型上下文协议)服务器 ezCater的美食 --管理来自CLI或AI代理的企业补贴午餐订单。
用法
设置完成后,只需告诉代理:
点我的午餐
就是这样。客服会检查你哪些天还没有点餐,根据你保存的偏好挑选食物,然后下订单。每天或每周运行一次——它只订购缺失的几天。
默认情况下,代理会向您显示其选择并等待竖起大拇指。如果你宁愿它处理一切,说 “打开自动订购” 它会不假思索地挑选和订购。
你可以说的其他事情:
| 你说 | 会发生什么 |
|---|---|
| 点我的午餐 | 填充一周中所有无序的日子 |
| 打开自动订单 | 从现在开始,代理商不用问就可以提货和下单 |
| 让我来挑 | 返回显示选择以供确认 |
| 今天午饭吃什么? | 显示今天的餐厅和您现有的订单 |
| 给我点好吃的 | 挑选并订购今天的一件商品 |
| 更改我的周三订单 | 取消并重新订购当天的订单 |
| 给我看看星期四的菜单 | 列出周四可用的所有菜单项 |
特性
- 批量订购 --一周中每一个无序的日子都有一个命令
- 食物偏好 --记住你喜欢什么,并据此做出选择
- 查看日程表 --查看可用餐厅、配送时间和用餐情况
- 浏览菜单 --包含价格、类别和饮食标签的完整菜单
- 下订单和取消订单 --端到端订购和取消
- 补贴跟踪 --自动保持在公司的用餐预算范围内
- Cookie持久性 --MFA每30天只需要一次
设置
1.安装Chrome/Chromium
服务器使用带有无头Chrome浏览器的Selenium。您需要安装Chrome或Chromium:
Fedora/RHEL:
sudo dnf install chromium chromedriverUbuntu/Debian:
sudo apt install chromium-browser chromium-chromedrivermacOS(Homebrew):
brew install --cask google-chromeChromeDriver通过以下方式自动捆绑 selenium-manager 在最近的Selenium版本中。
验证它是否有效:
chromium --version # or google-chrome --version2.安装Python依赖项
需要 Python 3.11+.
pip install -r requirements.txt3.运行服务器
使用Cursor IDE(推荐):
这 .cursor/mcp.json 已配置--只需在Cursor中打开此项目 relish MCP服务器将可用。
注: MCP配置运行python3 server.py。如果您已安装 virtualenv中的依赖关系,更新.cursor/mcp.json使用您的 venv的Python路径(例如。".venv/bin/python3"),或全局安装。
集 RELISH_HEADLESS=0 在 .cursor/mcp.json env以查看浏览器窗口(对调试很有用)。
独立(标准传输):
python server.py4.首次设置(代理指导)
代理为您处理所有首次配置:
- 凭证 --客服将询问您的Relish电子邮件和密码,并安全保存(
.credentials,克莫德600英镑)。您还可以手动或通过环境变量进行设置(RELISH_EMAIL,RELISH_PASSWORD). - 多因素认证 --首次登录时,验证码会通过电子邮件发送给您。客服会要求你粘贴6位代码。之后,Cookie会被保存,MFA会被跳过30天。
- 食物偏好 --客服会问你喜欢/不喜欢什么菜,你喜欢怎么点,然后保存你的偏好(
.food_preferences.json)。
所有这一切都是通过对话进行的——只要开始与代理聊天,它就会引导你完成它。
工具
| 工具 | 说明 |
|---|---|
set_credentials | 保存电子邮件+密码(首次设置) |
login | 验证(首先尝试保存的Cookie) |
submit_mfa_code | 完成MFA验证 |
get_schedule | 餐厅+约会订单 |
get_week_overview | 全周总结 |
get_unordered_days | 无需订购(批量订购)即可享受每天的完整菜单 |
get_subsidy | 剩余公司餐费预算 |
get_menu | 一家餐厅的菜单项目 |
get_item_options | 商品的尺寸、侧面、顶部(订购前请致电) |
get_all_menus | 所有餐厅的约会菜单 |
save_menus_to_file | 将菜单导出到markdown |
get_orders | 即将完成或已完成的订单 |
place_order | 订购菜单项 |
cancel_order | 取消订单 |
get_food_preferences | 用户的饮食偏好 |
set_food_preferences | 更新首选项 |
logout | 关闭浏览器会话 |
建筑
server.py — MCP tool definitions (thin wrapper)
relish_browser.py — All Selenium automation logic
relish_models.py — Dataclasses (DaySchedule, MenuItem, Order, etc.)
.credentials — Login credentials (chmod 600, gitignored)
.cookies.json — Session cookies (gitignored)
.food_preferences.json — Dietary preferences (gitignored)食物偏好
存储在 .food_preferences.json (忽略了)。首次使用时,客服会询问您喜欢什么,并保存您的偏好。您也可以直接编辑文件:
{
"yes": ["Mexican bowls", "Greek", "Mediterranean"],
"no": ["Sushi"],
"style": "Prefer bowls and plates over sandwiches",
"notes": "Pick restaurants tagged 'Office favorite' when they match preferences",
"auto_order": false
}集 auto_order 到 true 如果你想让代理商在没有确认的情况下提货和订购。
随时通过更新 set_food_preferences 工具或编辑文件。
