mcp-pdv-demo
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-pdv-demoQual foi o faturamento do mês passado?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-pdv-demo
Servidor MCP (Model Context Protocol) que conecta um assistente de IA ao banco de um PDV — ponto de venda de varejo e food service.
Em vez de expor um executar_sql genérico, ele expõe perguntas de negócio: qual foi o faturamento, o que dá mais margem, o que está encalhado no estoque, se o caixa fechou certo. O modelo escolhe a ferramenta; o SQL fica do lado de cá, escrito e testado.
Banco 100% sintético, gerado por seed determinístico. Nenhum dado real de cliente.
Claude / Cursor / qualquer host MCP
│ stdio
▼
mcp-pdv-demo ──► Prisma ──► SQLite
(6 tools de leitura + 1 de escrita, sob flag)Rodando
npm install
npm run setup # cria o banco e gera ~96 produtos, 90 dias, ~3.700 vendas
npm run dev # sobe o servidor MCP no stdioConectando no Claude Code
claude mcp add pdv-demo -- npx tsx /caminho/para/mcp-pdv-demo/src/server.tsConectando no Claude Desktop
Em claude_desktop_config.json:
{
"mcpServers": {
"pdv-demo": {
"command": "npx",
"args": ["tsx", "/caminho/para/mcp-pdv-demo/src/server.ts"],
"env": { "DATABASE_URL": "file:./pdv.db" }
}
}
}Related MCP server: Business MCP Server
As ferramentas
Tool | Responde |
| "quanto custa X", "tem X em estoque", "qual o código de X" |
| "quanto vendi em maio", "qual meu ticket médio", "quanto entrou no pix" |
| "o que mais vendeu", "top 10 do mês", "meus carros-chefe" |
| "o que dá mais lucro" — que não é a mesma pergunta que "o que mais vende" |
| "o que está parado", "quanto de capital tem preso no estoque" |
| "fecha o caixa de ontem", "teve diferença", "sobrou ou faltou dinheiro" |
| escrita — só existe se |
Saída real
resumo_de_vendas:
**Vendas de 2026-08-01 a 2026-08-31**
- Faturamento: **R$ 136.517,91**
- Vendas concluidas: 1345
- Ticket medio: R$ 101,50
- Descontos concedidos: R$ 1.484,56
- Vendas canceladas: 37
| Forma | Vendas | Valor | % do total |
| -------- | ------ | ------------ | ---------- |
| PIX | 459 | R$ 49.385,27 | 36.2% |
| DEBITO | 360 | R$ 36.350,09 | 26.6% |
| CREDITO | 336 | R$ 32.355,06 | 23.7% |
| DINHEIRO | 190 | R$ 18.427,49 | 13.5% |produtos_encalhados:
5 produto(s) sem vender ha 30+ dias. Capital parado: **R$ 8.690,14**.
| Produto | Categoria | Estoque | Custo un. | Capital parado |
| ----------------- | --------- | ------- | --------- | -------------- |
| Polenta Frita ... | Porcoes | 100 | R$ 28,21 | R$ 2.821,00 |
| Misto Quente ... | Lanches | 92 | R$ 30,21 | R$ 2.779,32 |
| Creme Dental | Higiene | 96 | R$ 18,31 | R$ 1.757,76 |Decisões de projeto
Dinheiro é Int em centavos, nunca Float. 0.1 + 0.2 !== 0.3 — num PDV isso vira quebra de caixa. A conversão para reais acontece só na formatação da saída.
Read-only por padrão. As tools de escrita não são apenas bloqueadas: elas não são registradas. Se PDV_MCP_READONLY não for explicitamente "false", ajustar_estoque não aparece no listTools — o modelo não pode chamar o que não sabe que existe. A decisão fica no ambiente, fora do alcance do prompt.
Preço e custo são congelados no item da venda. ItemVenda guarda precoUnitario e custoUnitario do momento da venda. Sem isso, mudar o preço de um produto reescreveria o histórico de margem — um relatório de março passaria a mentir porque o custo subiu em agosto.
A saída é markdown, não JSON. O consumidor é um modelo de linguagem. Tabela formatada com R$ e percentual gasta menos contexto e produz menos erro de leitura do que um array de objetos com valores em centavos.
Nada de executar_sql. Uma tool que aceita SQL arbitrário transfere para o modelo a responsabilidade de entender o schema, e transfere para o usuário o risco de um DELETE. Cada tool aqui é uma pergunta fechada com uma query revisada atrás.
Log vai para stderr. No transporte stdio, o stdout é o canal do protocolo — um console.log perdido corrompe a sessão inteira.
Testes
npm test18 testes que sobem um cliente MCP real ligado ao servidor por transporte em memória — exercitam o protocolo inteiro, não as funções por dentro. Cobrem o contrato (toda tool tem descrição; a de escrita não aparece em modo leitura), a corretude dos números contra o banco, parsing de data em dois formatos, e os casos vazios.
Stack
TypeScript · MCP SDK · Prisma · SQLite · Zod · Vitest
Licença
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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 Connectors
Run your restaurant from an AI client: orders, menu, reports, refunds, payouts and staff.
Manage your Savanto store from your AI: catalog, content, prompts, and analytics, by chat.
Manage your NanoCart store from any AI agent: products, orders, coupons, subscribers, reports.
Hosted storefront backend for AI agents: products, cart, Stripe + PayPal, delivery, order tracking.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with SmartKasa Ukrainian POS system through natural language, managing shops, products, inventory, sales receipts, employees, and fiscal reports with full API coverage.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI to query a business database for customers, orders, and revenue using natural language through safe, well-defined tools.-
- FlicenseNot gradedqualityCmaintenanceEnables querying sales data, identifying out-of-stock products, viewing top sellers, and receiving restock suggestions through natural language.-
- AlicenseAqualityAmaintenanceEnables read-only access to Lightspeed X retail data (sales, inventory, products, customers) with aggregated reporting on revenue, COGS, profit, and other metrics for MCP clients like Claude.1MIT
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/LuanV1udes/Mcp-Pdv-Demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server