Guia 2 jul 2026 14 min de leitura por bolsai

Prompts prontos para análise de ações com ChatGPT e Claude (2026)

Uma biblioteca de prompts para análise de ações com IA só entrega valor quando o modelo tem acesso a dados reais. Este guia reúne dez prompts em português para análise fundamentalista, screening de dividendos, comparação setorial e valuation na B3, e mostra como conectar ChatGPT e Claude à API da bolsai para que cada prompt retorne números oficiais em vez de estimativas inventadas. Para cada prompt, indicamos qual ferramenta MCP é acionada.

Por que um LLM sozinho inventa fundamentos brasileiros

Prompts para análise de ações com IA só produzem números confiáveis quando o modelo está conectado a uma fonte de dados. Um LLM puro (ChatGPT ou Claude sem ferramentas) não sabe o P/L, o ROE ou o dividend yield atual de uma ação da B3: ele gera um valor estatisticamente plausível, que costuma estar errado. A solução é ligar o modelo à bolsai, via servidor MCP (Claude Desktop) ou GPT Actions (Custom GPT), para que os prompts busquem dados reais da B3, CVM e BCB.

O problema tem nome técnico: alucinação. Um modelo de linguagem foi treinado para prever o próximo token com base em padrões, não para consultar um banco de dados. Quando alguém pergunta "qual o P/L da PETR4?" a um chatbot sem ferramentas, a resposta sai com aparência de precisão (um número com duas casas decimais, uma frase de contexto) mas sem lastro em nenhuma fonte. Pior: o valor pode refletir um preço de dois anos atrás, misturado a um lucro de outro período, produzindo um múltiplo que nunca existiu.

Para fundamentos brasileiros o risco é maior que para ações americanas. O volume de texto sobre a B3 na internet é menor, os balanços seguem o padrão da CVM (não o do SEC), e indicadores como P/VP, LPA e VPA têm nomenclatura e metodologia próprias. O resultado é que a alucinação sobre uma small cap da B3 tende a ser mais confiante e mais errada do que sobre uma ação do S&P 500.

A correção não é trocar de modelo, e sim dar ao modelo acesso a dados. Quando ChatGPT ou Claude conseguem chamar uma ferramenta que busca o número real, a divisão de trabalho fica clara: a API fornece o dado bruto e auditável; o modelo fornece a interpretação em linguagem natural. É esse arranjo que transforma um chatbot genérico em um assistente de research utilizável.

Duas formas de conectar: MCP no Claude, GPT Actions no ChatGPT

A bolsai expõe os dados da B3 de duas maneiras compatíveis com IA. As duas dão acesso aos mesmos dados; muda o mecanismo de integração e o cliente onde os prompts rodam.

Claude e clientes MCP: o servidor bolsai-mcp

O Model Context Protocol é um padrão aberto publicado pela Anthropic para conectar modelos a fontes externas. O pacote bolsai-mcp implementa um servidor MCP que expõe dez ferramentas de dados da B3 e funciona nativamente em Claude Desktop, Claude Code e Cursor. A instalação e a configuração são detalhadas no guia MCP Server para B3: como conectar Claude à bolsa. O arquivo de configuração do Claude Desktop, claude_desktop_config.json, tem esta forma exata:

{
  "mcpServers": {
    "bolsai": {
      "command": "uvx",
      "args": ["bolsai-mcp"],
      "env": {
        "BOLSAI_API_KEY": "sk_sua_chave_aqui"
      }
    }
  }
}

No Claude Desktop, o arquivo é acessível em Settings, aba Developer, botão Edit Config. As versões de 2026 também trazem um botão "+" no campo de mensagem, com a opção Connectors, para gerenciar servidores MCP sem editar JSON. Depois de salvar, é preciso encerrar e reabrir o aplicativo por completo. Um ícone de ferramenta com a contagem de tools disponíveis aparece na base da conversa quando o servidor está ativo.

ChatGPT: Custom GPT com GPT Actions

No ecossistema da OpenAI, a integração é feita por um Custom GPT com Actions. No builder de GPTs, na aba Configure, a opção Add Action permite colar a URL do schema OpenAPI da bolsai, publicado em https://usebolsai.com/gpt-actions-schema.json (OpenAPI 3.1.0). Em seguida, na seção de autenticação, escolhe-se "API Key" com header customizado Authorization e prefixo Bearer. Criar Custom GPTs exige assinatura ChatGPT Plus. O passo a passo completo, incluindo a variante com OAuth2 para GPTs multiusuário, está no post ChatGPT na bolsa brasileira com GPT Actions.

Todos os prompts abaixo exigem uma chave de API. Crie a sua gratuitamente: 200 requisições/dia, sem cartão.

Criar chave grátis

As ferramentas que os prompts acionam

O servidor bolsai-mcp expõe dez ferramentas. Cinco delas cobrem quase toda análise fundamentalista e aparecem repetidamente na biblioteca de prompts a seguir. A tabela lista essas cinco, que são as que você verá indicadas em cada prompt.

Ferramenta MCP Para que serve Entrada principal
get_fundamentals 27+ indicadores de uma ação (P/L, P/VP, ROE, margens, dívida) ticker
compare_stocks comparação lado a lado de 2 a 5 ações lista de tickers, métricas opcionais
get_dividends histórico de proventos de ações e FIIs (FII detectado pelo sufixo 11) ticker, anos
get_fii_details P/VP, DY, patrimônio líquido e distribuições de um FII ticker do FII
get_stock_quote preço de fechamento, variação, range de 52 semanas, retorno no ano ticker

As outras cinco ferramentas do servidor cobrem busca de empresas (search_companies), lista de setores (list_sectors), histórico de preços (get_price_history), indicadores macro do BCB (get_macro_indicator) e demonstrações financeiras da CVM (get_financial_statements). A referência completa das dez está na página do MCP.

Uma observação sobre screening. O servidor MCP não tem uma ferramenta dedicada de filtro amplo; para screening de universo inteiro o caminho é o endpoint REST /screener (mostrado mais adiante em um exemplo Python executável). Dentro de uma conversa, filtros mais estreitos são resolvidos combinando search_companies, get_fundamentals e compare_stocks. Os prompts de screening abaixo deixam isso explícito.

Como escrever um bom prompt para dados financeiros

Antes da biblioteca, quatro princípios que separam um prompt que funciona de um que devolve resposta vaga. Eles valem tanto para Claude quanto para ChatGPT.

Com isso em mente, a biblioteca a seguir está organizada por objetivo: análise fundamentalista de um ativo, screening por critérios, comparação setorial, dividendos e FIIs. Copie, ajuste os tickers e os cortes, e use no seu cliente conectado à bolsai.

Prompts de análise fundamentalista de um ativo

O caso mais comum: entender a saúde de uma empresa a partir dos seus múltiplos e margens. Esses prompts acionam get_fundamentals, que retorna mais de 27 indicadores calculados a partir dos balanços da CVM.

1. "Puxe os fundamentos atuais da WEGE3 e me explique, em linguagem simples, o que cada múltiplo de valuation (P/L, P/VP, EV/EBITDA) e de rentabilidade (ROE, ROIC, margem líquida) diz sobre a empresa. Cite a data de referência do balanço usado."

Aciona get_fundamentals("WEGE3"). Bom primeiro prompt para validar que a integração está funcionando.

2. "Analise a estrutura de capital da SBSP3: mostre dívida líquida sobre EBITDA, dívida líquida sobre patrimônio e liquidez corrente. A empresa está confortável ou alavancada para o setor de saneamento?"

Aciona get_fundamentals("SBSP3"). Foca nos campos de endividamento (net_debt_ebitda, net_debt_equity, current_ratio).

3. "Com base nos fundamentos da RADL3, monte uma tabela com os indicadores de crescimento (CAGR de receitas e de lucros em 5 anos) e me diga se o preço atual (via P/L e P/SR) parece pagar por esse crescimento ou não."

Aciona get_fundamentals("RADL3"). Usa cagr_revenue_5y, cagr_earnings_5y, pl e p_sr para uma leitura de growth vs preço.

Nos três casos, a resposta do modelo tende a começar listando os números buscados e depois interpretá-los. Se você pedir explicitamente "primeiro os dados, depois a análise", o texto fica mais fácil de conferir contra a fonte.

Prompts de screening por critérios

Screening é filtrar o universo por regras quantitativas. Como observado, o filtro amplo roda no endpoint REST /screener; dentro da conversa, o modelo combina busca e comparação. Deixe os cortes explícitos para o filtro ser reproduzível.

4. "Quero ações de valor na B3: dividend yield acima de 6%, ROE acima de 10% e P/L abaixo de 15. Ordene por dividend yield decrescente e traga as 20 primeiras. Mostre em tabela com ticker, setor, DY, ROE e P/L."

No ChatGPT com GPT Actions ou via REST, mapeia para /screener?dividend_yield_gt=6&roe_gt=10&pl_lt=15&sort=dividend_yield&order=desc&limit=20. Em conversa MCP, o modelo pode aproximar via search_companies + get_fundamentals.

5. "Liste empresas com margem líquida acima de 20% e dívida líquida sobre EBITDA abaixo de 1,5. Depois, para as cinco de maior margem, use compare_stocks para colocar P/L, ROE e margem lado a lado."

Combina um filtro (campos net_margin e net_debt_ebitda) com compare_stocks nas finalistas. Padrão "filtrar e depois comparar".

6. "Descubra quais setores existem na B3 e depois me traga, dentro do setor de Energia Elétrica, as ações com maior ROE. Não invente os nomes dos setores: use a lista real da API."

Aciona list_sectors() primeiro (para obter nomes válidos como "Energia Elétrica"), depois search_companies(sector="Energia Elétrica") e get_fundamentals nas candidatas.

O prompt 6 embute uma boa prática: pedir ao modelo para descobrir os nomes de setor válidos em vez de assumi-los. Os setores seguem os rótulos da CVM em português ("Bancos", "Petróleo e Gás", "Saneamento"), e forçar a descoberta evita que o modelo invente uma taxonomia que não existe.

Prompts de comparação setorial

Comparar pares do mesmo setor é onde a ferramenta compare_stocks brilha: ela aceita de 2 a 5 tickers e devolve os indicadores alinhados, prontos para o modelo narrar as diferenças.

7. "Compare ITUB4, BBDC4, BBAS3 e SANB11 em P/L, P/VP, ROE e margem líquida. Aponte qual banco está mais barato em termos relativos e qual tem a melhor rentabilidade, deixando claro que barato e bom não são a mesma coisa."

Aciona compare_stocks(["ITUB4","BBDC4","BBAS3","SANB11"], metrics=["pl","pvp","roe","net_margin"]).

8. "Compare o valuation de WEGE3 com um grupo de pares industriais que você buscar no setor dela. WEGE3 negocia com prêmio ou desconto sobre o EV/EBITDA médio do grupo? O prêmio (se houver) é justificado pelo ROE?"

Combina get_fundamentals("WEGE3"), search_companies no setor industrial e compare_stocks nos pares, cruzando ev_ebitda com roe.

A resposta a esse tipo de prompt terá o formato de uma tabela seguida de análise. É importante frisar: a bolsai não retorna uma "média setorial" pronta; o modelo a calcula a partir dos tickers que buscou. Vale pedir para ele listar quais ativos entraram na média, porque a escolha dos pares muda o resultado.

Prompts de dividendos e FIIs

Para renda passiva, dois conjuntos de dados importam: o histórico de proventos das ações e os indicadores específicos de fundos imobiliários. As ferramentas get_dividends e get_fii_details cobrem os dois.

9. "Traga o histórico de dividendos e JCP da BBAS3 nos últimos 3 anos. Some por ano, mostre a frequência dos pagamentos e me diga se a distribuição foi crescente, estável ou irregular no período."

Aciona get_dividends("BBAS3", years=3), que retorna cada evento com ex_date, payment_date, value e type (DIVIDEND, JCP, BONIFICACAO).

10. "Detalhe o FII HGLG11: P/VP, dividend yield, patrimônio líquido, tipo de fundo, número de imóveis e vacância. Depois compare com MXRF11 e KNRI11 e explique a diferença de perfil entre um FII de tijolo e um de papel."

Aciona get_fii_details para cada FII. Campos como fund_type, vacancy_pct, property_count e pvp alimentam a comparação de perfil.

A ferramenta get_dividends detecta automaticamente FIIs pelo sufixo "11", então o mesmo prompt de proventos funciona para ações e fundos. Para research mais profundo de fundos imobiliários, o post API de fundos imobiliários em Python detalha os campos disponíveis e os endpoints REST subjacentes.

Exemplo executável: o dado por trás do prompt

Todo prompt acima termina em uma chamada HTTP à API da bolsai. Ver o dado cru ajuda a entender o que o modelo recebe antes de escrever a resposta. O exemplo abaixo, em Python com a biblioteca requests, busca os fundamentos de uma ação. Não existe SDK pip install bolsai: as chamadas REST usam requests diretamente (o único pacote é o bolsai-mcp, o servidor MCP).

import requests

BASE = "https://api.usebolsai.com/api/v1"
API_KEY = "sua_chave_aqui"  # pegue em usebolsai.com/dashboard

# O mesmo dado que get_fundamentals entrega ao modelo
r = requests.get(f"{BASE}/fundamentals/WEGE3", params={"api_key": API_KEY})
d = r.json()

print(d["pl"], d["pvp"], d["roe"], d["dividend_yield"])

A resposta terá o formato de um objeto JSON com os campos em snake_case. Os valores abaixo são ilustrativos, apenas para mostrar a estrutura; os números reais mudam a cada atualização e você deve sempre ler os do seu próprio retorno:

{
  "ticker": "WEGE3",
  "reference_date": "2025-12-31",
  "pl": 00.0,      # ilustrativo
  "pvp": 0.0,      # ilustrativo
  "roe": 00.0,     # ilustrativo
  "dividend_yield": 0.0,  # ilustrativo, TTM
  "reference_date": "2026-07-02"
}

Para screening amplo, o endpoint /screener aceita operadores sobre qualquer campo de fundamentos (_gt, _gte, _lt, _lte, _eq), além de sort, order e limit. É exatamente o que o prompt 4 traduz nos bastidores:

params = {
    "dividend_yield_gt": 6,
    "roe_gt": 10,
    "pl_lt": 15,
    "sort": "dividend_yield",
    "order": "desc",
    "limit": 20,
    "api_key": API_KEY,
}
r = requests.get(f"{BASE}/screener", params=params)
for row in r.json()["data"]:
    print(row["ticker"], row["dividend_yield"], row["roe"], row["pl"])

A documentação completa de parâmetros e campos de resposta está em usebolsai.com/docs. Quando um Custom GPT ou o Claude executa o prompt 4, é essa mesma requisição que roda por baixo.

Boas práticas para não confiar cegamente na IA

Conectar o modelo a dados reais elimina a alucinação numérica, mas não a de interpretação. Três hábitos mantêm o uso responsável.

Confira a data de referência

Os dados da bolsai são de fechamento, atualizados diariamente às 20:30 (horário de Brasília) para preços e macro, e semanalmente aos sábados para balanços, dividendos e FIIs. Um prompt que peça a data usada evita tratar um número de fechamento como cotação intradiária. Isso é especialmente relevante em dias de forte oscilação.

Peça a fonte do cálculo

Indicadores derivados dependem de escolhas metodológicas. A bolsai calcula o lucro TTM pela conta CVM 3.11 (resultado consolidado), define EBIT como lucro bruto menos SG&A e trata patrimônio de bancos pelas contas 2.07/2.08. Pedir ao modelo para explicar de onde vem o número (e não só o número) ajuda a comparar corretamente ativos de setores diferentes.

Trate a saída como research, não como recomendação

A bolsai fornece dados informativos e analíticos, não aconselhamento de investimento. Um prompt bem construído acelera a análise, mas a decisão continua sendo do investidor, considerando objetivo, horizonte e tolerância a risco. Evite prompts que peçam ao modelo "o que comprar": prefira "quais os riscos e os pontos fortes desta tese".

Perguntas frequentes

Posso usar esses prompts direto no ChatGPT ou Claude sem configurar nada?

Pode, mas o modelo vai responder com números inventados. Um LLM sem acesso a dados não conhece o P/L, o ROE ou o dividend yield atual de uma ação brasileira: ele produz um valor plausível que costuma estar errado. Para respostas com números reais é preciso conectar o modelo à bolsai, seja pelo servidor MCP (Claude Desktop, Cursor, Claude Code) ou por um Custom GPT com GPT Actions no ChatGPT. Só assim os prompts acionam as ferramentas que buscam os dados oficiais da B3, CVM e BCB.

Qual a diferença entre usar MCP no Claude e GPT Actions no ChatGPT?

As duas abordagens dão ao modelo acesso aos mesmos dados da bolsai; muda o mecanismo. O MCP (Model Context Protocol) é um padrão aberto suportado nativamente por Claude Desktop, Claude Code e Cursor, configurado no arquivo claude_desktop_config.json com o pacote bolsai-mcp. O GPT Actions é o mecanismo da OpenAI para Custom GPTs: você importa o schema OpenAPI da bolsai no builder de GPTs e configura a autenticação por chave de API. Criar Custom GPTs exige assinatura ChatGPT Plus.

Os dados retornados pelos prompts são em tempo real?

Não. A bolsai fornece dados de fechamento (end-of-day). Cotações e indicadores macro são atualizados diariamente às 20:30 (horário de Brasília), após o fechamento do pregão da B3. Empresas, balanços, dividendos e FIIs são atualizados semanalmente, aos sábados. Portanto os prompts servem para análise fundamentalista e research, não para day trade ou acompanhamento intradiário de preço.

Preciso pagar para usar os prompts com dados reais?

O plano gratuito da bolsai inclui 200 requisições por dia sem cartão de crédito e cobre todas as ferramentas MCP e endpoints REST. Uma análise conversacional típica com dois ou três tickers consome poucas requisições. Para uso intensivo, o plano Pro custa R$49/mês e amplia o limite para 10.000 requisições diárias, além de liberar histórico completo de balanços. A assinatura do ChatGPT Plus ou do Claude é cobrada separadamente pelas respectivas empresas.

Um prompt de screening funciona igual no Claude e no ChatGPT?

O filtro em si é feito no servidor da bolsai, então o resultado é o mesmo. O modelo traduz o critério em linguagem natural para uma chamada ao endpoint /screener (ou para as ferramentas de busca e comparação, quando o filtro é mais estreito) e recebe uma lista ordenada. A qualidade da resposta depende de o prompt deixar os critérios explícitos: valores de corte, campo de ordenação e limite. Prompts vagos geram filtros vagos.

Leia também

O conteúdo deste artigo tem caráter educacional e técnico. Os dados da bolsai são de fechamento e refletem valores públicos da B3, CVM e BCB disponíveis no momento da consulta, podendo mudar. Os valores usados em exemplos de saída são ilustrativos e não representam a cotação ou o indicador real de nenhum ativo. Nada aqui constitui recomendação de compra ou venda. Nomes de produtos e marcas pertencem aos respectivos titulares; Claude e Model Context Protocol são marcas da Anthropic PBC, e ChatGPT e GPT são marcas da OpenAI.