Configure suas credenciais

vitrineretail / mcp-docs / layout-1
MCP · Model Context Protocol

VitrinRetail MCP

Dois servidores MCP sobre Streamable HTTP. Conecte agentes de IA aos dados de Visual Management e Checklists da plataforma VitrinRetail sem expor credenciais no código.

mcp-vm.vitrineretail.app mcp-checklist.vitrineretail.com

Visão geral

Ambos os servidores implementam o transporte MCP Streamable HTTP. A primeira requisição POST /mcp autentica e abre uma sessão; as subsequentes reutilizam o token de sessão retornado no header mcp-session-id.

ServidorEndpointPortaFerramentas
vm-mcphttps://mcp-vm.vitrineretail.app/mcp300126
checklist-mcphttps://mcp-checklist.vitrineretail.com/mcp300219

Autenticação

As credenciais são enviadas apenas na primeira requisição — a que inicia a sessão MCP. Não há rota separada de login; o próprio handshake MCP autentica o cliente.

1

Envie as credenciais nos headers

Na primeira POST /mcp (sem mcp-session-id), inclua os headers abaixo. O servidor autentica na API VitrinRetail e abre uma sessão MCP.

2

Capture o mcp-session-id da resposta

O header mcp-session-id na resposta contém o ID da sessão. Use-o em todas as requisições subsequentes.

3

Reutilize a sessão

As próximas chamadas precisam apenas do mcp-session-id. O token de autenticação fica em memória no servidor — não circula pelo cliente após o handshake.

Headers obrigatórios — 1ª requisição

HeaderTipoDescrição
x-api-emailobrigatórioE-mail da conta VitrinRetail
x-api-passwordobrigatórioSenha da conta VitrinRetail
Content-Typeobrigatórioapplication/json
Acceptopcionalapplication/json, text/event-stream

Fluxo interno de autenticação

Ao receber as credenciais no handshake, cada servidor faz login na API correspondente e armazena o Bearer token em memória para a sessão. Em caso de resposta 401, o token é descartado e o login é refeito automaticamente.

VM MCP — porta 3001
POST https://api.vitrineretail.app/api/login
// Body (JSON)
{
  "email": "<x-api-email>",
  "password": "<x-api-password>"
}

// Resposta
{ "token": "eyJ..." }

Token usado como Authorization: Bearer <token> em todas as chamadas REST à API de VM.

Checklist MCP — porta 3002
POST https://auth.vitrineretail.com/graphql
// Mutation GraphQL
mutation {
  login(params: {
    email: "<x-api-email>"
    password: "<x-api-password>"
    scope: ["offline_access"]
  }) { access_token }
}

// Resposta
{ "login": { "access_token": "eyJ..." } }

Token usado como Authorization: Bearer <access_token> nas queries GraphQL em checklist-api.vitrineretail.com/v1/graphql.

Gerenciamento de sessão

HeaderDireçãoDescrição
mcp-session-idResponse ← servidorRetornado na 1ª resposta. Persista este valor.
mcp-session-idRequest → servidorEnvie em todas as requisições subsequentes.

VM MCP — Visual Management

POST https://mcp-vm.vitrineretail.app/mcp

26 ferramentas para análise de indicadores de Visual Management, manuais de espaço, galerias de mídia e evidências de aprovação.

Indicadores

indicadores_por_espacos
Indicadores de qualidade e execução agregados por espaço.
manuals[]startDateendDate stores[]groups[]spaces[] dynamics[]responsibles[] comercials[]viewers[]category
indicadores_lojas
Indicadores consolidados por loja. Pode gerar XLSX (gerarXlsx=true).
manuals[]startDateendDate stores[]groups[]spaces[] categories[]responsibles[] comercials[]viewers[] filterTypepagesize noViewSpacesgerarXlsx
resumo_indicadores
Resumo consolidado de todos os indicadores do período.
manuals[]startDateendDate
indicadores_qualidade
Percentual de qualidade (itens conformes vs. total avaliado).
manuals[]startDateendDatestores[]groups[]
indicadores_retrabalho
Taxa de retrabalho por espaço/loja.
manuals[]startDateendDate
indicadores_prazo
Indicadores de cumprimento de prazo.
manuals[]startDateendDate
indicadores_tempo_medio
Tempo médio de execução por espaço.
manuals[]startDateendDate
ranking_indicadores
Ranking de lojas e espaços por performance.
manuals[]startDateendDatestores[]groups[]

Grupos & Lojas

listar_grupos
Lista grupos de lojas da empresa.
companyId
lojas_por_grupo
Lista lojas vinculadas a um grupo.
groupId ✱companyId
contatos_loja
Retorna contatos vinculados a uma loja específica.
storeId ✱

Manuais

listar_manuais
Lista todos os manuais disponíveis para o usuário autenticado.
sem parâmetros
listar_manuais_adm
Lista manuais com visão administrativa.
sem parâmetros
listar_manuais_loja
Lista manuais sob a perspectiva de loja.
sem parâmetros
obter_manual
Detalhes completos de um manual específico.
manualId ✱
espacos_do_manual
Lista todos os espaços definidos em um manual.
manualId ✱
status_lojas_no_manual
Status de cada loja em um manual. Paginado.
manualId ✱statuspagestore
status_loja_no_manual
Status detalhado de uma loja específica em um manual.
manualId ✱storeId ✱
ranking_lojas_manual
Ranking de lojas em um manual por pontuação.
manualId ✱groups[]stores[]statuspage
recursos_do_espaco
Recursos (mídias e especificações) de um espaço em um manual.
manualId ✱spaceId ✱
historico_loja_manual
Histórico de execuções de uma loja em um manual.
manualId ✱storeId ✱

Espaços

tipos_de_espaco
Lista todos os tipos de espaço cadastrados.
sem parâmetros
espacos_da_loja_no_manual
Espaços de uma loja em um manual, com status de conformidade.
manualId ✱storeId ✱statusactive

Galeria & Evidências

top10_galeria_manual
Top 10 mídias em destaque de um manual.
manualId ✱
midias_do_espaco
Mídias associadas a um espaço em um manual.
manualId ✱spaceId ✱
evidencias_aprovadas
Fotos/evidências de um espaço filtradas por status de aprovação.
manualId ✱spaceId photosStatus (approved|pending|rejected|all) stores[]groups[]

Checklist MCP

POST https://mcp-checklist.vitrineretail.com/mcp

19 ferramentas para gestão de checklists, execuções e planos de ação. Internamente utiliza GraphQL (Hasura).

Listagens

listar_acoes
Ações disponíveis para planos de ação.
sem parâmetros
listar_estados_plano_acao
Estados possíveis dos planos de ação. ID 5 = Aprovado.
sem parâmetros
listar_estados_checklist
Estados possíveis dos checklists.
sem parâmetros
listar_estados_execucao
Estados das aplicações de checklist. ID 5 = Finalizada.
sem parâmetros
listar_tipos_evidencia
Tipos de evidência para checklists.
sem parâmetros
listar_recorrencias
Recorrências disponíveis (diário, semanal, mensal…).
sem parâmetros
listar_checklists
Lista checklists com filtros e paginação.
checklist_state_idis_enabled is_auditis_self_evaluation order_by (id|title|start_date) limit (padrão 100)offset
listar_lojas
Lista lojas (business units).
is_enabledlimitoffset
listar_grupos
Lista grupos de lojas.
limit (padrão 200)
listar_usuarios
Usuários com vínculos de loja opcionais.
limit (padrão 200)include_business_units
listar_planos_acao
Planos de ação com filtros por estado, usuário e datas.
action_plan_state_ids[]checklist_execution_id creator_user_idstart_date_gte start_date_ltelimitoffset

Execuções de Checklist

buscar_execucoes_checklist
Query central de BI: execuções por loja. Obrigatório ao menos um checklist_id. Paginação máx 1000. execution_state_id=5 = finalizadas.
checklist_ids[] ✱ execution_start_gteexecution_end_lte recurrence_start_gterecurrence_end_lte business_unit_ids[]group_ids[] execution_state_idonly_executed include_questionsinclude_action_plans limit (máx 1000)offset
contar_aplicacoes_por_checklist
Contagem total e concluídas por checklist no período. Mais eficiente que buscar_execucoes_checklist.
start_date ✱end_date ✱execution_state_id (padrão 5)
taxa_aplicacao_por_loja
Taxa de aplicação (concluídas/total) por loja.
checklist_id ✱execution_state_id (padrão 5)
pontuacao_media_por_loja
Score e score_max agregados por loja. score_rate = score/score_max.
checklist_id ✱execution_state_id (padrão 5)
tempo_aplicacao_por_loja
Datas de início e fim de cada aplicação por loja (para calcular duração média).
checklist_id ✱

Planos de Ação

planos_acao_por_usuario
Planos de ação agrupados por usuário responsável.
action_plan_state_ids[] ✱
planos_acao_por_loja
Planos de ação agrupados por loja, via aplicações de checklist.
action_plan_state_ids[] ✱
tempo_conclusao_planos_acao
Planos aprovados com datas de criação e conclusão para calcular duração média.
start_date ✱end_date ✱

Exemplos — cURL

Iniciar sessão VM MCP

curl -X POST https://mcp-vm.vitrineretail.app/mcp \
  -H "Content-Type: application/json" \
  -H "x-api-email: SEU_EMAIL" \
  -H "x-api-password: SUA_SENHA" \
  -D - \
  -d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}'

Chamar ferramenta com sessão ativa

curl -X POST https://mcp-vm.vitrineretail.app/mcp \
  -H "Content-Type: application/json" \
  -H "mcp-session-id: <SESSION_ID_RETORNADO>" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"listar_manuais","arguments":{}}}'

Buscar execuções — Checklist MCP

curl -X POST https://mcp-checklist.vitrineretail.com/mcp \
  -H "Content-Type: application/json" \
  -H "mcp-session-id: <SESSION_ID>" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"buscar_execucoes_checklist","arguments":{"checklist_ids":[42],"execution_state_id":5,"limit":100}}}'

Exemplos — JavaScript fetch

// 1. Iniciar sessão
const initRes = await fetch('https://mcp-vm.vitrineretail.app/mcp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-email': process.env.VR_EMAIL,
    'x-api-password': process.env.VR_PASSWORD,
  },
  body: JSON.stringify({
    jsonrpc: '2.0', method: 'initialize', id: 1,
    params: {
      protocolVersion: '2024-11-05',
      capabilities: {},
      clientInfo: { name: 'my-client', version: '1.0' },
    },
  }),
});

const sessionId = initRes.headers.get('mcp-session-id');

// 2. Chamar ferramenta
const toolRes = await fetch('https://mcp-vm.vitrineretail.app/mcp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'mcp-session-id': sessionId,
  },
  body: JSON.stringify({
    jsonrpc: '2.0', method: 'tools/call', id: 2,
    params: { name: 'indicadores_lojas', arguments: {
      startDate: '2025-01-01',
      endDate: '2025-01-31',
    } },
  }),
});

const data = await toolRes.json();
console.log(data.result.content[0].text);

Guia de Uso no ChatGPT, Claude e Gemini

⚠️
Suporte nativo ainda limitado O protocolo MCP está sendo adotado gradualmente. O ChatGPT exige o plano Pro e o modo Developer ativo; Claude.ai e Gemini estão em fase de rollout e podem não estar disponíveis para todas as contas ainda.
1

Antes de começar

Confirme que você tem o que é necessário

Conta com acesso ao MCP
E-mail e senha fornecidos pelo administrador da Vitrine Retail.
ChatGPT Pro ativado
Plano Pro obrigatório para usar MCPs no ChatGPT. Claude.ai e Gemini podem funcionar em planos gratuitos (verifique disponibilidade).
Saber qual MCP usar
Checklist MCP — visitas, checklists, avaliações. VM MCP — acesso a dados estruturados via ferramentas.
2

ChatGPT — ativar o Modo Developer

Necessário para adicionar servidores MCP externos

Abra as configurações do ChatGPT e ative o modo Developer para que o botão de MCPs apareça.

chatgpt.com · Configurações

Configurações

Developer Mode
Enable advanced features for developers
Archived chats
Ative aqui!
3

Montar a URL de conexão

Escolha o MCP e insira suas credenciais para gerar a URL

🔒 Suas credenciais não são salvas nem enviadas — a URL é montada localmente no seu navegador.

4

Instalar no ChatGPT

Adicionar o servidor MCP na interface web do ChatGPT

Com o modo Developer ativo, clique no botão + no canto superior direito de uma nova conversa e selecione Add MCP Server.

chatgpt.com · Nova conversa
+
Clique aqui
Nome
Vitrine Retail Checklist
URL do servidor MCP
https://mcp-checklist.vitrineretail.com/mcp?email=…&password=…
💡
Cole a URL gerada no passo 3

Cole a URL completa (com e-mail e senha já codificados) no campo URL do servidor. O ChatGPT se conectará automaticamente.

5

Instalar no Claude.ai

Adicionar via Configurações → Integrações

No Claude.ai, abra Configurações → Integrações e clique em Adicionar integração. Cole a URL gerada no passo 3 e confirme.

Liste todas as ferramentas disponíveis neste MCP.
Quais são as últimas visitas registradas?
6

Instalar no Gemini

Adicionar via Extensions ou Configurações

No gemini.google.com, acesse as configurações de Extensions e procure a opção de adicionar um servidor MCP externo (pode ser chamado de Tools ou MCP Connections dependendo da versão do Gemini disponível para sua conta). Cole a URL do passo 3.

⚠️
Disponibilidade variável

O suporte a MCP no Gemini ainda está em rollout. Se não encontrar a opção de MCP, aguarde a atualização chegar à sua conta.

Mostre os indicadores de qualidade da última semana.
Quais lojas têm mais checklists pendentes?
7

Usar em uma conversa

Exemplos de perguntas para fazer ao AI

Com o MCP conectado, você pode fazer perguntas em linguagem natural. O AI usará as ferramentas disponíveis para buscar os dados e responder.

Quais lojas tiveram mais visitas nos últimos 7 dias?
Mostre um resumo do checklist da loja com pior desempenho.
Gere um relatório comparando os indicadores de qualidade desta semana com a semana passada.
Liste todas as ferramentas disponíveis neste servidor MCP.

Solução de problemas

🔴
Erro: "Could not connect to MCP server"

Verifique se a URL está correta e se as credenciais estão certas. Tente copiar a URL novamente no passo 3 e adicionar uma nova conexão.

🟡
O botão de MCP não aparece no ChatGPT

Certifique-se de que o modo Developer está ativado em Configurações e que você está em uma nova conversa (não em uma conversa existente).

🔵
Opção de MCP não disponível no Claude.ai ou Gemini

O suporte ainda está em rollout. Verifique se há atualização disponível para sua conta ou aguarde a liberação para sua região.

🟣
Credenciais incorretas

Entre em contato com o administrador da Vitrine Retail para verificar seu acesso. Lembre-se de que as credenciais são sensíveis — não as compartilhe.