# Cardápio Web — how to use (mcp.ai)

Use Claude or ChatGPT with your restaurant on Cardápio Web: current and past orders, revenue, average ticket and best sellers, menu, coupons, reviews and opening hours. Create and edit coupons, and confirm, advance or cancel orders by chat.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_cardapioweb?ms=1794515160000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `cardapioweb_avaliacoes`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/cardapioweb`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/cardapioweb/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/cardapioweb/avaliacoes` — Avaliações dos clientes (nota, comentário, respostas da pesquisa, pedido avaliado) com a média do período. 1 requisição por página de 100 (padrão até 3).
  - body: { data_inicio?: string, data_fim?: string, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/cardapio` — Cardápio da loja: categorias e itens com id, preço, preço promocional ativo, status (ACTIVE visível, INACTIVE oculto, MISSING em falta), tipo (combo) e estoque quando controlado. Use os ids em cardapi
  - body: { busca?: string, categoria_ids?: integer[], status?: string[], incluir_complementos?: boolean, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/cupom/criar` — Cria um cupom de desconto na loja. Cupom sem código fica visível no cardápio para todos; com código, o cliente digita. Crie com ativo=false se quiser revisar antes de liberar.
  - body: { nome: string, tipo: string, valor?: number, codigo?: string, ativo?: boolean, pedido_minimo?: number, limite_usos?: integer, so_clientes_novos?: boolean, cliente_pode_repetir?: boolean, dias?: string[], tipos_pedido?: string[], valido_de?: string, expira_em?: string, horario_inicio?: string, horario_fim?: string, item_ids?: integer[], account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/cupons` — Cupons de desconto da loja: nome, código, tipo e valor, se está ativo, situação (valid, expired, usage_limit_reached, not_yet_available, not_active, not_available), regras e validade. 1 requisição por
  - body: { busca?: string, so_ativos?: boolean, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/cupons/editar` — Edita cupons existentes (ativar/desativar, mudar valor, código, validade, regras). Mande só o que muda: o restante do cupom é mantido (a Cardápio Web exige o cupom inteiro, então ele é lido antes e re
  - body: { cupons: object[], account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/estoque` — Estoque da loja: itens e complementos (opções) com o controle de estoque ligado, quantidade atual, unidade e status. Uma opção usada em vários itens aparece uma vez, com os grupos onde está. Use os id
  - body: { busca?: string, ate_quantidade?: number, incluir_sem_controle?: boolean, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/estoque/ajustar` — Ajusta o estoque REAL de itens e complementos (opções) da loja: o cardápio passa a mostrar a nova quantidade e o item esgota quando zera. Escrita real: mostre ao usuário o que vai mudar (item, quantid
  - body: { ajustes: object[], account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/horarios/atualizar` — Altera horários de funcionamento e modos de operação da loja REAL (o cardápio passa a abrir/fechar conforme o novo horário).
  - body: { semana?: object, datas_especiais?: object, fuso?: string, modos_operacao?: object, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/insumos` — Insumos (matéria-prima) da loja com categoria, unidade, estoque atual, estoque mínimo e se está abaixo do mínimo. Exige a conexão por OAuth. 1 requisição por página de 100 (padrão até 3).
  - body: { busca?: string, abaixo_do_minimo?: boolean, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/insumos/ajustar` — Altera insumos REAIS da loja: preço de custo e se o estoque pode ficar negativo. Escrita real: confirme com o usuário antes de chamar. A quantidade em estoque e o mínimo de um insumo NÃO são alterávei
  - body: { insumos: object[], account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/itens/atualizar` — Altera itens do cardápio REAL da loja (o cliente vê na hora): pausar ou reativar (status MISSING = em falta, INACTIVE = oculto, ACTIVE = à venda), mudar o preço e ligar/desligar o preço promocional. A
  - body: { itens: object[], account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/list/accounts` — Lista as lojas Cardápio Web conectadas (id, nome, modo de conexão). Não chama a API.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/loja` — Dados da loja na Cardápio Web: nome, status, link do cardápio, endereço, modos de operação (delivery, retirada, consumo no local, agendado), horários da semana e datas especiais, estado temporário (ab
  - body: { account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/pedido/detalhe` — Detalhe completo de pedidos por id: número, status, itens com opções, descontos/cupom, pagamentos, taxas, total, cliente (nome e telefone) e endereço de entrega. 1 requisição por pedido.
  - body: { pedido_ids: integer|string[], incluir_documento_fiscal?: boolean, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/pedidos/avancar` — Avança pedidos REAIS para a próxima etapa (o cliente acompanha o status). Confirme com o usuário antes de chamar.
  - body: { pedido_ids: integer|string[], etapa: string, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/pedidos/cancelar` — CANCELA pedidos REAIS (status final, não volta). O cliente é avisado e pode haver estorno de pagamento online. Só chame depois de o usuário confirmar o cancelamento de cada pedido e dizer o motivo, qu
  - body: { pedido_ids: integer|string[], motivo: string, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/pedidos/confirmar` — ACEITA pedidos REAIS que estão pendentes (waiting_confirmation). O cliente é avisado e a cozinha passa a produzir: confirme com o usuário, pedido por pedido, antes de chamar. Agendados vão para schedu
  - body: { pedido_ids: integer|string[], account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/pedidos/historico` — Pedidos FINALIZADOS e CANCELADOS criados num período (até 6 meses por consulta, inclusive iFood e outros canais integrados). Traz id, status, tipo, canal e datas; para valores e itens use cardapioweb_
  - body: { data_inicio: string, data_fim: string, status?: string[], max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/pedidos/recentes` — Pedidos alterados nas ÚLTIMAS 8 HORAS (os do turno). Para dias anteriores use cardapioweb_pedidos_historico.
  - body: { status?: string[], atualizados_desde?: string, detalhar?: boolean, account?: string }
- `POST https://api.mcp.ai/api/cardapioweb/resumo/vendas` — Resumo de vendas de um período (até 6 meses), calculado pela Cardápio Web: faturamento total, nº de pedidos e ticket médio; quebras por dia, dia da semana, hora, mês, canal, tipo de pedido, forma de p
  - body: { data_inicio: string, data_fim: string, incluir?: string[], limite_ranking?: integer, incluir_cancelados?: boolean, account?: string }

## Example prompts
- "How many orders did I get yesterday, what did they add up to and which items sold most?"
- "Is there a pending order right now? If so, show me the items and the address"
- "Create a 10% coupon for orders over R$ 50, inactive so I can review it first"

## More
- Page: https://mcp.ai/cardapioweb
- Agent spec (llms.txt): https://mcp.ai/cardapioweb/llms.txt
- Postman collection: https://mcp.ai/cardapioweb/postman.json
