Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,537Letters: 14Defects: 1,323counted just now
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:1fbdb2b4ca804e86fc7c346e5a6094b114b963b35493e568961360a3152510b3 | sha256sum