Skip to main content
Glama
daveed716

Toast MCP Server

by daveed716

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:

    1. En Toast Web, ve a Integraciones → Acceso a la API de Toast → Administrar credenciales.

    2. Crea un conjunto de credenciales, asígnale un nombre (por ejemplo, mcp-reporting) y selecciona los alcances de lectura a continuación.

    3. 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

orders:read

Todos los informes de ventas: este es el principal

config:read

Opciones de servicio, centros de ingresos, categorías de ventas, descuentos, motivos de anulación, mesas

restaurants:read

Perfil de la ubicación, zona horaria, hora de cierre, horas de servicio

labor:read

Entradas de tiempo, turnos, puestos

labor.employees:read

Nombres de empleados (sin él, los servidores aparecen como GUID cortos)

menus:read

Menú publicado, precios, modificadores

cashmgmt:read

Entradas de cajón y depósitos

stock:read

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 build

Luego copia la plantilla de entorno y complétala:

cp .env.example .env

Como 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-connection

Eso 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 .env desde 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 bloque env en absoluto, y tus secretos permanecen fuera del archivo de configuración del cliente.

  • Ponlas en el bloque env del 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.js

Para 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.js

Claude 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

TOAST_CLIENT_ID

(obligatorio)

ID de cliente de la API

TOAST_CLIENT_SECRET

(obligatorio)

Secreto de cliente de la API

TOAST_ENV_FILE

Carga este archivo en lugar de buscar .env; útil para un archivo de credenciales por ubicación

TOAST_RESTAURANT_GUID

Restaurante predeterminado; cada herramienta puede anularlo por llamada

TOAST_MANAGEMENT_GROUP_GUID

Habilita toast_list_restaurants para grupos de múltiples ubicaciones

TOAST_ENV

production

production o sandbox

TOAST_HOSTNAME

URL base completa; anula TOAST_ENV

TOAST_CACHE_ENABLED

true

Caché en disco para fechas comerciales liquidadas

TOAST_CACHE_DIR

~/.toast-mcp/cache

Dónde se almacenan los pedidos en caché

TOAST_CACHE_SETTLE_DAYS

1

Días que siempre se vuelven a obtener en vivo

TOAST_MAX_DAYS

92

Límite de fechas comerciales por informe

TOAST_LOG_LEVEL

info

debug registra cada solicitud en stderr


Herramientas

Conexión y configuración

Herramienta

Qué hace

toast_check_connection

Verifica credenciales, prueba cada API, muestra alcances, zona horaria, hora de cierre, estado de caché

toast_get_restaurant

Perfil de ubicación: dirección, teléfono, horarios, moneda, configuración de pedidos en línea y entrega

toast_list_restaurants

Cada ubicación en un grupo de gestión, con GUIDs

toast_clear_cache

Elimina la caché local (no toca nada en Toast)

Informes

Herramienta

Qué hace

toast_sales_summary

Ingresos y volumen principales, opcionalmente vs. el período anterior o el año pasado

toast_sales_breakdown

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

toast_payment_summary

Mezcla de métodos de pago, marcas de tarjetas, propinas, reembolsos, comisiones de procesamiento

toast_discount_summary

Descuentos y cortesías por nombre, con recuentos de uso

toast_void_report

Pedidos, cheques y artículos anulados por motivo

toast_labor_summary

Horas, costo estimado y mano de obra como porcentaje de las ventas netas

toast_cash_report

Entradas de cajón y depósitos, conciliados con los pagos en efectivo

Búsqueda

Herramienta

Qué hace

toast_search_orders

Encuentra pedidos individuales por monto, canal, servidor o texto de cliente/mesa

toast_get_order

Un pedido completo: líneas de artículos, modificadores, descuentos, pagos

toast_list_config

Cualquiera de las 24 colecciones de configuración: la forma de descubrir GUIDs para filtros

toast_get_menu

Estructura del menú publicado, lista de precios o detalle de modificadores de un artículo

toast_get_stock

Inventario actual / artículos 86'd

toast_list_employees

Plantilla y lista de puestos con salarios

toast_time_entries

Registros individuales de entrada/salida

toast_list_shifts

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 preDiscountPrice en líneas de pedido no anuladas y no diferidas. Excluye impuestos.

Descuentos

Todos los descuentos aplicados, tanto a nivel de artículo como de cuenta.

Ventas netas

Suma del price de las líneas de pedido, que ya es neto de descuentos a nivel de artículo y de cuenta. Equivale a ventas brutas menos descuentos. Excluye impuestos, propinas, propina automática y cargos por servicio.

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 gratuity.

Propinas

tipAmount en pagos que realmente se cobraron (se excluyen pagos anulados y denegados).

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 toast_void_report.

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 test

npm 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 assertions

Solució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é.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query and manage QuickBooks Online data through natural language, including customers, invoices, bills, vendors, accounts, and financial reports.
    7
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    13
    MIT

View all related MCP servers

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, ...

View all MCP Connectors

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/daveed716/toast-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server