home / mcp / lumen resto mcp server
Provides multi-restaurant reservation and schedule querying via a secure MCP server backed by Supabase.
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.
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.
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-mcpEnvironment 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)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.
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.
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_reservationQueries a restaurant's hours for a specific date and time, returning whether it is open and the service window.
Creates a new reservation with automatic table assignment, returning the reservation ID, table, duration, and timezone; includes anti-overbooking and deduplication checks.