AI

Bright Data와 n8n을 활용한 개인 뉴스피드

n8n, OpenAI, Bright Data의 Model Context Protocol 서버로 구동되는 노코드 워크플로우를 활용해 뉴스 수집 및 전달을 자동화하는 방법을 알아보세요.
2 분 읽기
Custom news feed with Bright Data and N8N blog image

이 가이드에서는 n8n, OpenAI 및 Bright Data MCP 서버를 사용해 자동화된 뉴스 스크래퍼를 구축하는 방법을 배웁니다. 이 튜토리얼을 마치면 다음 작업을 수행할 수 있게 됩니다.

  • 자체 호스팅 n8n 인스턴스 생성
  • n8n에 커뮤니티 노드 설치
  • n8n으로 워크플로 구축하기
  • OpenAI와 n8n을 활용한 AI 에이전트 통합
  • Bright Data의 MCP 서버를 사용하여 AI 에이전트를 Web Unlocker에 연결
  • n8n을 사용하여 자동화된 이메일 보내기

시작하기

시작하려면 자체 호스팅 n8n 인스턴스를 실행해야 합니다. 실행되면 n8n 커뮤니티 노드를 설치해야 합니다. 스크래핑 워크플로를 실행하려면 OpenAI와 Bright Data에서 API 키를 받아야 합니다.

n8n 실행하기

n8n용 새 스토리지 볼륨을 생성하고 Docker 컨테이너에서 실행합니다.

# 지속적 볼륨 생성
sudo docker volume create n8n_data

# 서명되지 않은 커뮤니티 노드 지원으로 자체 호스팅 n8n 컨테이너 시작
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

이제 브라우저에서 http://localhost:5678/을 열어주세요. 로그인하거나 계정을 생성하라는 메시지가 표시될 수 있습니다.

n8n Local Login

로그인 후 설정으로 이동하여 “커뮤니티 노드(Community Nodes)”를 선택하세요. 그런 다음 “커뮤니티 노드 설치(Install a community node)” 버튼을 클릭하세요.

Install Community Nodes

“npm 패키지 이름”에 “n8n-nodes-mcp”를 입력하세요.

Install the MCP Community Node with npm

API 키 획득

OpenAI API 키와 Bright Data API 키가 모두 필요합니다. OpenAI 키는 n8n 인스턴스가 GPT-4.1과 같은 LLM에 접근할 수 있게 합니다. Bright Data API 키는 LLM이 Bright Data의 MCP 서버를 통해 실시간 웹 데이터에 접근할 수 있게 합니다.

OpenAI API 키

Open AI 개발자 플랫폼으로 이동하여 아직 계정이 없다면 계정을 생성하세요. “API 키”를 선택한 후 “새 비밀 키 생성” 버튼을 클릭하세요. 키를 안전한 곳에 저장하세요.

Create a New OpenAI API Key

Bright Data API 키

이미 Bright Data 계정이 있을 수 있습니다. 계정이 있더라도 새로운 Web Unlocker 영역을 생성해야 합니다. Bright Data 대시보드에서 “프록시 및 스크래핑”을 선택하고 “추가” 버튼을 클릭하세요.

Adding a New Web Unlocker Instance

다른 존 이름을 사용할 수도 있지만, 이 존을 “mcp_unlocker”로 명명할 것을 강력히 권장합니다. 이 이름은 기본적으로 당사 MCP 서버와 호환되도록 합니다.

계정 설정에서 API 키를 복사하여 안전한 곳에 보관하세요. 이 키는 모든 Bright Data 서비스에 대한 접근 권한을 제공합니다.

Exporting Your Bright Data API Key

자체 호스팅 n8n 인스턴스와 적절한 자격 증명을 준비했으니 이제 워크플로를 구축할 차례입니다.

워크플로 구축

Full News Scraper Workflow

이제 실제 워크플로를 구축해 보겠습니다. “새 워크플로 만들기” 버튼을 클릭하세요. 작업할 수 있는 빈 캔버스가 제공됩니다.

1. 트리거 생성

Adding the Chat Trigger Node

새 노드를 생성하는 것으로 시작하겠습니다. 검색창에 “chat”을 입력한 후 “채팅 트리거” 노드를 선택하세요.

채팅 트리거는 영구적인 트리거가 아니지만 디버깅을 훨씬 쉽게 해줍니다. AI 에이전트는 프롬프트를 입력받게 됩니다. 채팅 트리거 노드를 사용하면 노드를 수정하지 않고도 다양한 프롬프트를 쉽게 테스트할 수 있습니다.

2. 에이전트 추가하기

Adding the AI Agent

다음으로 트리거 노드를 AI 에이전트에 연결해야 합니다. 새 노드를 추가하고 검색창에 “ai agent”를 입력하세요. AI 에이전트 노드를 선택합니다.

Selecting the AI Agent

이 AI 에이전트는 기본적으로 전체 런타임을 포함합니다. 에이전트는 프롬프트를 수신한 후 스크래핑 로직을 실행합니다. 아래에서 프롬프트를 확인할 수 있습니다. 필요에 따라 자유롭게 조정하세요 — 바로 이를 위해 채팅 트리거를 추가한 것입니다. 아래 스니펫은 이 워크플로우에 사용할 프롬프트를 포함합니다.

오늘의 글로벌 뉴스를 수집하세요. 이를 위해 이용 가능한 모든 사이트와 도구를 활용하십시오. 완료 후 직접 링크로 출처를 인용하세요. 인용한 각 페이지의 실제 헤드라인을 포함해 주세요.

3. 모델 연결하기

Adding Our Chat Model

“채팅 모델” 아래의 “+”를 클릭하고 검색창에 “openai”를 입력하세요. OpenAI 채팅 모델을 선택하세요.

Search For OpenAI

인증 정보 추가 요청 시 OpenAI API 키를 입력하고 저장하세요.

Adding Your OpenAI API Key

다음으로 모델을 선택해야 합니다. 다양한 모델 중에서 선택할 수 있지만, 이는 단일 에이전트를 위한 복잡한 워크플로우임을 기억하세요. GPT-4o는 제한된 성공을 거두었습니다. GPT-4.1-Nano와 GPT-4.1-Mini는 모두 불충분했습니다. 전체 GPT-4.1 모델은 비용이 더 비싸지만 놀라울 정도로 유능함을 입증했으므로, 우리가 선택한 모델입니다.

Selecting Your GPT Model

4. 메모리 추가

Adding Memory To Our Agent

컨텍스트 윈도우를 관리하려면 메모리를 추가해야 합니다. 복잡한 것은 필요하지 않습니다. 모델이 단계 간 수행 중인 작업을 기억할 수 있도록 ‘단순 메모리(Simple Memory)’ 설정만 하면 됩니다.

모델에 메모리를 부여하려면 “Simple Memory”를 선택하세요.

Choosing Simple Memory

5. Bright Data의 MCP 연결

Adding List Tools To Our Workflow

웹 검색을 위해 모델은 Bright Data의 MCP 서버에 연결해야 합니다. “Tool” 아래의 “+”를 클릭하고 “Other Tools” 섹션 상단에 표시되는 MCP 클라이언트를 선택하세요.

Selecting the MCP Client Tool

프롬프트가 나타나면 Bright Data MCP 서버의 인증 정보를 입력하세요. “명령어” 상자에 npx를 입력하면 NodeJS가 자동으로 MCP 서버를 생성하고 실행합니다. “인수” 아래에 @brightdata/mcp를 추가하세요. “환경 변수”에는 API_TOKEN=YOUR_BRIGHT_DATA_API_KEY를 입력하세요(실제 키로 대체).

Adding The MCP Credentials

이 도구의 기본 메서드는 “List Tools”입니다. 바로 우리가 필요한 작업입니다. 모델이 연결할 수 있다면 MCP 서버에 핑을 보내 사용 가능한 도구를 나열할 것입니다.

MCP Client Default Settings

준비가 되면 채팅창에 프롬프트를 입력하세요. 사용 가능한 도구를 나열해 달라는 간단한 요청을 사용하세요.

사용 가능한 도구 목록 표시

모델이 사용할 수 있는 도구 목록이 응답으로 표시됩니다. 이 경우 MCP 서버에 연결된 것입니다. 아래 스니펫은 응답의 일부만 포함합니다. 총 21개의 도구를 모델이 사용할 수 있습니다.

사용 가능한 도구 목록:

1. search_engine – Google, Bing 또는 Yandex 검색 후 마크다운 형식(URL, 제목, 설명)으로 결과 반환.

2. scrape_as_markdown – 웹페이지를 스크랩하여 마크다운 형식으로 결과 반환.

3. scrape_as_html – 웹페이지를 스크랩하여 HTML 형식으로 결과 반환.

4. session_stats – 현재 세션 내 도구 사용 통계 표시.

5. web_data_amazon_product – 아마존 상품 URL을 사용해 구조화된 상품 데이터 조회.

6. 스크래핑 도구 추가하기

Giving Our Agent Access to Scraping Tools

“Tool” 아래의 “+”를 다시 클릭하세요. “Other Tools” 섹션에서 동일한 “MCP Client Tool”을 다시 선택하세요.

MCP Client Tool

이번에는 도구를 “도구 실행”으로 설정합니다.

MCP Client Tool Settings

“Tool Name” 아래에 다음 JavaScript 표현식을 붙여넣습니다. “fromAI” 함수를 호출하여 toolname, descriptiondatatype을 전달합니다.

{{ $fromAI("toolname", "사용자 요청에 따라 지정된 가장 적합한 실행 도구 및 사용 가능한 도구 목록", "string") }}

매개변수 아래에 다음 블록을 추가합니다. 이는 선호하는 검색 엔진과 함께 모델에 쿼리를 제공합니다.

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

  "engine": "google"
}

이제 AI 에이전트 자체의 매개변수를 조정하세요. 다음 시스템 메시지를 추가합니다.

당신은 Bright Data의 Web Unlocker API에 접근 가능한 전문 웹 스크래핑 어시스턴트입니다. 이를 통해 특정 작업 세트를 실행할 수 있습니다. 도구를 사용할 때는 실행을 위해 정확한 도구 이름을 공유해야 합니다.

예를 들어, "검색 엔진 스크래핑"은 "search_engine"이어야 합니다.
Adjusted AI Agent With System Message

스크레이퍼를 실제로 실행하기 전에 재시도 기능을 켜야 합니다. AI 에이전트는 똑똑하지만 완벽하지는 않습니다. 작업이 실패할 때가 있으며 이를 처리해야 합니다. 수동으로 코딩된 스크레이퍼와 마찬가지로, 일관되게 작동하는 제품을 원한다면 재시도 로직은 선택 사항이 아닙니다.

Turning On Retry Logic

아래 프롬프트를 실행해 보세요.

오늘의 글로벌 뉴스를 수집하세요. 이를 위해 이용 가능한 사이트와 도구를 자유롭게 활용하십시오. 완료 후 직접 링크와 함께 출처를 인용하세요. 인용한 각 페이지의 실제 헤드라인을 포함해 주십시오.

모든 것이 정상적으로 작동한다면 아래와 유사한 응답을 받아야 합니다.

오늘의 실제 글로벌 뉴스 헤드라인과 각 출처의 직접 링크는 다음과 같습니다:

1. 로이터
헤드라인: 후티 휴전, 미 정보기관이 무장 세력의 퇴출 경로 모색 확인 후 이루어져
출처: https://www.reuters.com/world/

2. CNN
헤드라인: 스타머 총리 자택 화재 후 방화 혐의로 영국 경찰, 남성 체포
출처: https://www.cnn.com/world

3. BBC
제목: 세계 '가장 가난한 대통령' 우루과이 호세 무히카 전 대통령 별세
출처: https://www.bbc.com/news/world

4. AP 뉴스
제목: 이스라엘-하마스 전쟁, 러시아-우크라이나 전쟁, 중국, 아시아 태평양, 라틴 아메리카, 유럽, 아프리카 (다양한 글로벌 위기)
출처: https://apnews.com/world-news

5. 가디언
제목: 새의 장난: 스위스 과속 단속 카메라에 걸린 날아다니는 오리, 재범자로 추정
출처: https://www.theguardian.com/world

이 헤드라인들은 오늘 기준 각 신뢰할 수 있는 글로벌 뉴스 매체의 세계 섹션 주요 헤드라인에서 선별되었습니다.

7. 시작과 끝

Fully Finished Workflow

이제 AI 에이전트가 역할을 수행하므로 워크플로의 시작과 끝을 추가해야 합니다. 뉴스 스크래퍼는 개별 프롬프트가 아닌 스케줄러에서 작동해야 합니다. 마지막으로 출력은 SMTP를 사용하여 이메일을 발송해야 합니다.

적절한 트리거 추가

“스케줄 트리거(Schedule Trigger)” 노드를 검색하여 워크플로에 추가하세요.

Select the Schedule Trigger

원하는 시간에 트리거되도록 설정하세요. 우리는 오전 9시를 선택했습니다.

Setting the Schedule

이제 트리거 로직에 한 개의 노드를 더 추가해야 합니다. 이 노드는 채팅 모델에 더미 프롬프트를 주입할 것입니다.
스케줄 트리거에 “필드 편집” 노드를 추가하세요.

Starting Workflow

다음 내용을 JSON 형식으로 편집 필드 노드에 추가하세요. “sessionId”는 가짜 값입니다 — sessionId 없이는 채팅을 시작할 수 없습니다. “chatInput”은 LLM에 주입할 프롬프트를 담습니다.

{
  "sessionId": "google",
  "chatInput": "오늘의 글로벌 뉴스를 가져오세요. 이를 위해 이용 가능한 사이트와 도구를 자유롭게 활용하세요. 완료 후 직접 링크와 함께 출처를 인용해 주세요. 인용한 각 페이지의 실제 헤드라인을 포함해 주세요."
}

마지막으로, 이 새로운 단계를 AI 에이전트에 연결하세요. 이제 에이전트는 스케줄러에 의해 트리거될 수 있습니다.

Connecting the Scheduler to the AI Agent

이메일을 통한 결과 출력

AI 에이전트 노드 오른쪽의 “+”를 클릭하세요. 워크플로 끝에 “이메일 보내기” 노드를 추가합니다. SMTP 자격 증명을 입력한 후 매개변수를 사용하여 이메일을 맞춤 설정하세요.

SMTP Email Parameters

이메일

이제 “워크플로 테스트” 버튼을 클릭할 수 있습니다. 워크플로가 성공적으로 실행되면 현재 모든 헤드라인이 포함된 이메일을 수신하게 됩니다. GPT-4.1

Successful Scrape Output Email

더 나아가기: 실제 웹사이트 스크래핑

현재 상태에서 AI 에이전트는 MCP 서버의 검색 엔진 도구를 사용하여 Google 뉴스에서 헤드라인을 찾습니다. 검색 엔진만 사용하면 결과가 일관되지 않을 수 있습니다. 때로는 AI 에이전트가 실제 헤드라인을 찾기도 하지만, 다른 경우에는 사이트 메타데이터만 표시됩니다 — “CNN의 최신 헤드라인을 확인하세요!”

검색 엔진 도구에만 추출을 제한하지 말고 스크래핑 도구를 추가해 보겠습니다. 워크플로에 다른 도구를 추가하는 것으로 시작하세요. 아래 이미지처럼 AI 에이전트에 세 개의 MCP 클라이언트가 연결되어 있어야 합니다.

스크래핑 도구 추가

Adding Another Tool To The AI Agent

이제 이 새 도구의 설정과 매개변수를 열어야 합니다. 이번에는 도구 설명을 수동으로 설정하는 점에 유의하세요. 에이전트가 혼동하지 않도록 하기 위함입니다.

설명란에는 이 도구를 URL 스크래핑에 사용하도록 AI 에이전트에 지시합니다. 도구 이름은 이전에 생성한 것과 유사하게 설정합니다.

{{ $fromAI("toolname", "사용자 요청 및 사용 가능한 도구 목록에 따라 실행해야 하는 가장 적합한 스크래핑 도구", "string") }}

매개변수에서는 쿼리나 검색 엔진 대신 URL을 명시합니다.

{
  "url": "{{$fromAI('URL', '사용자가 스크래핑하고자 하는 URL', 'string')}}"
}

다른 노드 및 도구 조정

검색 엔진 도구

스크래핑 도구의 경우 AI 에이전트가 혼동하지 않도록 설명을 수동으로 설정합니다. 검색 엔진 도구도 마찬가지로 조정할 예정입니다. 변경 사항은 크지 않으며, 이 MCP 클라이언트를 실행할 때 검색 엔진 도구를 사용하도록 수동으로 지시하기만 하면 됩니다.

Describing the Search Engine Tool Manually

필드 편집: 더미 프롬프트

필드 편집 노드를 열고 더미 프롬프트를 조정합니다.

{
  "sessionId": "google",
  "chatInput": "https://www.brightdata.com/blog와 https://www.theguardian.com/us에서 최신 뉴스를 스크래핑하여 마크다운 형식으로 추출하고, 검색 엔진 도구를 사용하여 Google 뉴스에서 최신 글로벌 헤드라인을 찾아주세요--사이트 설명이 아닌 실제 헤드라인을 추출해야 합니다."
}

매개변수는 아래 이미지와 같아야 합니다.

Adjusting the Dummy Prompt

원래는 가디언 대신 레딧을 사용했습니다. 그러나 OpenAI의 대규모 언어 모델(LLM)은 robots.txt 파일을 준수합니다. 레딧은 스크래핑하기 쉽지만, AI 에이전트는 이를 거부합니다.

LLM Refuses to Scrape Reddit

새롭게 큐레이션된 피드

도구를 추가함으로써, 우리는 AI 에이전트에게 검색 엔진 결과뿐만 아니라 실제 웹사이트를 스크래핑할 수 있는 능력을 부여했습니다. 아래 이메일을 살펴보세요. 각 출처별 뉴스를 매우 상세하게 분석한 훨씬 깔끔한 형식을 갖추고 있습니다.

Our Curated Newsfeed is Finished

결론

n8n, OpenAI, Bright Data의 모델 컨텍스트 프로토콜(MCP) 서버를 결합하면 강력한 AI 기반 워크플로로 뉴스 스크래핑 및 전달을 자동화할 수 있습니다. MCP는 실시간으로 최신 구조화된 웹 데이터에 쉽게 접근할 수 있게 하여, AI 에이전트가 어떤 출처에서든 정확한 콘텐츠를 추출할 수 있도록 지원합니다. AI 자동화가 발전함에 따라 Bright Data의 MCP와 같은 도구는 효율적이고 확장 가능하며 신뢰할 수 있는 데이터 수집에 필수적일 것입니다.

Bright Data는 MCP 서버를 활용한 웹 스크래핑에 관한 당사 기사를 읽어보시길 권장합니다. 지금 가입하시면 무료 크레딧을 받아 제품을 테스트해 보실 수 있습니다.