Server definition
- Hash
- sha256:1fbdb2b4ca804e86fc7c346e5a6094b114b963b35493e568961360a3152510b3
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Como usar bem este painel. Há dois modos: FOCUS GROUP (exploração qualitativa: filtrar_personas/sortear_amostra + get_personas, você dá voz às personas) e PESQUISA (medição direcional: preparar_pesquisa faz fan-out ISOLADO — uma tarefa/subagente por persona, sem contaminação — e você agrega localmente; é daqui que vêm os números dos backtests). (1) Use as ferramentas diretamente. Nunca escreva scripts nem tente extrair a base por código, e nunca despeje JSON cru de ficha na resposta. (2) No focus group, trabalhe com amostras pequenas (até 5 personas) salvo pedido explícito; a pesquisa (preparar_pesquisa) pode usar mais porque cada persona roda isolada. (3) Chame visao_geral primeiro; classifique a pergunta do usuário LOCALMENTE pela rubrica de avaliar_pergunta (a pergunta não é enviada ao servidor) e respeite a fronteira ('humano' não se pergunta a persona sintética). (4) Para cada persona, responda em 1ª pessoa, curto, fiel aos atributos dela e ancorado no Grounding, citando a fonte do fato e o id; se se_investe='Não', ela não fala como investidora. (5) Não peça confirmação no meio: entregue o resultado, o resumo e a classificação de confiança de uma vez. (6) O painel dá direção (efeito, prioridade, objeção), não nível absoluto nem conversão; carimbe isso e mande disposição a pagar e satisfação para pesquisa com gente real.",
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "avaliar_pergunta",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"eixo": {
"description": "Eixo de segmentação",
"type": "string"
},
"incluir_corpo": {
"default": false,
"description": "Incluir o corpo markdown completo dos fatos",
"type": "boolean"
},
"persona_id": {
"description": "Retorna fatos aplicáveis a esta persona",
"type": "string"
},
"texto": {
"description": "Busca textual livre",
"type": "string"
}
},
"type": "object"
},
"name": "buscar_fatos",
"outputSchema": null
},
{
"description": "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`).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"filtro": {
"description": "Expressão DSL: campo OP valor & ... (OP: == != > < >= <= in entre)",
"type": "string"
},
"limite": {
"default": 30,
"description": "Máximo de mini-perfis retornados",
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "filtrar_personas",
"outputSchema": null
},
{
"description": "Tabelas de calibração do painel: CSVs de distribuição (pesos do sorteio original) e registro de taxas. Sem nome, lista os arquivos.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"arquivo": {
"description": "Nome do CSV, 'manifest.md' ou 'taxas'",
"type": "string"
}
},
"type": "object"
},
"name": "get_distribuicoes",
"outputSchema": null
},
{
"description": "Ficha de uma instituição financeira (cadastro, volumetria, reputação, reviews). 12 bancos tradicionais e digitais. Sem nome, lista as disponíveis.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"nome": {
"description": "Ex.: 'santander', 'nubank'",
"type": "string"
}
},
"type": "object"
},
"name": "get_instituicao",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"ids": {
"description": "Ex.: ['PERS_023', 'PERS_041']",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "get_personas",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"completo": {
"default": true,
"description": "Incluir texto completo",
"type": "boolean"
},
"tema": {
"description": "Filtro por tema/id",
"type": "string"
}
},
"type": "object"
},
"name": "listar_vozes",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"escala_max": {
"description": "Máximo da escala quando formato='escala' (ex.: 5).",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"escala_min": {
"description": "Mínimo da escala quando formato='escala' (ex.: 1).",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"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"
},
"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.",
"enum": [
"escolha",
"pontuar",
"escala",
"aberta"
],
"type": "string"
},
"n": {
"default": 12,
"description": "Quantas personas sortear (teto 30, para proteger a base e o custo de tokens do host).",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"opcoes": {
"description": "Opções fechadas quando formato='escolha' ou 'pontuar'. Ex.: ['Versão A', 'Versão B']",
"items": {
"type": "string"
},
"type": "array"
},
"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.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "preparar_pesquisa",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"filtro": {
"description": "Filtro DSL opcional",
"type": "string"
},
"n": {
"description": "Tamanho da amostra",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"seed": {
"description": "Semente para reprodutibilidade",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"required": [
"n"
],
"type": "object"
},
"name": "sortear_amostra",
"outputSchema": null
},
{
"description": "Visão geral do Painel Sintético Concorde: o que é, contagens, campos disponíveis das personas e como usar as demais ferramentas. Chame primeiro.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "visao_geral",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:1fbdb2b4ca804e86fc7c346e5a6094b114b963b35493e568961360a3152510b3 | sha256sum