Skip to main content
Glama
daviiferrer

Kawakami MCP Server

by daviiferrer

Kawakami MCP Server

MCP Server que expõe o catálogo do Supermercados Kawakami (Paraguaçu Paulista/SP) como ferramentas para Claude, ChatGPT, OpenCode e qualquer cliente MCP.

Arquitetura

Cliente MCP (ChatGPT/Claude/OpenCode)
        │
        ▼
Cloudflare Tunnel (kawakami.axischat.com.br)
        │
        ▼
FastMCP (Python) ← httpx → VIP Commerce API
        │
        ▼
SQLite (sessoes/carrinho/listas)
src/
├── main.py                 # Entrypoint + argparse
├── server.py               # FastMCP + tool registration
├── config.py               # Settings via env vars
├── domain/
│   ├── models.py           # Produto, Oferta, CarrinhoItem...
│   └── exceptions.py       # VipCommerceUnavailable, TokenExpired...
├── infrastructure/
│   ├── auth.py             # TokenManager (load/save/refresh)
│   ├── vipcommerce_client.py  # HTTP client + retry + cache + circuit breaker
│   ├── session_store.py    # SQLite-backed sessions
│   ├── circuit_breaker.py  # Circuit breaker state machine
│   ├── validation.py       # Input sanitization
│   └── error_handler.py    # @safe_tool decorator
├── presentation/
│   └── formatters.py       # Text formatting
└── tools/
    ├── busca.py            # buscar_produtos, buscar_por_ean
    ├── catalogo.py         # listar_departamentos, produtos_por_departamento, detalhes_produto
    ├── ofertas.py          # ofertas_do_dia, verificar_estoque
    ├── carrinho.py         # adicionar, ver, remover, limpar
    └── listas.py           # salvar, minhas, ver, excluir

Related MCP server: posokanei-mcp

Deploy rápido

cp .env.example .env   # Preencha KWK_VIP_TOKEN e KWK_VIP_SESSAO_ID
make up                # Build + sobe API + tunnel

Tools (16)

Tool

Descrição

criar_sessao

Cria um identificador isolado para carrinho e listas

buscar_produtos

Busca produtos por nome

buscar_por_ean

Busca por código de barras

listar_departamentos

Lista departamentos com contagem

produtos_por_departamento

Produtos de um departamento

detalhes_produto

Detalhes completos por ID

ofertas_do_dia

Ranking de melhores ofertas

verificar_estoque

Estoque de um produto

adicionar_ao_carrinho

Adiciona item ao carrinho

ver_carrinho

Mostra carrinho atual

remover_do_carrinho

Remove item do carrinho

limpar_carrinho

Esvazia carrinho

salvar_lista

Salva lista de compras

minhas_listas

Lista listas salvas

ver_lista

Detalha uma lista

excluir_lista

Remove uma lista

As tools de carrinho e listas exigem o session_id retornado por criar_sessao. O identificador é uma capacidade privada: não compartilhe entre usuários ou conversas.

MCP Apps UI

As tools de produtos e ofertas retornam texto e structuredContent. Clientes compatíveis com MCP Apps carregam o resource ui://kawakami/catalog-v2.html.

Para desenvolver a interface:

cd ui
npm ci
npm run lint
npm run build

O build Vite é embutido no resource MCP. A imagem Docker compila a UI automaticamente.

Variáveis de ambiente

Ver .env.example para todas as opções. Essenciais:

Var

Descrição

KWK_VIP_TOKEN

Token JWT da sessão anônima VIP Commerce

KWK_VIP_SESSAO_ID

Session ID do VIP Commerce

KWK_DEFAULT_CEP

CEP padrão (default: 19700000)

KWK_SESSION_DB_PATH

Caminho persistente do SQLite

KWK_TOKEN_FILE_PATH

Caminho persistente do token renovado

KWK_WIDGET_DOMAIN

Origem HTTPS dedicada do widget

Healthcheck

GET /health retorna {"status":"ok"} quando o processo está pronto. O endpoint não consulta a VIP Commerce, evitando reinícios durante indisponibilidade do fornecedor.

Desenvolvimento

make dev        # stdio (para testar no OpenCode/Claude Desktop)
make dev-http   # HTTP (para testar no navegador)
make test       # pytest
make lint       # ruff

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.
    7
    86 npm
    30
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    Read-only MCP server for Greek supermarket product and price data from PosoKanei. Enables product search, barcode lookup, price comparison across retailers, and basket evaluation.
    10
    32 npm
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for pelando.com.br, the Brazilian community deal board. It enables searching and browsing deals, retrieving deal details and comments, and assessing crowd quality verdicts.
    9
    BSD 2-Clause "Simplified"
  • A
    license
    C
    quality
    C
    maintenance
    Enables AI assistants and MCP clients to search Pyaterochka stores, browse categories, find products with filters for price, brand, and promotions, and retrieve product details, store hours, and promotion conditions through the exposed MCP tools.
    12
    2
    MIT