Blog / AI
AI

Persönlicher Newsfeed mit Bright Data und n8n

Entdecken Sie, wie Sie die Sammlung und Zustellung von Nachrichten mithilfe von No-Code-Workflows automatisieren können, die von n8n, OpenAI und dem Model Context Protocol-Server von Bright Data unterstützt werden.
13 min lesen
Custom news feed with Bright Data and N8N blog image

In dieser Anleitung erfahren Sie, wie Sie einen automatisierten News Scraper mit n8n, OpenAI und dem Bright Data MCP Server erstellen. Am Ende dieses Tutorials werden Sie in der Lage sein, die folgenden Aufgaben auszuführen.

  • Erstellen einer selbst gehosteten n8n-Instanz
  • Gemeinschaftsknoten in n8n installieren
  • Erstellen Sie Ihre eigenen Arbeitsabläufe mit n8n
  • Integration von KI-Agenten mit OpenAI und n8n
  • Verbinden Sie Ihren AI Agent mit Web Unlocker über den MCP Server von Bright Data
  • Automatisierte E-Mails mit n8n versenden

Erste Schritte

Um zu beginnen, müssen wir eine selbst gehostete Instanz von n8n starten. Sobald sie läuft, müssen wir einen n8n-Community-Knoten installieren. Außerdem müssen wir API-Schlüssel von OpenAI und Bright Data erhalten, um unseren Scraping-Workflow auszuführen.

Starten von n8n

Erstellen Sie ein neues Speichervolumen für n8n und starten Sie es in einem Docker-Container.

# 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

Öffnen Sie nun http://localhost:5678/ in Ihrem Browser. Sie werden wahrscheinlich aufgefordert, sich anzumelden oder ein Login zu erstellen.

n8n Lokale Anmeldung

Nachdem Sie eingeloggt sind, gehen Sie zu Ihren Einstellungen und wählen Sie “Community-Knoten”. Klicken Sie dann auf die Schaltfläche “Einen Community-Knoten installieren”.

Gemeinschaftsknoten installieren

Geben Sie unter “npm-Paketname” “n8n-nodes-mcp” ein.

Installieren Sie den MCP Community Node mit npm

API-Schlüssel erhalten

Sie benötigen sowohl einen OpenAI-API-Schlüssel als auch einen Bright Data-API-Schlüssel. Mit dem OpenAI-Schlüssel kann Ihre n8n-Instanz auf LLMs wie GPT-4.1 zugreifen. Mit dem Bright Data-API-Schlüssel kann Ihr LLM auf Echtzeit-Webdaten über den MCP-Server von Bright Data zugreifen.

OpenAI API-Schlüssel

Rufen Sie die OpenAI-Entwicklerplattform auf und erstellen Sie ein Konto, falls Sie dies noch nicht getan haben. Wählen Sie “API-Schlüssel” und klicken Sie dann auf die Schaltfläche “Neuen geheimen Schlüssel erstellen”. Speichern Sie den Schlüssel an einem sicheren Ort.

Einen neuen OpenAI API-Schlüssel erstellen

Bright Data API-Schlüssel

Möglicherweise haben Sie bereits ein Konto bei Bright Data. In diesem Fall sollten Sie eine neue Web Unlocker-Zone erstellen. Wählen Sie im Bright Data-Dashboard die Option “Proxies und Scraping” und klicken Sie auf die Schaltfläche “Hinzufügen”.

Hinzufügen einer neuen Web Unlocker Instanz

Sie können auch andere Zonennamen verwenden, aber wir empfehlen Ihnen dringend, diese Zone “mcp_unlocker” zu nennen. Dieser Name ermöglicht die Zusammenarbeit mit unserem MCP-Server so gut wie von Anfang an.

Kopieren Sie in Ihren Kontoeinstellungen Ihren API-Schlüssel, und bewahren Sie ihn an einem sicheren Ort auf. Dieser Schlüssel ermöglicht den Zugriff auf alle Ihre Bright Data-Services.

Exportieren des Bright Data-API-Schlüssels

Jetzt, da wir eine selbst gehostete n8n-Instanz und die richtigen Anmeldedaten haben, ist es an der Zeit, unseren Workflow zu erstellen.

Aufbau des Arbeitsablaufs

Vollständiger News Scraper Arbeitsablauf

Nun werden wir unseren eigentlichen Arbeitsablauf erstellen. Klicken Sie auf die Schaltfläche “Einen neuen Arbeitsablauf erstellen”. Jetzt haben Sie eine leere Leinwand, mit der Sie arbeiten können.

1. Erstellen unseres Auslösers

Hinzufügen des Chat-Trigger-Knotens

Wir beginnen mit der Erstellung eines neuen Knotens. Geben Sie in der Suchleiste “Chat” ein und wählen Sie dann den Knoten “Chat-Trigger”.

Der Chat-Trigger wird nicht unser ständiger Auslöser sein, aber er erleichtert die Fehlersuche erheblich. Unser KI-Agent wird eine Eingabeaufforderung entgegennehmen. Mit dem Chat-Trigger-Knoten können Sie ganz einfach verschiedene Prompts ausprobieren, ohne Ihre Knoten bearbeiten zu müssen.

2. Hinzufügen unseres Agenten

Hinzufügen des AI-Agenten

Als nächstes müssen wir unseren Auslöseknoten mit einem KI-Agenten verbinden. Fügen Sie einen weiteren Knoten hinzu und geben Sie “ai agent” in die Suchleiste ein. Wählen Sie den KI-Agent-Knoten aus.

Auswahl des AI-Agenten

Dieser KI-Agent enthält im Grunde unsere gesamte Laufzeit. Der Agent erhält eine Eingabeaufforderung und führt dann unsere Scraping-Logik aus. Sie können unsere Aufforderung unten lesen. Sie können sie nach eigenem Ermessen anpassen – deshalb haben wir den Chat-Trigger hinzugefügt. Das folgende Snippet enthält die Eingabeaufforderung, die wir für diesen Workflow verwenden werden.

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. Verbinden eines Modells

Hinzufügen unseres Chat-Modells

Klicken Sie auf das “+” unter “Chat-Modell” und geben Sie “openai” in die Suchleiste ein. Wählen Sie das OpenAI-Chat-Modell aus.

Suche nach OpenAI

Wenn Sie aufgefordert werden, Anmeldeinformationen hinzuzufügen, fügen Sie Ihren OpenAI-API-Schlüssel hinzu und speichern Sie die Anmeldeinformationen.

Hinzufügen Ihres OpenAI API-Schlüssels

Als nächstes müssen wir ein Modell auswählen. Sie können aus einer Vielzahl von Modellen wählen, aber bedenken Sie, dass dies ein komplexer Arbeitsablauf für einen einzelnen Agenten ist. Mit GPT-4o hatten wir nur begrenzten Erfolg. GPT-4.1-Nano und GPT-4.1-Mini erwiesen sich beide als unzureichend. Das vollständige GPT-4.1-Modell ist zwar teurer, erwies sich aber als unglaublich kompetent – deshalb haben wir uns für dieses Modell entschieden.

Wählen Sie Ihr GPT-Modell

4. Hinzufügen von Speicher

Unserem Agenten einen Speicher hinzufügen

Um Kontextfenster zu verwalten, müssen wir Speicher hinzufügen. Wir brauchen nichts Komplexes. Wir brauchen nur einen einfachen Speicher, damit sich unser Modell über mehrere Schritte hinweg merken kann, was es gerade tut.

Wählen Sie die Option “Einfacher Speicher”, um Ihrem Modell einen Speicher zu geben.

Auswahl eines einfachen Speichers

5. Verbinden mit dem MCP von Bright Data

Hinzufügen von Listenwerkzeugen zu unserem Workflow

Um das Web zu durchsuchen, muss unser Modell eine Verbindung mit dem MCP-Server von Bright Data herstellen. Klicken Sie auf das “+” unter “Tool” und wählen Sie den MCP-Client, der oben im Abschnitt “Andere Tools” angezeigt wird.

Auswahl des MCP-Client-Tools

Wenn Sie dazu aufgefordert werden, geben Sie Ihre Anmeldeinformationen für den Bright Data MCP-Server ein. Geben Sie in das Feld “Befehl” den Befehl npx ein. Dadurch kann NodeJS automatisch unseren MCP-Server erstellen und ausführen. Fügen Sie unter “Argumente” @brightdata/mcp hinzu. Geben Sie unter “Umgebungen” API_TOKEN=YOUR_BRIGHT_DATA_API_KEY ein (ersetzen Sie dies durch Ihren tatsächlichen Schlüssel).

Hinzufügen der MCP-Berechtigungsnachweise

Die Standardmethode für dieses Werkzeug ist “List Tools”. Das ist genau das, was wir tun müssen. Wenn Ihr Modell eine Verbindung herstellen kann, wird es den MCP-Server anpingen und die ihm zur Verfügung stehenden Werkzeuge auflisten.

MCP-Client-Standardeinstellungen

Sobald Sie bereit sind, geben Sie eine Aufforderung in den Chat ein. Verwenden Sie eine einfache Aufforderung zur Auflistung der verfügbaren Werkzeuge.

List the tools available to you

Sie sollten eine Antwort erhalten, in der die für das Modell verfügbaren Werkzeuge aufgelistet sind. Wenn dies der Fall ist, sind Sie mit dem MCP-Server verbunden. Der unten stehende Ausschnitt enthält nur einen Teil der Antwort. Insgesamt sind 21 Werkzeuge für das Modell verfügbar.

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. Hinzufügen der Scraping-Tools

Unserem Agenten Zugang zu Scraping-Tools gewähren

Klicken Sie erneut auf das “+” unter “Tool”. Wählen Sie erneut das gleiche “MCP Client Tool” aus dem Abschnitt “Andere Tools”.

MCP-Client-Tool

Stellen Sie dieses Mal das Werkzeug auf “Werkzeug ausführen” ein.

MCP-Client-Tool-Einstellungen

Fügen Sie unter “Tool Name” den folgenden JavaScript-Ausdruck ein. Wir rufen die Funktion “fromAI” auf und geben den Toolnamen, die Beschreibung und den Datentyp ein.

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

Fügen Sie unter den Parametern den folgenden Block hinzu. Er gibt eine Abfrage an das Modell neben Ihrer bevorzugten Suchmaschine.

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

Passen Sie nun die Parameter für den KI-Agenten selbst an. Fügen Sie die folgende Systemmeldung hinzu.

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"
Angepasster AI-Agent mit Systemmeldung

Bevor wir den Scraper tatsächlich ausführen, müssen wir die Wiederholungsversuche aktivieren. KI-Agenten sind intelligent, aber sie sind nicht perfekt. Aufträge schlagen manchmal fehl und müssen behandelt werden. Genau wie bei manuell programmierten Scrapers ist die Wiederholungslogik nicht optional, wenn Sie ein Produkt wollen, das konsistent funktioniert.

Wiederholungslogik einschalten

Führen Sie die folgende Eingabeaufforderung aus.

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.

Wenn alles funktioniert, sollten Sie eine ähnliche Antwort wie die folgende erhalten.

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. Der Anfang und das Ende

Vollständig abgeschlossener Workflow

Nun, da unser KI-Agent seine Aufgabe erfüllt, müssen wir den Anfang und das Ende des Arbeitsablaufs hinzufügen. Unser News Scraper sollte mit einem Scheduler arbeiten, nicht mit einer individuellen Eingabeaufforderung. Schließlich sollte unsere Ausgabe eine E-Mail über SMTP senden.

Hinzufügen des richtigen Auslösers

Suchen Sie nach dem Knoten “Zeitplanauslöser” und fügen Sie ihn zu Ihrem Workflow hinzu.

Wählen Sie den Zeitplanauslöser

Stellen Sie ihn so ein, dass er zu der von Ihnen gewünschten Zeit ausgelöst wird. Wir haben 9:00 Uhr morgens gewählt.

Festlegung des Zeitplans

Nun müssen wir unserer Auslöserlogik einen weiteren Knoten hinzufügen. Dieser Knoten wird eine Dummy-Eingabeaufforderung in unser Chat-Modell einfügen.
Fügen Sie den Knoten “Felder bearbeiten” zu Ihrem Zeitplanauslöser hinzu.

Workflow starten

Fügen Sie dem Knoten “Felder bearbeiten” das Folgende als JSON hinzu. “sessionId” ist nur ein Dummy-Wert – Sie können keinen Chat ohne eine sessionId starten. “chatInput” enthält die Eingabeaufforderung, die wir in den LLM injizieren.

{
  "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."
}

Verbinden Sie schließlich diese neuen Schritte mit Ihrem KI-Agenten. Ihr Agent kann nun durch den Planer ausgelöst werden.

Verbinden des Schedulers mit dem AI Agent

Ausgabe der Ergebnisse per E-Mail

Klicken Sie auf das “+” auf der rechten Seite Ihres AI Agent-Knotens. Fügen Sie den Knoten “E-Mail senden” an das Ende Ihres Workflows an. Fügen Sie Ihre SMTP-Anmeldeinformationen hinzu und verwenden Sie dann die Parameter, um die E-Mail anzupassen.

SMTP-E-Mail-Parameter

Die E-Mail

Sie können nun auf die Schaltfläche “Workflow testen” klicken. Wenn der Workflow erfolgreich läuft, erhalten Sie eine E-Mail mit allen aktuellen Schlagzeilen. GPT-4.1

Erfolgreicher Scrape Output E-Mail

Wir gehen noch einen Schritt weiter: Scraping aktueller Websites

In seinem derzeitigen Zustand findet unser KI-Agent Schlagzeilen aus Google News mit Hilfe des Suchmaschinen-Tools des MCP-Servers. Wenn nur eine Suchmaschine verwendet wird, können die Ergebnisse uneinheitlich sein. Manchmal findet der KI-Agent echte Schlagzeilen. In anderen Fällen sieht er nur die Metadaten der Website – “Holen Sie sich die neuesten Schlagzeilen von CNN!

Anstatt unsere Extraktion auf das Suchmaschinentool zu beschränken, sollten wir ein Scraping-Tool hinzufügen. Fügen Sie zunächst ein weiteres Tool zu Ihrem Workflow hinzu. Sie sollten nun drei MCP-Clients an Ihren AI-Agenten angeschlossen haben, wie Sie in der Abbildung unten sehen.

Hinzufügen von Scraping-Tools

Ein weiteres Werkzeug für den KI-Agenten

Nun müssen wir die Einstellungen und Parameter für dieses neue Werkzeug öffnen. Beachten Sie, dass wir die Werkzeugbeschreibung dieses Mal manuell einstellen. Wir tun dies, damit der Agent nicht verwirrt wird.

In unserer Beschreibung teilen wir dem KI-Agenten mit, dass er dieses Tool zum Scrapen von URLs verwenden soll. Unser Tool-Name ist ähnlich wie der, den wir zuvor erstellt haben.

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

In unseren Parametern geben wir eine URL anstelle einer Abfrage oder Suchmaschine an.

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

Anpassen der anderen Knoten und Werkzeuge

Das Suchmaschinentool

Bei unserem Scraping-Tool legen wir die Beschreibung manuell fest, damit der KI-Agent nicht durcheinander kommt. Wir werden auch das Suchmaschinentool anpassen. Die Änderungen sind nicht sehr umfangreich, wir weisen den Agenten nur manuell an, das Suchmaschinentool zu verwenden, wenn wir diesen MCP-Client ausführen.

Manuelles Beschreiben des Suchmaschinentools

Felder bearbeiten: Die Dummy-Eingabeaufforderung

Öffnen Sie den Knoten Felder bearbeiten und passen Sie unsere Dummy-Eingabeaufforderung an.

{
  "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."
}

Ihre Parameter sollten wie in der folgenden Abbildung aussehen.

Einstellen des Dummy-Prompts

Ursprünglich hatten wir Reddit anstelle von The Guardian verwendet. Die LLMs von OpenAI befolgen jedoch die robots.txt-Datei. Obwohl Reddit leicht zu scrapen ist, weigert sich der KI-Agent, dies zu tun.

LLM weigert sich, Reddit zu kratzen

Der neu kuratierte Feed

Durch die Hinzufügung eines weiteren Tools haben wir unseren KI-Agenten in die Lage versetzt, tatsächlich Websites zu scrapen, nicht nur Suchmaschinenergebnisse. Werfen Sie einen Blick auf die folgende E-Mail. Sie hat ein viel übersichtlicheres Format mit einer sehr detaillierten Aufschlüsselung der Nachrichten aus jeder Quelle.

Unser kuratierter Newsfeed ist fertig

Schlussfolgerung

Durch die Kombination von n8n, OpenAI und dem Model Context Protocol (MCP) Server von Bright Data können Sie das Scraping und die Bereitstellung von Nachrichten mit leistungsstarken, KI-gesteuerten Workflows automatisieren. MCP erleichtert den Zugriff auf aktuelle, strukturierte Webdaten in Echtzeit und ermöglicht es Ihren KI-Agenten, präzise Inhalte aus jeder beliebigen Quelle zu beziehen. Im Zuge der Weiterentwicklung der KI-Automatisierung werden Tools wie MCP von Bright Data für eine effiziente, skalierbare und zuverlässige Datenerfassung unverzichtbar sein.

Bright Data empfiehlt Ihnen, unseren Artikel über Web Scraping mit MCP-Servern zu lesen. Melden Sie sich jetzt an, um Ihr kostenloses Guthaben zum Testen unserer Produkte zu erhalten.