Painel Sintético Concorde
787 personas sintéticas do consumidor bancário brasileiro para discovery de produtos.
Should I use this
Quality & Safety
Findings (3)
- LOWin visao_geral
- LOWin avaliar_pergunta
- LOWin buscar_fatos
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"painel-sintetico-concorde": {
"url": "https://painel.concorde-painel.workers.dev/mcp"
}
}
}Remote endpoints
https://painel.concorde-painel.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
⚪visao_geral
Visão geral do Painel Sintético Concorde: o que é, contagens, campos disponíveis das personas e como usar as demais ferramentas. Chame primeiro.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪avaliar_pergunta
Fronteira de confiança (classificação LOCAL, preserva privacidade). NÃO recebe a pergunta: devolve a RUBRICA para VOCÊ (assistente) classificar a pergunta do usuário no seu próprio contexto, sem enviá-la ao servidor. Bandas: 'inferivel' (pode rodar), 'arriscado' (rode com ressalva), 'humano' (NÃO pergunte a persona sintética — exige estado vivido). Aplique antes de preparar_pesquisa.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪filtrar_personas(filtro, limite)
Filtra as 787 personas pela DSL determinística do painel. Ex.: "classe_social == 'Classe C' & divida_ativa == 'Sim' & regiao == 'Nordeste'". Vazio retorna todas. Retorna contagem e mini-perfis (até `limite`).
Input Schema
{
"type": "object",
"properties": {
"filtro": {
"description": "Expressão DSL: campo OP valor & ... (OP: == != > < >= <= in entre)",
"type": "string"
},
"limite": {
"default": 30,
"description": "Máximo de mini-perfis retornados",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪sortear_amostra(n, filtro, seed)
Sorteia uma amostra aleatória de personas (opcionalmente dentro de um filtro DSL). O painel já reflete as distribuições reais, então a amostra uniforme é representativa do recorte.
Input Schema
{
"type": "object",
"properties": {
"n": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Tamanho da amostra"
},
"filtro": {
"description": "Filtro DSL opcional",
"type": "string"
},
"seed": {
"description": "Semente para reprodutibilidade",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"n"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪preparar_pesquisa(formato, opcoes, escala_min, escala_max, filtro, ...)
Prepara uma pesquisa de fan-out ISOLADO por persona (mede sem convergência). A PERGUNTA do usuário NÃO é enviada ao servidor (privacidade): você a classifica localmente pela 'fronteira' e a injeta você mesmo em cada pacote. Sorteia N personas e devolve UM pacote por persona (ficha + formato de resposta) + o protocolo para o HOST disparar UMA tarefa/subagente isolado por pacote — cada um responde só a SUA persona, sem ver as outras. A agregação é feita LOCALMENTE; o servidor não recebe nem armazena nenhuma resposta. Formatos: 'escolha' (opção única → distribuição), 'pontuar' (nota 0-10 por atributo → média+desvio por opção, recomendado para 'o que importa mais' e mais robusto a colapso), 'escala' e 'aberta'. Pode filtrar o segmento (classe, idade, região, etc.) pela DSL.
Input Schema
{
"type": "object",
"properties": {
"formato": {
"default": "escolha",
"description": "escolha=opção única fechada (gera distribuição, mas pode colapsar em amostra enviesada); pontuar=cada persona dá nota 0-10 a CADA opção (gera média+desvio por opção, preserva a preferência secundária — recomendado para 'o que importa mais'); escala=uma nota numérica; aberta=sem número, só temas/verbatim.",
"type": "string",
"enum": [
"escolha",
"pontuar",
"escala",
"aberta"
]
},
"opcoes": {
"description": "Opções fechadas quando formato='escolha' ou 'pontuar'. Ex.: ['Versão A', 'Versão B']",
"type": "array",
"items": {
"type": "string"
}
},
"escala_min": {
"description": "Mínimo da escala quando formato='escala' (ex.: 1).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"escala_max": {
"description": "Máximo da escala quando formato='escala' (ex.: 5).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"filtro": {
"description": "Filtro DSL do segmento — recorta por classe, idade, região, banco, dívida, etc. Ex.: \"classe_social in ['Classe A'; 'Classe B'] & idade > 30 & se_investe == 'Sim'\". Vazio = população toda.",
"type": "string"
},
"n": {
"default": 12,
"description": "Quantas personas sortear (teto 30, para proteger a base e o custo de tokens do host).",
"type": "integer",
"minimum": 1,
"maximum": 30
},
"seed": {
"description": "Opcional. Por padrão o sorteio é ALEATÓRIO e o seed usado é devolvido no resultado — salve-o para reproduzir a MESMA amostra depois. Passe um número só se quiser repetir uma amostra específica.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_personas(ids)
Fichas completas de até 10 personas por id (atributos + Grounding com fatos/fontes + História). Use para dar voz às personas com ancoragem nos dados. IMPORTANTE: fatos marcados _composicao_ são P(público | métrica), o inverso de propensão — não os leia como probabilidade da persona; fatos _referencia_ não são proporção de pessoas.
Input Schema
{
"type": "object",
"properties": {
"ids": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string"
},
"description": "Ex.: ['PERS_023', 'PERS_041']"
}
},
"required": [
"ids"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪buscar_fatos(texto, eixo, persona_id, incluir_corpo)
Busca nos 105 fatos estatísticos. Modos: texto livre (busca em métrica/fonte/corpo), por eixo (por-classe, por-regiao, por-genero, por-investidor, por-divida, por-idade, por-fonte-renda, por-composto, populacional), ou por persona_id (fatos cujo filtro casa com a persona).
Input Schema
{
"type": "object",
"properties": {
"texto": {
"description": "Busca textual livre",
"type": "string"
},
"eixo": {
"description": "Eixo de segmentação",
"type": "string"
},
"persona_id": {
"description": "Retorna fatos aplicáveis a esta persona",
"type": "string"
},
"incluir_corpo": {
"default": false,
"description": "Incluir o corpo markdown completo dos fatos",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listar_vozes(tema, completo)
Vozes verbatim REAIS (reviews, relatos) por tema: atendimento, bloqueio, canais, credito, endividamento, gestao-financeira, golpes, pix, tarifas (busca por substring no id/tema). Sem tema, lista todas as 17. Representatividade não-populacional — use como ilustração de linguagem, não como estatística.
Input Schema
{
"type": "object",
"properties": {
"tema": {
"description": "Filtro por tema/id",
"type": "string"
},
"completo": {
"default": true,
"description": "Incluir texto completo",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_instituicao(nome)
Ficha de uma instituição financeira (cadastro, volumetria, reputação, reviews). 12 bancos tradicionais e digitais. Sem nome, lista as disponíveis.
Input Schema
{
"type": "object",
"properties": {
"nome": {
"description": "Ex.: 'santander', 'nubank'",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_distribuicoes(arquivo)
Tabelas de calibração do painel: CSVs de distribuição (pesos do sorteio original) e registro de taxas. Sem nome, lista os arquivos.
Input Schema
{
"type": "object",
"properties": {
"arquivo": {
"description": "Nome do CSV, 'manifest.md' ou 'taxas'",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence