home / mcp / lumen resto mcp server

Lumen Resto MCP Server

Provides multi-restaurant reservation and schedule querying via a secure MCP server backed by Supabase.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "automattaia-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SUPABASE_URL=https://your-supabase-url.supabase.co",
        "-e",
        "SUPABASE_SERVICE_ROLE_KEY=your-service-role-key",
        "lumen-resto-mcp"
      ],
      "env": {
        "SUPABASE_URL": "https://your-supabase-url.supabase.co",
        "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key"
      }
    }
  }
}

This MCP server lets you create reservations and query restaurant schedules securely in a multi-tenant setup using Supabase. It is designed for agents handling WhatsApp and phone calls, enabling quick checks of opening hours and automatic table assignments across multiple restaurants from a single server.

How to use

You will interact with the MCP server through a client that sends tool-like requests to check schedules and create reservations. Use check_restaurant_schedule to verify a restaurant’s hours for a given date and time, and use create_reservation to book a table with automatic table assignment. The server enforces multi-tenant separation by requiring a restaurant_id with every request and by filtering data to that restaurant only. When you request a reservation, you will receive a confirmed status with a table assignment, or guidance on available alternative times if no tables are free.

How to install

Prerequisites: you need Docker installed to run the MCP server in a container. You also need valid Supabase credentials (URL and service role key) to connect to the data backend.

# Run the MCP server via Docker
# Replace the environment values with your actual Supabase details
docker run -i --rm \
  -e SUPABASE_URL="https://your-supabase-url.supabase.co" \
  -e SUPABASE_SERVICE_ROLE_KEY="your-service-role-key" \
  lumen-resto-mcp

Additional content

Environment variables are required for the server to connect to Supabase. The following variables must be provided when you run the container or set in your deployment environment.

SUPABASE_URL: URL del proyecto Supabase
SUPABASE_SERVICE_ROLE_KEY: Service role key de Supabase (secret - nunca logueado)

Configuration, security, and notes

Security and operational rules ensure safe multi-tenant usage and protect sensitive data. The server enforces a whitelist of eight tables, validates inputs strictly (UUIDs, dates, times, and numeric ranges), masks phone numbers in logs, and avoids logging authorization headers. The network layer uses timeouts and a shared HTTP client, with no retry logic for quick failure when something goes wrong.

Key runtime flows you should know about:

- Build and run: you must supply SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY as environment variables when starting the server. The server logs go to stderr with timestamps and levels like INFO and ERROR.

- Available tools include check_restaurant_schedule and create_reservation. You can test availability and reservations through the provided testing commands.

- Troubleshooting follows common patterns: missing or invalid Supabase credentials, timeouts when contacting Supabase, or attempting to reserve for a closed restaurant. See the troubleshooting notes for typical error messages and resolutions.

Troubleshooting

Common errors include missing environment variables, invalid Supabase credentials, or network timeouts. Ensure SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY are set, verify the Supabase service role key is correct and not expired, and confirm network connectivity to the Supabase instance.

If you get a message indicating the restaurant is not found or it is closed, verify the restaurant_id exists and check the restaurant’s schedules and special dates.

Testing tools and examples

You can verify available tools and run sample checks and reservations using the provided test commands.

# List available tools
# Use the tooling interface to list: check_restaurant_schedule, create_reservation

Available tools

check_restaurant_schedule

Queries a restaurant's hours for a specific date and time, returning whether it is open and the service window.

create_reservation

Creates a new reservation with automatic table assignment, returning the reservation ID, table, duration, and timezone; includes anti-overbooking and deduplication checks.