MCP server for MIT dining hall menus (Bon Appétit)
mit-dining-mcp
An MCP server 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.
Install
Pick whichever runtime you have:
Bun
claude mcp add mit-dining -- bunx mit-dining-mcp
Node.js
claude mcp add mit-dining -- npx mit-dining-mcp
Deno
claude mcp add mit-dining -- deno run -A npm:mit-dining-mcp
From source
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,simmonsdate(optional):YYYY-MM-DDformat
get_weekly_menus
hall(required): same as above
filter_menus_by_diet
diet(required):vegetarian,vegan,halal,kosher,gluten-freehall(optional): limit to one halldate(optional):YYYY-MM-DDformat
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 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.
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.
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:
License
MIT