Labsco
jamesmontemagno logo

Lunch Roulette MCP Server

โ˜… 5

from jamesmontemagno

Manages and randomly selects from a list of lunch restaurants, storing choices and visit statistics locally.

๐Ÿ”ฅโœ“ VerifiedFreeQuick setup

Lunch Roulette MCP Server

A Model Context Protocol (MCP) server for managing lunch restaurant choices and picking random restaurants. This server helps you decide where to eat lunch by maintaining a list of restaurants and tracking visit statistics.

Features

Available Tools

  1. GetRestaurants - List all available restaurants
  2. AddRestaurant - Add a new restaurant to your choices
  3. PickRandomRestaurant - Randomly select a restaurant for lunch
  4. GetVisitStatistics - View statistics about how often you've visited each restaurant

Pre-loaded Restaurants

The server comes pre-loaded with 10 trendy restaurants from the West Hollywood area:

  • Guelaguetza - Oaxacan Mexican (3014 W Olympic Blvd)
  • Republique - French Bistro (624 S La Brea Ave)
  • Night + Market WeHo - Thai Street Food (9041 Sunset Blvd)
  • Gracias Madre - Vegan Mexican (8905 Melrose Ave)
  • The Ivy - Californian (113 N Robertson Blvd)
  • Catch LA - Seafood (8715 Melrose Ave)
  • Cecconi's - Italian (8764 Melrose Ave)
  • Earls Kitchen + Bar - Global Comfort Food (8730 W Sunset Blvd)
  • Pump Restaurant - Mediterranean (8948 Santa Monica Blvd)
  • Craig's - American Contemporary (8826 Melrose Ave)

Data Storage

The server stores restaurant data and visit statistics in:

  • Windows: %APPDATA%\\LunchTimeMCP\\restaurants.json
  • macOS/Linux: ~/.config/LunchTimeMCP/restaurants.json

This ensures your data persists between server restarts.

Architecture

The server is built using:

  • .NET 9.0 - Runtime platform
  • Microsoft.Extensions.Hosting - Application hosting framework
  • ModelContextProtocol - MCP server implementation
  • System.Text.Json - JSON serialization

Key Components

  • RestaurantService - Core business logic for managing restaurants and visit tracking
  • RestaurantTools - MCP tool implementations
  • Restaurant/RestaurantVisitInfo - Data models
  • RestaurantContext - JSON serialization context

Example Interactions

  1. "Show me all restaurants" โ†’ Calls GetRestaurants tool
  2. "Add a new Italian restaurant called Mario's on Main Street" โ†’ Calls AddRestaurant tool
  3. "Pick a random restaurant for lunch" โ†’ Calls PickRandomRestaurant tool
  4. "Show me visit statistics" โ†’ Calls GetVisitStatistics tool