io.github.hongnoul/mit-dining
Real-time MIT dining hall menus with dietary filtering across all 6 halls
★ 2No licensedevtools
Install
Config snippet generator goes here (5 client tabs)
README
# mit-dining-mcp An [MCP server](https://modelcontextprotocol.io) that provides real-time MIT dining hall menus from all 6 Bon Appétit locations. Ask Claude what's for dinner, filter by dietary needs, plan your meals for the week, or whether if the menus are mid. [](https://asciinema.org/a/yQV3A6ai2U4tvSTu) ## Install Pick whichever runtime you have: **Bun** ```bash claude mcp add mit-dining -- bunx mit-dining-mcp ``` **Node.js** ```bash claude mcp add mit-dining -- npx mit-dining-mcp ``` **Deno** ```bash claude mcp add mit-dining -- deno run -A npm:mit-dining-mcp ``` ### From source ```bash git clone https://github.com/hongnoul/mit-dining-mcp.git cd mit-dining-mcp npm install # or bun install claude mcp add mit-dining -- npx tsx src/index.ts ``` ## Tools | Tool | Description | Example prompt | |------|-------------|----------------| | `get_todays_menus` | All 6 halls, today's menus | "What's for dinner at MIT tonight?" | | `get_hall_menu` | Single hall, optional date | "What's on the menu at Maseeh tomorrow?" | | `get_weekly_menus` | 7-day lookahead for one hall | "What's the menu at Simmons this week?" | | `filter_menus_by_diet` | Filter by dietary preference | "Find vegan options at Next House" | ### Parameters **`get_hall_menu`** - `hall` (required): `baker`, `maseeh`, `mccormick`, `new-vassar`, `next-house`, `simmons` - `date` (optional): `YYYY-MM-DD` format **`get_weekly_menus`** - `hall` (required): same as above **`filter_menus_by_diet`** - `diet` (required): `vegetarian`, `vegan`, `halal`, `kosher`, `gluten-free` - `hall` (optional): limit to one hall - `date` (optional): `YYYY-MM-DD` format ## Dining halls | Key | Name | |-----|------| | `baker` | Baker Dining | | `maseeh` | The Howard Dining Hall at Maseeh | | `mccormick` | McCormick Dining | | `new-vassar` | New Vassar Dining | | `next-house` | Next Dining | | `simmons` | Simmons Dining | ## Examples ### Discord Bot A ready-to-run Discord bot with `/dinner`, `/menu`, and `/diet` slash commands. See [`examples/discord-bot`](examples/discord-bot) for setup instructions. ### iOS Shortcut A tiny HTTP server that returns Siri-friendly plain text. Point an iOS Shortcut at it to ask "Hey Siri, what's for dinner at MIT?" See [`examples/ios-shortcut`](examples/ios-shortcut). ### Google Calendar Sync A script that creates calendar events for each meal period with the full menu in the description. Run it on a cron to keep your week synced. See [`examples/gcal-sync`](examples/gcal-sync). ## How it works MIT's dining is run by Bon Appétit, whose website embeds structured menu data (`Bamco.menu_items` and `Bamco.dayparts`) as JSON in `<script>` tags. This server scrapes and parses that data — no API key needed. Menus are cached in-memory for 1 hour to avoid repeated requests. ## Requirements One of: - [Node.js](https://nodejs.org) 18+ - [Bun](https://bun.sh) - [Deno](https://deno.land) 2+ ## License MIT