Maître d'MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RESTAURANT_MCP_KEY | Yes | Master key generated during setup that replaces individual API keys and credentials by encrypting them in the local database. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_restaurantsA | Search for restaurants matching your criteria near a location. Automatically applies your dietary restrictions, cuisine preferences, minimum rating threshold, and blacklist. Args: cuisine: Type of food, e.g. "italian", "mexican", "sushi". Leave empty to search all cuisines. location: Where to search near. Use "home", "work", or a specific NYC address. party_size: Number of diners. price_max: Maximum price level 1-4. Leave empty to use your saved price preferences. outdoor_seating: True if outdoor seating is specifically desired. query: Free-text search for specific restaurants or features, e.g. "rooftop bar", "Carbone". max_results: Maximum restaurants to return (default 5, max 10). Returns: Formatted list of matching restaurants with ratings, prices, walking distance, and cuisine info. |
| setup_preferencesB | Set up or update your restaurant preferences. Call this when the user first configures the assistant or wants to change their profile. Args: name: User's first name. home_address: Home address for "near home" searches. work_address: Work address for "near work" searches. dietary_restrictions: E.g. ["vegetarian", "nut_allergy"]. favorite_cuisines: Cuisines you love, e.g. ["italian", "korean"]. cuisines_to_avoid: Cuisines you dislike, e.g. ["fast_food"]. price_levels: Acceptable price levels 1-4, e.g. [2, 3]. noise_preference: "quiet", "moderate", or "lively". seating_preference: "indoor", "outdoor", or "no_preference". max_walk_minutes: Maximum walking time from location (default 15). default_party_size: Usual party size (default 2). rating_threshold: Minimum Google rating to show (default 4.0). Returns: Confirmation message with saved preferences summary. |
| get_my_preferencesA | Show all your current restaurant preferences including dietary restrictions, favorite cuisines, saved locations, and dining defaults. Returns: A formatted summary of all preferences. |
| update_preferencesA | Update specific preferences without resetting everything. Only provided fields are changed; everything else stays the same. Args: dietary_restrictions: Replace full dietary list. add_favorite_cuisine: Add a single cuisine to favorites. remove_favorite_cuisine: Remove a cuisine from favorites. add_avoid_cuisine: Add a cuisine to avoid list. noise_preference: "quiet", "moderate", or "lively". seating_preference: "indoor", "outdoor", or "no_preference". rating_threshold: Minimum Google rating. default_party_size: Usual party size. max_walk_minutes: Maximum walking time. Returns: Confirmation of what was changed. |
| manage_personA | Add, update, or remove a dining companion. Args: name: Person's name (case-insensitive matching). action: "add" to create/update, "remove" to delete. dietary_restrictions: Their restrictions, e.g. ["nut_allergy", "vegan"]. no_alcohol: True if they don't drink alcohol. notes: Any other notes, e.g. "Prefers window seats". Returns: Confirmation of the action taken. |
| list_peopleA | List all saved dining companions with their dietary restrictions and notes. Returns: Formatted list of all people and their preferences. |
| manage_groupA | Create, update, or remove a named group of dining companions. Args: group_name: Name for the group, e.g. "work_team", "family". action: "add" to create/update, "remove" to delete the group. members: List of people names (must already be saved via manage_person). Returns: Confirmation with group details and merged dietary restrictions. |
| list_groupsB | List all saved groups with their members and merged dietary restrictions. Returns: Formatted list of groups with member details. |
| manage_blacklistA | Add or remove restaurants from your blacklist. Blacklisted restaurants will never appear in search results or recommendations. Args: restaurant_name: Name of the restaurant. action: "add" to blacklist, "remove" to un-blacklist. reason: Why you're blacklisting (for your records). Returns: Confirmation of the action. |
| manage_wishlistA | Add or remove restaurants from your wishlist — places you want to try in the future. Wishlisted restaurants get a boost in recommendations when you're nearby. The restaurant must already appear in search results (search first). Args: restaurant_name: Name of the restaurant. action: "add" to wishlist, "remove" to un-wishlist. notes: Free-text notes (e.g. "get the tasting menu"). tags: Comma-separated tags for filtering, e.g. "date night, special occasion". Common tags: date night, group dinner, special occasion, brunch, solo, outdoor, weeknight. Returns: Confirmation of the action. |
| my_wishlistA | Show your restaurant wishlist, optionally filtered by tag. Args: tag: Filter by a single tag (e.g. "date night"). Returns: Numbered list of wishlisted restaurants with details. |
| store_resy_credentialsA | Save your Resy account credentials for automated booking. Recommended: Set RESY_EMAIL and RESY_PASSWORD as environment variables (or in your .env file) so credentials never appear in chat history. If env vars are set, call this tool with no arguments. Credentials are encrypted and stored locally — never sent anywhere except to Resy's own servers for authentication. The password is NOT persisted after authentication. Args: email: Your Resy account email (or set RESY_EMAIL env var). password: Your Resy account password (or set RESY_PASSWORD env var). Returns: Confirmation that credentials were saved and verified, or an error if login failed. |
| store_opentable_credentialsA | Save your OpenTable DAPI credentials for automated booking. The CSRF token (
Recommended: Set OPENTABLE_CSRF_TOKEN as an environment variable so it never appears in chat history. Args: csrf_token: The x-csrf-token value from your browser session (or set OPENTABLE_CSRF_TOKEN env var). email: Your OpenTable account email (or set OPENTABLE_EMAIL env var). first_name: First name for reservations. last_name: Last name for reservations. phone: Phone number for reservations. Returns: Confirmation that credentials were saved. |
| check_availabilityA | Check reservation availability at a restaurant. Searches both Resy and OpenTable when available. Args: restaurant_name: Name of the restaurant. date: Date to check — "2026-02-14", "Saturday", "tomorrow", etc. party_size: Number of diners. preferred_time: Preferred time like "19:00". Results are sorted by proximity to this time if provided. Returns: Available time slots with platform info, or a message if none found. |
| make_reservationA | Book a reservation at a restaurant via Resy or OpenTable. Only call this after the user has confirmed they want to book. Args: restaurant_name: Name of the restaurant. date: Reservation date — "2026-02-14", "Saturday", etc. time: Reservation time — "19:00" or "7:00 PM". party_size: Number of diners. special_requests: E.g. "birthday", "quiet table". Returns: Confirmation with details and confirmation number. |
| cancel_reservationA | Cancel an existing reservation (Resy or OpenTable). Provide either the restaurant name (cancels most recent upcoming) or a specific confirmation ID. Args: restaurant_name: Restaurant name to look up. confirmation_id: Specific confirmation ID. Returns: Cancellation confirmation or error. |
| my_reservationsA | Show all your upcoming reservations across Resy and OpenTable. Returns: Formatted list of upcoming reservations with dates, times, party sizes, and confirmation numbers. |
| log_visitA | Log a restaurant visit (for places booked outside the system). Visits booked through this assistant are logged automatically. Args: restaurant_name: Name of the restaurant you visited. date_str: Date of visit, e.g. "2026-02-10" or "last Tuesday" (default: today). party_size: Number of diners. companions: Names of who you dined with, e.g. ["Alice", "Bob"]. cuisine: Type of cuisine, e.g. "italian", "mexican". Returns: Confirmation with visit ID for adding a review. |
| rate_visitA | Rate a restaurant you recently visited. Used to improve future recommendations. Args: restaurant_name: Name of the restaurant. would_return: True if you'd go back, False if not. overall_rating: 1-5 stars (optional). noise_level: "quiet", "moderate", or "loud" — helps calibrate future recs. dishes: List of dishes with ratings, e.g. [{"name": "cacio e pepe", "rating": 5, "order_again": true}]. notes: Any additional notes, e.g. "Great for date night". Returns: Confirmation that the review was saved. |
| visit_historyB | Show your recent restaurant visit history. Args: days: How many days back to look (default 90). cuisine: Filter by cuisine type (optional). Returns: Formatted list of recent visits with dates, ratings, and notes. |
| get_recommendationsA | Get personalized restaurant recommendations based on your history, preferences, and current context (weather, recent visits). Args: occasion: The type of dining occasion. Options: "date_night" - romantic, quieter spots "casual" - relaxed, neighborhood places "group_dinner" - accommodates larger parties "special" - high-end, celebration-worthy "quick" - fast, nearby options Leave empty for general recommendations. party_size: Number of diners. location: "home", "work", or an address. group: Name of a saved group — their restrictions will be applied. exclude_recent_days: Don't recommend places visited in the last N days. Returns: Curated list of 3-5 restaurants with reasons for each recommendation. |
| search_for_groupA | Search for restaurants suitable for a saved group. Automatically merges all members' dietary restrictions and finds restaurants that work for everyone. Args: group_name: Name of the saved group (e.g., "work_team", "family"). location: Where to search near. date: Date for the dinner. time: Preferred time. cuisine: Specific cuisine (optional). Returns: Restaurant recommendations with notes on dietary compatibility. |
| api_costsB | Show API usage costs broken down by provider. Args: days: Number of days to look back (default 30). Returns: Formatted table of API costs per provider. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/devingoodsell/matire-d-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server