Blog / AI
AI

Feed de notícias pessoal com Bright Data e n8n

Descubra como automatizar a coleta e o fornecimento de notícias usando fluxos de trabalho sem código com a tecnologia n8n, OpenAI e o servidor Model Context Protocol da Bright Data.
13 min de leitura
Custom news feed with Bright Data and N8N blog image

Neste guia, você aprenderá a criar um raspador de notícias automatizado com n8n, OpenAI e o servidor Bright Data MCP. Ao final deste tutorial, você será capaz de realizar o seguinte.

  • Criar uma instância n8n auto-hospedada
  • Instalar nós da comunidade no n8n
  • Crie seus próprios fluxos de trabalho com a n8n
  • Integrar agentes de IA usando OpenAI e n8n
  • Conecte seu AI Agent ao Web Unlocker usando o servidor MCP da Bright Data
  • Enviar e-mails automatizados usando o n8n

Primeiros passos

Para começar, precisamos iniciar uma instância auto-hospedada do n8n. Quando ela estiver em execução, precisaremos instalar um nó da comunidade n8n. Também precisamos obter chaves de API da OpenAI e da Bright Data para executar nosso fluxo de trabalho de raspagem.

Iniciando o n8n

Crie um novo volume de armazenamento para o n8n e inicie-o em um contêiner do Docker.

# Create persistent volume
sudo docker volume create n8n_data

# Start self-hosted n8n container with support for unsigned community nodes
sudo docker run -d 
  --name n8n 
  -p 5678:5678 
  -v n8n_data:/home/node/.n8n 
  -e N8N_BASIC_AUTH_ACTIVE=false 
  -e N8N_ENCRYPTION_KEY="this_is_my_secure_encryption_key_1234" 
  -e N8N_ALLOW_LOADING_UNSIGNED_NODES=true 
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 
  -e N8N_HOST="0.0.0.0" 
  -e N8N_PORT=5678 
  -e WEBHOOK_URL="http://localhost:5678" 
  n8nio/n8n

Agora, abra o site http://localhost:5678/ em seu navegador. Provavelmente, será solicitado que você entre ou crie um login.

Login local da n8n

Depois de fazer login, acesse suas configurações e selecione “Community Nodes” (Nós da comunidade). Em seguida, clique no botão intitulado “Instalar um nó de comunidade”.

Instalar nós da comunidade

Em “npm Package Name” (Nome do pacote npm), digite “n8n-nodes-mcp”.

Instalar o nó da comunidade MCP com o npm

Obtenção de chaves de API

Você precisará de uma chave de API OpenAI e de uma chave de API Bright Data. Sua chave OpenAI permite que sua instância n8n acesse LLMs como o GPT-4.1. Sua chave de API da Bright Data permite que seu LLM acesse dados da Web em tempo real por meio do servidor MCP da Bright Data.

Chaves da API da OpenAI

Acesse a plataforma de desenvolvedores da OpenAI e crie uma conta, caso ainda não o tenha feito. Selecione “API keys” (Chaves de API) e clique no botão “Create new secret key” (Criar nova chave secreta). Salve a chave em um local seguro.

Criar uma nova chave de API da OpenAI

Chaves da API da Bright Data

Talvez você já tenha uma conta na Bright Data. Mesmo que tenha, você deve criar uma nova zona do Web Unlocker. No painel de controle da Bright Data, selecione “Proxies and Scraping” (Proxies e raspagem) e clique no botão “Add” (Adicionar).

Adição de uma nova instância do Web Unlocker

Você pode usar outros nomes de zona, mas é altamente recomendável nomear essa zona como “mcp_unlocker”. Esse nome permite que ela funcione com o nosso servidor MCP praticamente sem problemas.

Nas configurações de sua conta, copie sua chave de API e coloque-a em um local seguro. Essa chave fornece acesso a todos os serviços da Bright Data.

Exportação da chave da API da Bright Data

Agora que temos uma instância n8n auto-hospedada e as credenciais adequadas, é hora de criar nosso fluxo de trabalho.

Criação do fluxo de trabalho

Fluxo de trabalho completo do News Scraper

Agora, vamos criar nosso fluxo de trabalho real. Clique no botão “Criar um novo fluxo de trabalho”. Isso lhe dará uma tela em branco para trabalhar.

1. Criando nosso acionador

Adição do nó de acionamento do chat

Começaremos criando um novo nó. Na barra de pesquisa, digite “chat” e selecione o nó “Chat Trigger”.

O Chat Trigger não será nosso acionador permanente, mas facilita muito a depuração. Nosso agente de IA receberá um prompt. Com o nó Chat Trigger, você pode experimentar diferentes prompts facilmente sem precisar editar seus nós.

2. Como adicionar nosso agente

Adição do agente de IA

Em seguida, precisamos conectar nosso nó de acionamento a um AI Agent. Adicione outro nó e digite “ai agent” na barra de pesquisa. Selecione o nó AI Agent.

Seleção do agente de IA

Esse agente de IA contém basicamente todo o nosso tempo de execução. O agente recebe um prompt e, em seguida, executa nossa lógica de raspagem. Você pode ler nosso prompt abaixo. Sinta-se à vontade para ajustá-lo como achar melhor – é por isso que adicionamos o acionador de bate-papo. O snippet abaixo contém o prompt que usaremos para esse fluxo de trabalho.

Get the global news for the day. Use whichever sites and tools available to make it happen. When finished, cite your sources with direct links. I'd like a real headline from each page you cite.

3. Conexão de um modelo

Adição de nosso modelo de bate-papo

Clique no “+” em “Chat Model” e digite “openai” na barra de pesquisa. Selecione o modelo de chat da OpenAI.

Busca por OpenAI

Quando solicitado a adicionar credenciais, adicione sua chave de API da OpenAI e salve a credencial.

Como adicionar sua chave de API da OpenAI

Em seguida, precisamos escolher um modelo. Você pode escolher entre uma variedade de modelos, mas lembre-se de que esse é um fluxo de trabalho complexo para um único agente. Com o GPT-4o, tivemos sucesso limitado. O GPT-4.1-Nano e o GPT-4.1-Mini se mostraram insuficientes. O modelo completo do GPT-4.1 é mais caro, mas se mostrou incrivelmente competente – portanto, foi com ele que ficamos.

Selecionando seu modelo de GPT

4. Adição de memória

Adicionando memória ao nosso agente

Para gerenciar as janelas de contexto, precisamos adicionar memória. Não precisamos de nada complexo. Precisamos apenas de uma configuração de memória simples para que o nosso modelo possa se lembrar do que está fazendo em todas as etapas.

Escolha a opção “Simple Memory” (Memória simples) para dar memória ao seu modelo.

Escolhendo a memória simples

5. Conexão com o MCP da Bright Data

Adição de ferramentas de lista ao nosso fluxo de trabalho

Para pesquisar na Web, nosso modelo precisa se conectar ao servidor MCP da Bright Data. Clique em “+” em “Tool” (Ferramenta) e selecione o MCP Client (Cliente MCP) que aparece na parte superior da seção “Other Tools” (Outras ferramentas).

Seleção da ferramenta cliente MCP

Quando solicitado, digite suas credenciais para o servidor MCP da Bright Data. Na caixa “Command” (Comando), digite npx – isso permite que o NodeJS crie e execute automaticamente nosso servidor MCP. Em “Arguments” (Argumentos), adicione @brightdata/mcp. Em “Environments” (Ambientes), insira API_TOKEN=YOUR_BRIGHT_DATA_API_KEY (substitua isso por sua chave real).

Adição das credenciais do MCP

O método padrão para essa ferramenta é “List Tools”. É exatamente isso que precisamos fazer. Se o seu modelo conseguir se conectar, ele fará ping no servidor MCP e listará as ferramentas disponíveis para ele.

Configurações padrão do cliente MCP

Quando estiver pronto, insira um prompt no bate-papo. Use um simples pedido para listar as ferramentas disponíveis.

List the tools available to you

Você deve receber uma resposta listando as ferramentas disponíveis para o modelo. Se isso acontecer, você está conectado ao servidor MCP. O trecho abaixo contém apenas uma parte da resposta. No total, há 21 ferramentas disponíveis para o modelo.

Here are the tools available to me:

1. search_engine – Search Google, Bing, or Yandex and return results in markdown (URL, title, description).

2. scrape_as_markdown – Scrape any webpage and return results as Markdown.

3. scrape_as_html – Scrape any webpage and return results as HTML.

4. session_stats – Show the usage statistics for tools in this session.

5. web_data_amazon_product – Retrieve structured Amazon product data (using a product URL).

6. Adição das ferramentas de raspagem

Concedendo ao nosso agente acesso a ferramentas de raspagem

Clique novamente no “+” em “Tool” (Ferramenta). Mais uma vez, selecione a mesma “MCP Client Tool” na seção “Other Tools” (Outras ferramentas).

Ferramenta de cliente MCP

Dessa vez, defina a ferramenta para usar “Execute Tool”.

Configurações da ferramenta cliente MCP

Em “Nome da ferramenta”, cole a seguinte expressão JavaScript. Chamamos a função “fromAI” e passamos o nome da ferramenta, a descrição e o tipo de dado.

{{ $fromAI("toolname", "the most applicable tool required to be executed as specified by the users request and list of tools available", "string") }}

Sob os parâmetros, adicione o seguinte bloco. Ele fornece uma consulta ao modelo juntamente com seu mecanismo de pesquisa preferido.

{
  "query": "Return the top 5 world news headlines and their links."
,
  "engine": "google"
}

Agora, ajuste os parâmetros do próprio agente de IA. Adicione a seguinte mensagem do sistema.

You are an expert web scraping assistant with access to Bright Data's Web Unlocker API. This gives you the ability to execute a specific set of actions. When using tools, you must share across the exact name of the tool for it to be executed.

For example, "Search Engine Scraping" should be "search_engine"
Agente de IA ajustado com mensagem do sistema

Antes de realmente executar o raspador, precisamos ativar as novas tentativas. Os agentes de IA são inteligentes, mas não são perfeitos. Às vezes, os trabalhos falham e precisam ser tratados. Assim como os raspadores codificados manualmente, a lógica de nova tentativa não é opcional se você quiser um produto que funcione de forma consistente.

Ativação da lógica de repetição

Execute o prompt abaixo.

Get the global news for the day. Use whichever sites and tools available to make it happen. When finished, cite your sources with direct links. I'd like a real headline from each page you cite.

Se tudo estiver funcionando, você deverá receber uma resposta semelhante à abaixo.

Here are real global news headlines for today, each with a direct source link:

1. Reuters
Headline: Houthi ceasefire followed US intel showing militants sought off-ramp
Source: https://www.reuters.com/world/

2. CNN
Headline: UK police arrest man for arson after fire at PM Starmer's house
Source: https://www.cnn.com/world

3. BBC
Headline: Uruguay's José Mujica, world's 'poorest president', dies
Source: https://www.bbc.com/news/world

4. AP News
Headline: Israel-Hamas war, Russia-Ukraine War, China, Asia Pacific, Latin America, Europe, Africa (multiple global crises)
Source: https://apnews.com/world-news

5. The Guardian
Headline: Fowl play: flying duck caught in Swiss speed trap believed to be repeat offender
Source: https://www.theguardian.com/world

These headlines were selected from the main headlines of each trusted global news outlet’s world section as of today.

7. O início e o fim

Fluxo de trabalho totalmente finalizado

Agora que nosso AI Agent faz seu trabalho, precisamos adicionar o início e o fim do fluxo de trabalho. Nosso coletor de notícias deve funcionar a partir de um agendador, não de um prompt individual. Por fim, nossa saída deve enviar um e-mail usando SMTP.

Adição do gatilho adequado

Procure o nó “Schedule Trigger” e adicione-o ao seu fluxo de trabalho.

Selecione o Schedule Trigger

Configure-o para ser acionado no horário desejado. Escolhemos 9:00 da manhã.

Definição do cronograma

Agora, precisamos adicionar mais um nó à nossa lógica de acionamento. Esse nó injetará um prompt fictício em nosso modelo de chat.
Adicione o nó “Editar campos” ao seu acionador de agendamento.

Iniciando o fluxo de trabalho

Adicione o seguinte ao seu nó Edit Fields como JSON. “sessionId” é apenas um valor fictício – você não pode iniciar um bate-papo sem um sessionId. “chatInput” contém o prompt que estamos injetando no LLM.

{
  "sessionId": "google",
  "chatInput": "Get the global news for the day. Use whichever sites and tools available to make it happen. When finished, cite your sources with direct links. I'd like a real headline from each page you cite."
}

Por fim, conecte essas novas etapas ao seu AI Agent. Seu agente agora pode ser acionado pelo agendador.

Conectando o Agendador ao Agente de IA

Saída dos resultados por e-mail

Clique em “+” no lado direito de seu nó do AI Agent. Adicione o nó “Send Email” (Enviar e-mail) ao final de seu fluxo de trabalho. Adicione suas credenciais de SMTP e, em seguida, use os parâmetros para personalizar o e-mail.

Parâmetros de e-mail SMTP

O e-mail

Agora você pode clicar no botão “Testar fluxo de trabalho”. Quando o fluxo de trabalho for executado com êxito, você receberá um e-mail com todas as manchetes atuais. GPT-4.1

E-mail de saída de raspagem bem-sucedido

Indo além: Raspagem de sites reais

Em seu estado atual, nosso agente de IA encontra manchetes do Google News usando a ferramenta de mecanismo de pesquisa do servidor MCP. Usando apenas um mecanismo de pesquisa, os resultados podem ser inconsistentes. Às vezes, o AI Agent encontra manchetes reais. Outras vezes, ele vê apenas os metadados do site – “Obtenha as últimas manchetes da CNN!”

Em vez de limitar nossa extração à ferramenta do mecanismo de pesquisa, vamos adicionar uma ferramenta de raspagem. Comece adicionando outra ferramenta ao seu fluxo de trabalho. Agora você deve ter três clientes MCP conectados ao seu AI Agent, como na imagem abaixo.

Adição de ferramentas de raspagem

Adicionando outra ferramenta ao agente de IA

Agora, precisamos abrir as configurações e os parâmetros para essa nova ferramenta. Observe como definimos a Descrição da ferramenta manualmente desta vez. Estamos fazendo isso para que o agente não se confunda.

Em nossa descrição, dizemos ao AI Agent para usar essa ferramenta para extrair URLs. Nosso nome de ferramenta é semelhante ao que criamos anteriormente.

{{ $fromAI("toolname", "the most applicable scraping tool required to be executed as specified by the users request and list of tools available", "string") }}

Em nossos parâmetros, especificamos uma url em vez de uma consulta ou mecanismo de pesquisa.

{
  "url": "{{$fromAI('URL', 'url that the user would like to scrape', 'string')}}"
}

Ajuste dos outros nós e ferramentas

A ferramenta do mecanismo de pesquisa

Com nossa ferramenta de raspagem, definimos a descrição manualmente para evitar que o AI Agent se confunda. Também vamos ajustar a ferramenta do mecanismo de pesquisa. As alterações não são extensas, apenas informamos manualmente que ele deve usar a ferramenta Search Engine ao executar esse cliente MCP.

Descrevendo a ferramenta de mecanismo de pesquisa manualmente

Editar campos: O prompt fictício

Abra o nó Edit Fields e ajuste nosso prompt fictício.

{
  "sessionId": "google",
  "chatInput": "get the latest news from https://www.brightdata.com/blog and https://www.theguardian.com/us with your scrape_as_markdown and Google News with your search engine tool to find the latest global headlines--pull actual headlines, not just the site description."
}

Seus parâmetros devem se parecer com a imagem abaixo.

Ajuste do prompt fictício

Originalmente, usamos o Reddit em vez do The Guardian. No entanto, os LLMs do OpenAI obedecem ao arquivo robots.txt. Embora o Reddit seja fácil de ser extraído, o AI Agent se recusa a fazer isso.

LLM se recusa a fazer scraping no Reddit

O novo feed com curadoria

Ao adicionar outra ferramenta, demos ao nosso Agente de IA o poder de realmente raspar sites, não apenas resultados de mecanismos de pesquisa. Dê uma olhada no e-mail abaixo. Ele tem um formato muito mais limpo, com uma análise altamente detalhada das notícias de cada fonte.

Nosso Newsfeed com curadoria está pronto

Conclusão

Ao combinar o n8n, o OpenAI e o servidor MCP (Model Context Protocol) da Bright Data, você pode automatizar a raspagem e a entrega de notícias com fluxos de trabalho avançados e orientados por IA. O MCP facilita o acesso a dados da Web atualizados e estruturados em tempo real, capacitando seus agentes de IA a extrair conteúdo preciso de qualquer fonte. À medida que a automação da IA evolui, ferramentas como o MCP da Bright Data serão essenciais para uma coleta de dados eficiente, escalável e confiável.

A Bright Data o incentiva a ler nosso artigo sobre raspagem da web com servidores MCP. Registre-se agora para obter seus créditos gratuitos para testar nossos produtos.