Toast MCP Server
Servidor Toast MCP
Un servidor de solo lectura del Model Context Protocol para la API de Toast POS. Permite que un asistente de IA responda preguntas sobre tu restaurante y genere informes de ventas, mano de obra y caja directamente desde los datos en vivo de Toast.
Nunca escribe en Toast. El cliente HTTP solo emite solicitudes GET; el único POST en el
código es la llamada de autenticación que Toast requiere para generar un token, y está aislado en
src/auth.ts. La prueba de humo lo verifica.
Qué puedes preguntar
Una vez conectado, preguntas como estas funcionan:
"¿Cómo nos fue la semana pasada en comparación con la anterior?"
"¿Cuáles fueron nuestros 20 artículos principales por ventas netas en julio, y cuál es el precio promedio de cada uno?"
"Desglosa las ventas por hora para el sábado pasado: ¿cuándo es nuestro verdadero rush de la cena?"
"¿Cuál es nuestra mezcla de efectivo vs. tarjeta este mes, y cuánto pagamos en comisiones de procesamiento de tarjetas?"
"¿Qué descuentos se están usando más, y por cuánto?"
"Muéstrame todos los anulados de las últimas dos semanas con el motivo y quién estaba trabajando."
"¿Cuál fue la mano de obra como porcentaje de las ventas netas el mes pasado, por empleado?"
"¿Qué tenemos agotado (86'd) ahora mismo?"
"Encuentra el pedido de $340 del viernes por la noche y muéstrame qué contenía."
"¿Cuáles son nuestros horarios los domingos, y qué opciones de servicio tenemos configuradas?"
Related MCP server: Shopify MCP Server
Requisitos
Node.js 20 o superior (compilado y probado en Node 22).
Credenciales de la API de Toast. Para un restaurante que informa sobre sus propios datos, el producto adecuado es Acceso API estándar, que es de solo lectura por diseño y autoservicio:
En Toast Web, ve a Integraciones → Acceso a la API de Toast → Administrar credenciales.
Crea un conjunto de credenciales, asígnale un nombre (por ejemplo,
mcp-reporting) y selecciona los alcances de lectura a continuación.Copia el ID de cliente y el secreto de cliente; el secreto se muestra solo una vez.
Si tu cuenta no tiene esa opción, es parte de Restaurant Management Essentials; tu representante de Toast puede activarla. Las integraciones de socios obtienen credenciales del equipo de integraciones de Toast en su lugar.
Alcances a habilitar
Alcance | Necesario para |
| Todos los informes de ventas: este es el principal |
| Opciones de servicio, centros de ingresos, categorías de ventas, descuentos, motivos de anulación, mesas |
| Perfil de la ubicación, zona horaria, hora de cierre, horas de servicio |
| Entradas de tiempo, turnos, puestos |
| Nombres de empleados (sin él, los servidores aparecen como GUID cortos) |
| Menú publicado, precios, modificadores |
| Entradas de cajón y depósitos |
| Artículos agotados / 86'd |
Solo se necesitan orders:read, config:read y restaurants:read para los informes de ventas principales. El
servidor se degrada correctamente si falta un alcance: la herramienta afectada informa la denegación y las
demás siguen funcionando. Ejecuta toast_check_connection para ver exactamente qué está concedido.
También necesitas tu GUID de restaurante. toast_check_connection lo informa, o búscalo en la URL
de Toast Web cuando la ubicación está seleccionada, o usa toast_list_restaurants con un GUID de grupo de gestión.
Instalación
npm install && npm run buildLuego copia la plantilla de entorno y complétala:
cp .env.example .envComo mínimo, establece TOAST_CLIENT_ID, TOAST_CLIENT_SECRET y TOAST_RESTAURANT_GUID. El servidor
lee este archivo automáticamente (mediante el soporte nativo de archivos de entorno de Node), y .env está en gitignore.
Verifica las credenciales antes de conectar cualquier cosa:
npm run check-connectionEso imprime el entorno, los alcances concedidos, el nombre del restaurante, su zona horaria y hora de cierre, y la fecha comercial actual.
Conéctalo a Claude
El servidor habla MCP sobre stdio. Tienes dos opciones para las credenciales, y solo necesitas una:
Déjalas en
.env. El servidor carga.envdesde su propio directorio de paquete, independientemente del directorio de trabajo desde el que el cliente lo inicie, por lo que la configuración a continuación funciona sin ningún bloqueenven absoluto, y tus secretos permanecen fuera del archivo de configuración del cliente.Ponlas en el bloque
envdel cliente, como se muestra a continuación. Las variables de entorno reales siempre tienen prioridad sobre.env, por lo que esto gana si ambos están presentes.
Claude Code
Si completaste .env, esto es todo lo que necesitas: sin credenciales en el comando:
claude mcp add toast -- node /absolute/path/to/toast_mcp/dist/index.jsPara pasar credenciales explícitamente en su lugar:
claude mcp add toast --env TOAST_CLIENT_ID=your-id --env TOAST_CLIENT_SECRET=your-secret --env TOAST_RESTAURANT_GUID=your-restaurant-guid -- node /absolute/path/to/toast_mcp/dist/index.jsClaude Desktop
Agrega a claude_desktop_config.json:
{
"mcpServers": {
"toast": {
"command": "node",
"args": ["/absolute/path/to/toast_mcp/dist/index.js"],
"env": {
"TOAST_CLIENT_ID": "your-client-id",
"TOAST_CLIENT_SECRET": "your-client-secret",
"TOAST_RESTAURANT_GUID": "your-restaurant-guid"
}
}
}
}Elimina el bloque env por completo si estás usando .env. En Windows usa barras diagonales o barras invertidas
escapadas en la ruta.
Configuración
Variable | Predeterminado | Propósito |
| (obligatorio) | ID de cliente de la API |
| (obligatorio) | Secreto de cliente de la API |
| — | Carga este archivo en lugar de buscar |
| — | Restaurante predeterminado; cada herramienta puede anularlo por llamada |
| — | Habilita |
|
|
|
| — | URL base completa; anula |
|
| Caché en disco para fechas comerciales liquidadas |
|
| Dónde se almacenan los pedidos en caché |
|
| Días que siempre se vuelven a obtener en vivo |
|
| Límite de fechas comerciales por informe |
|
|
|
Herramientas
Conexión y configuración
Herramienta | Qué hace |
| Verifica credenciales, prueba cada API, muestra alcances, zona horaria, hora de cierre, estado de caché |
| Perfil de ubicación: dirección, teléfono, horarios, moneda, configuración de pedidos en línea y entrega |
| Cada ubicación en un grupo de gestión, con GUIDs |
| Elimina la caché local (no toca nada en Toast) |
Informes
Herramienta | Qué hace |
| Ingresos y volumen principales, opcionalmente vs. el período anterior o el año pasado |
| Ventas netas agrupadas por artículo, categoría de ventas, grupo de menú, hora, día de la semana, fecha, servidor, opción de servicio, fuente, centro de ingresos, área de servicio o mesa |
| Mezcla de métodos de pago, marcas de tarjetas, propinas, reembolsos, comisiones de procesamiento |
| Descuentos y cortesías por nombre, con recuentos de uso |
| Pedidos, cheques y artículos anulados por motivo |
| Horas, costo estimado y mano de obra como porcentaje de las ventas netas |
| Entradas de cajón y depósitos, conciliados con los pagos en efectivo |
Búsqueda
Herramienta | Qué hace |
| Encuentra pedidos individuales por monto, canal, servidor o texto de cliente/mesa |
| Un pedido completo: líneas de artículos, modificadores, descuentos, pagos |
| Cualquiera de las 24 colecciones de configuración: la forma de descubrir GUIDs para filtros |
| Estructura del menú publicado, lista de precios o detalle de modificadores de un artículo |
| Inventario actual / artículos 86'd |
| Plantilla y lista de puestos con salarios |
| Registros individuales de entrada/salida |
| Turnos programados |
Fechas
Cada informe trabaja con fechas comerciales en la zona horaria del restaurante, respetando su hora de cierre configurada, por lo que una venta del sábado a las 2 a.m. cae en la fecha comercial del viernes, exactamente como en los informes de Toast.
Usa date_range para un valor predefinido (today, yesterday, this_week, last_week, last_7_days,
last_14_days, last_30_days, last_90_days, this_month, last_month, month_to_date,
year_to_date) o start_date / end_date para cualquier otra cosa. Estos aceptan 2026-08-01,
20260801, today, yesterday o desplazamientos relativos como -7d, -2w, -3m. El valor predeterminado cuando
no se especifica nada es yesterday.
Cómo se definen los números
Estos provienen de datos de pedidos sin procesar, por lo que pueden diferir en pequeñas cantidades de los informes de Toast Web, que agregan reglas contables adicionales. Cada informe reafirma sus definiciones en su salida.
Medida | Definición |
Ventas brutas | Suma de |
Descuentos | Todos los descuentos aplicados, tanto a nivel de artículo como de cuenta. |
Ventas netas | Suma del |
Cargos por servicio | Cargos por servicio aplicados no marcados como propina. Se informan por separado de las ventas netas. |
Propina automática | Cargos por servicio marcados como |
Propinas |
|
Diferido | Ventas de tarjetas de regalo. Dinero cobrado, pero no ingresos: se excluye de las ventas netas y se muestra en su propia línea. |
Anulaciones | Los pedidos, cuentas y artículos anulados o eliminados se excluyen por completo de las ventas y se informan en |
Una sutileza que vale la pena conocer. En el modelo de datos de Toast, el price y el preDiscountPrice de una línea de pedido ya incluyen los precios de sus modificadores anidados. Sumar los modificadores además de su padre duplica cada recargo. Este servidor solo suma selecciones de nivel superior, y el conjunto de pruebas verifica que el modificador no se cuente dos veces.
Dos supuestos se indican donde corresponda: el costo de mano de obra estima las horas extra a 1,5× el salario por hora registrado (Toast no informa la tarifa real de horas extra; el multiplicador es un argumento de la herramienta), y las entradas de tiempo sin salario registrado contribuyen horas pero no costo.
Límites de velocidad y caché
Toast permite 20 solicitudes/segundo en general, 5/segundo para ordersBulk y 1/segundo para menus. El servidor ejecuta un limitador de token-bucket por debajo de cada uno de esos límites y reintenta las respuestas 429 y 5xx con retroceso exponencial, respetando Retry-After.
Debido a que un informe de un mes implica extraer cada pedido de 30 fechas hábiles, las fechas completadas se almacenan en caché en disco como JSON. Hoy y los TOAST_CACHE_SETTLE_DAYS días anteriores (1 por defecto) siempre se vuelven a obtener, ya que las propinas, los reembolsos y los cierres siguen cambiando. Pase refresh: true a cualquier informe para omitir la caché, o ejecute toast_clear_cache después de hacer una corrección en Toast para una fecha anterior. El pie de página de cada informe indica cuántas fechas provienen de la caché frente a las en vivo.
Desarrollo
npm run typecheck # type-check without emitting
npm run build # compile to dist/
npm test # build, then run the end-to-end smoke testnpm test inicia una API Toast simulada con datos de prueba calculados a mano, lanza el servidor compilado como un proceso hijo real y maneja las 19 herramientas a través de stdio como lo haría un cliente MCP. Verifica la aritmética real (ventas netas, impuestos, propinas, ingresos diferidos, costo de mano de obra, totales de anulaciones), que los GUID se resuelvan a nombres, que la paginación no trunque, que la caché se use y se omita correctamente, que los errores se muestren de forma legible — y que nada más que solicitudes GET más el POST de autenticación llegue a la API.
Estructura
src/
index.ts MCP server entry, tool registration, --check-connection
env.ts .env discovery and loading, with environment taking precedence
config.ts Environment loading and validation
auth.ts Token acquisition, caching, refresh (the only POST)
client.ts Read-only HTTP client: retries, rate limiting, pagination
rateLimiter.ts Token-bucket limiters matched to Toast's documented limits
cache.ts On-disk cache for settled business dates
service.ts Data access across Orders, Config, Menus, Labor, Cash, Stock
dates.ts Business-date arithmetic in the restaurant's time zone
aggregate.ts Revenue definitions and the single-pass fact builder
grouping.ts Group-by dimensions
names.ts GUID to human name resolution
money.ts Integer-cent arithmetic and currency formatting
format.ts Text table rendering
tools/ One module per tool group
test/
mock-toast.mjs Fixture Toast API
config.mjs Credential loading, .env precedence, error messages
smoke.mjs End-to-end assertionsSolución de problemas
"Falta(n) variable(s) de entorno requerida(s)" — el servidor no encontró credenciales. El mensaje indica la ruta exacta de .env a crear. Si dice que se leyó un .env pero no definió la variable, verifique si hay un error tipográfico o un valor en blanco: un valor en blanco cuenta como no definido.
Un valor de .env parece ignorarse — algo en el entorno real lo está sobrescribiendo, ya que las variables de entorno tienen prioridad. toast_check_connection informa de qué fuente provienen las credenciales. (Una variable exportada como vacía, p. ej. TOAST_CLIENT_ID=, se trata como no definida y no bloqueará el valor de .env.)
403 en algunas herramientas pero no en otras — falta un alcance. Ejecute toast_check_connection; la tabla de acceso a la API muestra cuáles están denegados. Agregue el alcance a su conjunto de credenciales en Toast Web.
Los servidores o categorías se muestran como #a1b2c3d4 — el alcance de Configuración o Mano de obra no está concedido, por lo que los GUID no se pueden resolver a nombres. Las cifras de ventas siguen siendo correctas.
Los números difieren ligeramente de Toast Web — es de esperar; consulte la tabla de definiciones anterior. Las causas más comunes son que el panel de Toast trate los cargos por servicio o los ingresos diferidos de manera diferente.
Una fecha pasada parece desactualizada — se hizo una corrección en Toast después de que la fecha se almacenara en caché. Pase refresh: true o ejecute toast_clear_cache.
Los informes son lentos la primera vez — un informe de 90 días extrae cada pedido de 90 fechas hábiles. La segunda ejecución se sirve desde la caché.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to query and manage QuickBooks Online data through natural language, including customers, invoices, bills, vendors, accounts, and financial reports.7MIT
- AlicenseAqualityDmaintenanceProvides AI assistants with real-time access to Shopify store analytics, sales data, and inventory through ShopifyQL and the Admin GraphQL API. It enables users to query store performance, customer metrics, and marketing insights using natural language.13MIT
- FlicenseBqualityCmaintenanceEnables restaurant management through natural language, allowing import of Toast CSV data, labor/sales analysis, tip pool calculations, task management, and note-taking.14
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage restaurant operations by integrating with Toast POS, including orders, menus, employees, payments, inventory, and reporting through 50+ tools and 18 React apps.8
Related MCP Connectors
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/daveed716/toast-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server