MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

MCP server for ezcater.com/relish lunch program

创建于 3/31/2026
更新于 about 6 hours ago
Repository documentation and setup instructions

Relish MCP Server

MCP (Model Context Protocol) server for Relish by ezCater — manage corporate-subsidized lunch orders from your CLI or AI agents.

Features

  • View schedule — see available restaurants, delivery times, and meal availability for any date
  • Browse menus — get full menus with prices, categories, and dietary tags
  • Place orders — complete end-to-end ordering (add to cart → checkout → confirm)
  • Cancel orders — cancel existing orders
  • Check subsidy — see remaining company meal budget
  • Week overview — see all available dates and orders at once
  • Food preferences — store and retrieve dietary preferences for AI-assisted ordering
  • Cookie persistence — MFA only needed once every 30 days

Setup

1. Install Chrome/Chromium

The server uses Selenium with a headless Chrome browser. You need Chrome or Chromium installed:

Fedora/RHEL:

sudo dnf install chromium chromedriver

Ubuntu/Debian:

sudo apt install chromium-browser chromium-chromedriver

macOS (Homebrew):

brew install --cask google-chrome

ChromeDriver is bundled automatically via selenium-manager in recent Selenium versions.

Verify it works:

chromium --version   # or google-chrome --version

2. Install Python dependencies

pip install -r requirements.txt

3. Run the server

With Cursor IDE (recommended):

The .cursor/mcp.json is already configured. Open this project in Cursor and the relish MCP server will be available to the AI agent.

If you cloned this repo to a non-default location, update the cwd path in .cursor/mcp.json:

{
  "mcpServers": {
    "relish": {
      "command": "python3",
      "args": ["server.py"],
      "cwd": "/path/to/relish-mcp",
      "env": {
        "RELISH_HEADLESS": "1"
      }
    }
  }
}

Set RELISH_HEADLESS=0 to see the browser window (useful for debugging).

Standalone (stdio transport):

python server.py

4. First-time setup (agent-guided)

The agent handles all first-time configuration for you:

  1. Credentials — the agent will ask for your Relish email and password and save them securely (.credentials, chmod 600, gitignored). You can also set them manually or via environment variables (RELISH_EMAIL, RELISH_PASSWORD).
  2. MFA — on first login, a verification code is emailed to you. The agent will ask you to paste the 6-digit code. After that, cookies are saved and MFA is skipped for 30 days.
  3. Food preferences — the agent will ask what cuisines you like/dislike and how you prefer to order, then save your preferences (.food_preferences.json, gitignored).

All of this happens conversationally — just start chatting with the agent and it will walk you through it.

Tools

| Tool | Description | |------|-------------| | set_credentials | Save email + password (first-time setup) | | login | Authenticate (tries saved cookies first) | | submit_mfa_code | Complete MFA verification | | get_schedule | Restaurants + orders for a date | | get_week_overview | Full week summary | | get_subsidy | Remaining company meal budget | | get_menu | One restaurant's menu items | | get_all_menus | All restaurants' menus for a date | | save_menus_to_file | Export menus to markdown | | get_orders | Upcoming or completed orders | | place_order | Order a menu item | | cancel_order | Cancel an order | | get_food_preferences | User's dietary preferences | | set_food_preferences | Update preferences | | logout | Close browser session |

Architecture

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

Stored in .food_preferences.json (gitignored). On first use, the agent will ask what you like and save your preferences. You can also edit the file directly:

{
  "yes": ["Mexican bowls", "Greek", "Mediterranean"],
  "no": ["Sushi"],
  "style": "Prefer bowls and plates over sandwiches",
  "notes": "Pick restaurants tagged 'Office favorite' when they match preferences"
}

Update anytime via the set_food_preferences tool or by editing the file.

快速设置
此服务器的安装指南

安装命令 (包未发布)

git clone https://github.com/Zinkelburger/relish-mcp
手动安装: 请查看 README 获取详细的设置说明和所需的其他依赖项。

Cursor 配置 (mcp.json)

{ "mcpServers": { "zinkelburger-relish-mcp": { "command": "git", "args": [ "clone", "https://github.com/Zinkelburger/relish-mcp" ] } } }