streamable-httpupdated 1mo ago
Servidor MCP remoto que expõe um painel de 787 personas sintéticas do consumidor bancário brasileiro para qualquer Claude (Desktop, web, mobile) — para discovery de produtos bank e fintech. Roda inteiro no free tier da Cloudflare Workers.
What can you do with Painel Sintético Concorde?
Painel Sintético Concorde
Servidor MCP remoto que expõe um painel de 787 personas sintéticas do consumidor bancário brasileiro para qualquer Claude (Desktop, web, mobile) — para discovery de produtos bank e fintech. Roda inteiro no free tier da Cloudflare Workers.
Site e demo: https://painel.concorde-painel.workers.dev
Nome no registro oficial de MCP: io.github.caio-sartoratto/painel-sintetico-concorde
Como instalar / encontrar
O painel é um conector MCP remoto. Não há nada para baixar.
- No Claude (Desktop, web ou mobile): Settings → Connectors → Add custom connector
- Cole a URL:
https://painel.concorde-painel.workers.dev/mcp - Requer plano pago do Claude (conectores customizados não estão no plano gratuito)
Ele também está publicado no registro oficial de MCP
como io.github.caio-sartoratto/painel-sintetico-concorde, então tende a aparecer em
marketplaces e agregadores de MCP que consomem o registro. A instalação, porém, continua sendo
pela URL acima (estar no registro não adiciona o conector automaticamente ao Claude).
Os dados do painel não estão neste repositório (são proprietários — veja a licença). Este repo é o motor: servidor MCP, site, fórum, cotas e telemetria. O serviço público roda com o painel completo.
Por que existe
Pedir a um LLM para "simular 700 pessoas" produz um respondente médio repetido N vezes, com
viés de renda/escolaridade (Santurkar et al. 2023; Bisbee et al. 2024). O caminho que funciona
é condicionar o modelo em atributos sociodemográficos reais (Argyle et al. 2023). Aqui a
heterogeneidade vem da estrutura: cada persona é ligada por filtro determinístico
(campo operador valor) a fatos estatísticos com fonte, e o LLM só dá voz.
Dois modos: focus group e pesquisa
- Focus group (exploração qualitativa):
filtrar_personas/sortear_amostra+get_personas. O Claude dá voz a um recorte pequeno de personas para você ouvir objeções e afiar hipóteses. - Pesquisa direcional (medição):
preparar_pesquisafaz fan-out isolado — o host dispara uma tarefa/subagente por persona, cada uma responde sem ver as outras, e a distribuição é agregada localmente. Isso evita a convergência artificial de respostas geradas no mesmo contexto. Formatos:escolha(distribuição),pontuar(nota 0-10 por atributo → média+desvio por opção, preserva a preferência secundária),escalaeaberta. Oseedé aleatório por padrão e devolvido no resultado para reprodução. É o mecanismo por trás dos backtests abaixo.
Privacidade por construção: a pergunta do usuário não trafega pelo servidor. A fronteira de
confiança é classificada localmente no Claude (a ferramenta avaliar_pergunta devolve só a
rubrica), e as respostas das personas são agregadas no host — o servidor recebe apenas o filtro de
segmento, o número de personas e o formato.
Validação (backtest contra pesquisa real)
100 personas sorteadas do painel, classificadas com temperatura 0 (reproduzível), comparadas a pesquisas publicadas.
idwall 2025 (amostra nacional ponderada por IBGE)
| Pergunta de atitude do consumidor | idwall | Painel | Erro |
|---|---|---|---|
| Pretende manter/aumentar uso de bancos digitais | 84,9% | 86,0% | 1,1 pp |
| Rapidez do cadastro é o fator nº 1 na abertura de conta | 51,4% | 49,0% | 2,4 pp |
| A casa é o lugar mais seguro para acessar o banco | 68,5% | 74,0% | 5,5 pp |
Erro médio absoluto: 3,0 pp — as três dentro de 6 pontos percentuais do benchmark.
Reclame AQUI 2026 (crise de confiança em bancos digitais, n=2.073)
| Atitude do consumidor | Reclame AQUI | Painel | Erro |
|---|---|---|---|
| Medo de a instituição quebrar e perder o dinheiro (liquidez) | 35% | 39% | 4 pp |
BCG e Nubank, "Beyond Access" 2023 (população brasileira, n=2.000)
Headline do estudo: mais de 70% dos brasileiros não se sentem seguros nem incluídos financeiramente. O painel, de forma independente, chega a 78%.
Sem nenhuma quebra por classe no benchmark, o painel reproduz sozinho o gradiente social da insegurança (amostra estratificada por classe, temperatura 0):
| Classe | Se sente inseguro | Amostra |
|---|---|---|
| A | 5% | n=22 |
| B | 20% | n=30 |
| C | 77% | n=30 |
| D/E | 80% | n=30 |
Controle: e se for só o LLM?
As mesmas perguntas respondidas direto por modelos de fronteira, sem painel, sem persona, sem busca na internet, temperatura 0:
| Pergunta | Real | Painel | Gemini 3.1 Pro | GPT-5.6 |
|---|---|---|---|---|
| Mantém ou aumenta o uso de bancos digitais | 84,9% | 86% | 84% | 85% |
| Rapidez do cadastro é o fator nº 1 | 51,4% | 49% | 18% | 25% |
| A casa é o lugar mais seguro para acessar | 68,5% | 74% | 65% | 90% |
| Medo de a instituição quebrar (liquidez) | 35% | 39% | 45% | 65% |
| Erro médio absoluto | 3,3 pp | 12,0 pp | 19,5 pp |
O painel erra 3,7x menos que o Gemini e 6x menos que o GPT nas mesmas perguntas. No headline do BCG: painel 78% (dentro do ">70%"), Gemini 55% (fora), GPT 60% (fora). Os números dos modelos crus ainda contradizem a si mesmos: o Gemini estima 45% "seguros e incluídos" mas só 31% "seguros", e a interseção não pode ser maior que a parte. O painel não produz esse erro porque cada número vem de contar personas uma a uma.
Transparência: essas são as perguntas de melhor aderência entre as categorias testadas. Itens de satisfação e incidência auto-reportada divergem mais (viés de calibração conhecido nas narrativas, em ajuste). Não substitui pesquisa primária nem teste A/B — é a etapa barata que vem antes.
Exemplos
Transcrições reais rodando no Claude (personas e fatos vêm do painel de verdade):
examples/ — focus group de conceito, teste com Classe A e checagem de dado.
Arquitetura
vault Obsidian (fonte da verdade: personas + fatos + vozes + instituições)
│ npm run build-data (compila markdown → JSON)
▼
Cloudflare Worker
├─ /mcp servidor MCP (agents SDK / McpAgent + Durable Object)
│ 10 ferramentas: visao_geral, avaliar_pergunta (rubrica da
│ fronteira p/ classificação LOCAL), filtrar_personas,
│ sortear_amostra, preparar_pesquisa (fan-out isolado),
│ get_personas, buscar_fatos, listar_vozes, get_instituicao,
│ get_distribuicoes
├─ QuotaDO cotas por IP (rajada/dia + teto de fichas: anti-extração)
├─ / site estático server-rendered (zero framework)
├─ /forum fórum anônimo sem moderação prévia (ForumDO) — nunca exposto via MCP
│ (evita prompt injection armazenada em sessões de terceiros)
└─ StatsDO telemetria própria (IPs só como hash; dashboard admin)
Decisões que valem nota:
- DSL de filtro própria (sem eval):
classe_social == 'Classe C' & idade > 30, mesma sintaxe do vault ao servidor. - Fatos tipados (propensão / prevalência / composição / referência) — composição é P(público|métrica), o inverso de propensão; o servidor injeta aviso na ficha quando presente.
- Cotas via Durable Object por IP: extração em massa do painel é impraticável sem autenticação de usuários.
- Fórum fora do MCP por regra: conteúdo aberto de terceiros nunca volta por ferramenta, eliminando o vetor de injection armazenada.
Rodando
Pré-requisitos: Node 20+, conta Cloudflare, um vault no formato esperado (veja
scripts/build-data.mjs para o schema de frontmatter).
npm install
VAULT_DIR=/caminho/do/vault npm run build-data # gera src/data/*.json (não versionado)
npm run dev # local em http://localhost:8787
npx wrangler secret put ADMIN_TOKEN # kill switch do fórum + dashboard
npx wrangler secret put HASH_SALT # sal dos hashes de IP
npm run deploy
Licença
Código sob MIT. Os dados do painel (personas, fatos, vozes, fichas de instituições e distribuições) são proprietários, não incluídos neste repositório e não licenciados para redistribuição.
Autor
Caio Sartoratto Prado — LinkedIn · projeto Concorde. Feedback: fórum do painel.
Install
Add Painel Sintético Concorde to your client. Pick the one you use.
claude mcp add --transport http painel-sint-tico-concorde https://painel.concorde-painel.workers.dev/mcpcodex mcp add painel-sint-tico-concorde --url https://painel.concorde-painel.workers.dev/mcp{
"mcpServers": {
"painel-sint-tico-concorde": {
"url": "https://painel.concorde-painel.workers.dev/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"painel-sint-tico-concorde": {
"type": "http",
"url": "https://painel.concorde-painel.workers.dev/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"painel-sint-tico-concorde": {
"url": "https://painel.concorde-painel.workers.dev/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"painel-sint-tico-concorde": {
"serverUrl": "https://painel.concorde-painel.workers.dev/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation20/25
- Maintenance16/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 50 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.0.0Latest | Jul 13, 2026 |