AI

MCP 서버를 활용한 웹 스크래핑: 단계별 가이드

MCP 서버를 생성하여 필요 시 데이터를 수집하고, 개발자 도구와 연결하며, 실시간 AI 활용 웹 데이터를 위해 Bright Data를 통합하세요.
3 분 읽기
Web Scraping With an MCP Server blog image

이 가이드는 MCP가 웹 스크래핑 워크플로우를 어떻게 혁신하는지 살펴보고, 웹 데이터 추출을 위한 Bright Data의 Web MCP 서버 구현 과정을 안내합니다. AI 어시스턴트와의 간단한 대화형 프롬프트를 통해 심하게 보호된 웹사이트에서도 LLM이 실시간 웹 데이터를 가져올 수 있는 시스템 구축 방법을 배우게 됩니다.

병목 현상: 대규모 언어 모델이 실제 상호작용에 어려움을 겪는 이유(그리고 MCP가 이를 해결하는 방법)

대규모 언어 모델은 인터넷의 정적 스냅샷으로 훈련되므로 기본적으로

  • 실시간 웹사이트나 데이터베이스를 열거나
  • 사용자 정의 스크립트 실행
  • CAPTCHA 및 기타 봇 방어 체계 우회
  • 자바스크립트 실행을 통한 동적 데이터 추출

직접 시도해 보세요: Claude에게 베스트바이 상품의 현재 가격을 물어보세요. Claude에는 웹 검색 모드가 있지만, Brave Search의 캐시된 인덱스에 의존하기 때문에 가격과 재고 수준이 종종 오래된 정보입니다. 게다가 JavaScript를 실행하거나 베스트바이의 보안 인증을 우회할 수 없어 중요한 세부 정보를 확인할 수 없습니다.

No updated pricing data on Claude

모델 컨텍스트 프로토콜(MCP)을 소개합니다. 이는 LLM이 스크레이퍼, 데이터베이스, CI 파이프라인과 같은 외부 도구를 호출하면서도 샌드박스 보안을 유지할 수 있게 하는 개방형 JSON-RPC 사양입니다. 초기에는 Anthropic에서 제안했지만, 현재는 커뮤니티가 유지 관리하는 표준으로 발전했습니다.

Claude가 웹 MCP 서버에 연결되면 베스트바이 데이터가 실시간으로 유입됩니다. 단일 MCP 호출을 통해 서버는 헤드리스 브라우저를 실행하고, 프록시를 순환하며, CAPTCHA를 극복한 후 모델이 분석할 수 있는 깨끗한 JSON을 전달합니다.

Updated pricing data on Claude with Bright Data's MCP server

아직 연결 방식에 대해 걱정하지 마세요—후속 섹션에서 단계별로 설정을 안내해 드리겠습니다.

MCP의 중요성

  • 오픈 표준으로 벤더 종속성이 없습니다. MCP를 지원하는 모든 LLM 클라이언트는 동일한 JSON-RPC 계약을 통해 모든 MCP 서버와 통신할 수 있습니다.
  • 플러그인 가능한 전송 방식과 모델. 스크래핑이나 데이터베이스 로직을 건드리지 않고 stdio에서 Streaming HTTP로, 또는 Claude에서 Gemini로 전환할 수 있습니다.
  • 단순 채팅을 넘어선 실시간 작업. 서버가 실시간 도구(스크레이퍼, API, 빌드 훅)를 노출하므로 에이전트가 최신 데이터를 반환하고 실제 작업을 수행할 수 있습니다.

MCP를 LLM용 USB-C 포트로 생각하십시오: 오늘은 스크레이퍼를, 내일은 데이터베이스를, 다음 주에는 내부 마이크로서비스를 연결할 수 있습니다. 맞춤형 통합이 필요하지 않습니다.

모델 컨텍스트 프로토콜(MCP)이란 무엇인가요?

모델 컨텍스트 프로토콜(MCP) 은 대규모 언어 모델이 단일 통합 인터페이스를 통해 외부 도구(스크레이퍼 실행, SQL 쿼리, REST API 호출 등)를 호출할 수 있게 하는 개방형 JSON-RPC 2.0 표준입니다.

MCP는 검색 강화 생성(RAG)을 보완합니다: RAG는 벡터 저장소에서 정적 문서를 가져오는 반면, MCP는 실시간 데이터를 가져오거나 실시간 작업을 트리거할 수 있습니다. 실제로, 모델이 새로운 입력이 필요할 때 문서를 검색하고 도구를 호출하는 등 두 가지를 결합할 수 있습니다.

핵심 구성 요소

  1. 호스트: LLM 애플리케이션(Claude Desktop, Cursor, 맞춤형 에이전트).
  2. MCP 클라이언트: 호스트 내부의 경량 상태 유지 커넥터(클라이언트 1개 ↔ 서버 1개).
  3. 서버: 외부 시스템(스크레이퍼, SQL, Jira, Git…)을 감싸고 도구 및 선택적 리소스를 노출합니다.
  4. 도구: 모델이 호출할 수 있는 단일 호출 가능 함수(scrape_url, sql.query, jira.create_issue).
  5. 외부 리소스: 서버/도구가 상호작용하는 실제 웹사이트, 데이터베이스 또는 API.

요청/응답 흐름

  1. LLM이 외부 데이터나 기능이 필요하다고 판단합니다.
  2. MCP 클라이언트가 적절한 서버를 선택하고 JSON-RPC 요청을 보냅니다.
  3. 서버는 작업(예: 스크래핑, 검색, 커밋)을 실행하고 결과를 클라이언트로 스트리밍합니다.
  4. 호스트는 응답을 모델의 컨텍스트에 공급하여 LLM에 새로운 사실이나 작업 완료 확인을 제공합니다.
mcp-architecture-diagram
이미지 출처: 모델 컨텍스트 프로토콜

웹 스크래핑을 위한 MCP

웹 스크레이퍼를 모델 컨텍스트 프로토콜(MCP)에 연결하면 원시 HTML이 LLM에 바로 사용할 수 있는 컨텍스트로 즉시 변환되어 대부분의 LLM 워크플로우에서 가장 느리고 복잡한 단계 중 하나가 제거됩니다.

문제점

기존 스크레이퍼는 광고, 추적기, 불필요한 레이아웃 요소로 가득한 구조화되지 않은 HTML을 반환합니다. 잡음을 제거하고 유용한 콘텐츠를 분리하여 사용 가능한 형식으로 변환하는 정리 작업은 종종 스크레이핑 자체보다 더 많은 시간이 소요됩니다. 실시간 데이터가 필요한 경우 이 문제는 더욱 심각해집니다.

MCP 서버의 역할

MCP 지원 스크레이퍼는 LLM과 대상 웹사이트 사이의 간소화된 어댑터 역할을 수행합니다:

  1. 기본 GET, 헤드리스 브라우저 또는 프록시 기반 언락커를 사용하여 페이지를가져옵니다.
  2. 응답을변환합니다 —유용한 콘텐츠만 추출하여 구조화된 JSON, 마크다운 또는 일반 텍스트로 변환합니다.
  3. URL, 타임스탬프, HTTP 상태, 지리적 위치, CAPTCHA 결과와 같은 메타데이터로주석을 달아 LLM이 소스의 최신성과 신뢰성을 평가할 수 있도록 지원합니다.
  4. 정제된 결과를 표준 MCP 호환 JSON-RPC 응답으로스트리밍합니다.

MCP는 일관된 인터페이스를 정의하기 때문에, Claude Desktop, Cursor 또는 자체 에이전트 등 모든 LLM 클라이언트는 스크랩된 사이트나 서버 구현 방식에 관계없이 구조화되고 토큰 효율적인 출력을 수신합니다.

웹 스크래핑을 위한 Bright Data MCP 서버

Bright Data 웹 MCP 서버를 사용하면 Claude Desktop, Cursor IDE, Windsurf 또는 사용자 지정 에이전트와 같은 MCP 호환 클라이언트가 Bright Data의 전체 프록시 및 스크래핑 스택을 통해 실시간 웹 데이터를 가져올 수 있습니다.

에이전트가 헤드리스 브라우저, 프록시 풀 또는 CAPTCHA 솔버를 관리하지 않고도 공개 웹사이트에 안정적이고 실시간으로 액세스해야 하는 경우, 이 서버는 플러그 앤 플레이 솔루션을 제공합니다. 단일 MCP 호출로 다음에 액세스할 수 있습니다: Web Unlocker, SERP API, Web Scraper APIScraping Browser (또는 Browser API).

주요 기능

  • AI 활용 가능한 데이터 제공: 웹 콘텐츠를 자동으로 가져와 깔끔하고 구조화된 출력(JSON, 마크다운, 일반 텍스트)으로 포맷하여 수동 전처리 필요성을 줄입니다.
  • 작업 부하에 따른 확장성: Bright Data의 탄력적인 인프라를 기반으로 구축되어 병목 현상이나 다운타임 없이 높은 요청량을 처리합니다.
  • 차단 및 CAPTCHA 우회: 웹 언락커 및 기타 고급 봇 방지 메커니즘을 사용하여 가장 보호된 사이트에도 접근합니다.
  • 글로벌 타겟팅 지원: 195개국에 걸친 프록시 네트워크를 활용하여 지역별 콘텐츠 및 규정 준수를 지원합니다.
  • 통합 용이: 최소한의 설정만으로 MCP 호환 클라이언트와 즉시 사용 가능.

Bright Data MCP 서버 사용을 위한 필수 조건

  • Bright Data 계정: brightdata.com에서 가입하세요. 신규 사용자에게는 월 5,000 크레딧이 무료로 제공됩니다.
  • API 토큰: 대시보드 → 설정 → API 토큰으로 이동하세요.
  • 웹 언락커 영역: Bright Data 계정에서 영역 생성(기본값: mcp_unlocker). WEB_UNLOCKER_ZONE 환경 변수로 재정의 가능.
  • (선택 사항) 스크래핑 브라우저 영역: 완전한 브라우저 자동화 시에만 필요합니다. 인증 문자열 형식: brd-고객-ID-영역-ZONE_NAME:PASSWORD.
  • Node.js 18+: 서버는 npm에서 @brightdata/mcp로 게시됩니다.

Claude Desktop에서 Bright Data MCP 설정

Bright Data 웹 MCP 서버를 Claude Desktop에 통합하려면 다음 단계를 따르세요:

1단계: Claude Desktop → 설정 → 개발자 → 구성 편집 열기

2단계: claude_desktop_config.json 파일을 업데이트하여 Bright Data 웹 MCP 서버 구성을 포함시킵니다:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-brightdata-api-token>",
        "WEB_UNLOCKER_ZONE": "<선택 사항—기본 영역 이름 'mcp_unlocker' 재정의>",
        "BROWSER_AUTH": "<선택 사항—스크래핑 브라우저를 통한 전체 브라우저 제어 활성화>"
      }
    }
  }
}

3단계: 구성 파일을 저장하고 Claude Desktop을 재시작하세요.

이제 Bright Data 스크래핑 도구가 사용 가능하고 준비된 상태로 표시됩니다:

brightdata-mcp-available-tools

Cursor IDE에서 Bright Data Web MCP 설정

몇 단계만으로 Bright Data Web MCP 서버를 Cursor IDE에 통합하세요:

1단계: 커서 IDE 열기

2단계: 설정 ⚙️ → MCP 섹션으로 이동

3단계: “새 글로벌 MCP 서버 추가”를 클릭합니다 . mcp.json 구성 파일이 열립니다.

단계 4: Bright Data 웹 MCP 서버 구성을 추가합니다. Claude Desktop에 사용한 것과 동일한 구조를 재사용할 수 있습니다:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-brightdata-api-token>",
        "WEB_UNLOCKER_ZONE": "<선택 사항—기본 영역 이름 'mcp_unlocker' 재정의>",
        "BROWSER_AUTH": "<선택 사항—Scraping Browser를 통한 전체 브라우저 제어 활성화>"
      }
    }
  }
}

5단계: 파일을 저장하세요. 커서가 새 서버를 자동으로 감지합니다. 서버 연결이 성공하면 서버 이름 옆에 녹색 상태 표시등이 나타납니다. 도구가 즉시 표시되지 않으면 커서 IDE를 재시작해 보세요.

brightdata-mcp-cursor-settings

Windsurf에서 Bright Data MCP 설정

다음 간단한 단계로 Bright Data의 MCP 서버를 Windsurf에 연결하세요:

1단계: 설정 → Windsurf 설정 열기
2단계: 캐스케이드 섹션으로 스크롤합니다.
3단계: “사용자 지정 서버 추가 +”를 클릭합니다 . mcp_config.json이라는 JSON 구성 파일이 열립니다.
단계 4: Claude Desktop 또는 Cursor IDE에서 사용한 것과 동일한 형식으로 Bright Data 웹 MCP 서버 구성을 추가하세요:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-brightdata-api-token>",
        "WEB_UNLOCKER_ZONE": "<선택 사항—기본 영역 이름 'mcp_unlocker' 재정의>",
        "BROWSER_AUTH": "<선택 사항—Scraping Browser를 통한 전체 브라우저 제어 활성화>"
      }
    }
  }
}

5단계: 파일을 저장하고 Windsurf를 재시작하세요. 이제 MCP 도구 목록에서 Bright Data 도구를 확인할 수 있습니다.

brightdata-mcp-windsurf-settings

실전 적용: Bright Data MCP 활용 사례

설정이 완료되면 LLM 클라이언트는 Bright Data 웹 MCP 서버의 모든 기능을 활용할 수 있습니다. 각 도구는 특정 사용 사례에 맞게 설계되었습니다. 전체 도구 목록을 확인하세요.

참고: 이 예시는 Claude를 사용하지만, Windsurf나 Cursor와 같은 MCP 호환 클라이언트에도 동일한 흐름이 적용됩니다. 채팅 창(Cmd + L)을 열고 프롬프트를 붙여넣기만 하면 실시간 도구 호출이 시작됩니다.

예시 1: Zillow 부동산 목록 추출

Zillow는 강력한 봇 방어 체계로 인해 스크래핑이 매우 어려운 것으로 악명 높지만, Bright Data의 MCP 스택은 이를 완벽하게 처리합니다.

LLM 프롬프트:

다음 Zillow URL에서 주요 부동산 데이터를 JSON 형식으로 추출해 주세요: 
https://www.zillow.com/apartments/arverne-ny/the-tides-at-arverne-by-the-sea/ChWHPZ/

배경에서 일어나는 일:

  1. LLM은 외부 데이터가 필요하다고 판단합니다.
  2. 관련 Bright Data MCP 도구(예: web_data_zillow_properties_listing 또는 대체용 범용 스크레이퍼)를 실행합니다.
  3. 서버는 Web Unlocker와 선택적으로 Scraping Browser를 사용하여 봇 보호를 우회하고 페이지를 렌더링합니다.
  4. 정제되고 구조화된 JSON이 반환됩니다.
brightdata-mcp-zillow-demo

예시 2: 전자상거래 제품 검색 (아마존 & 베스트바이)

Amazon과 Best Buy는 제품 데이터에 대한 가치가 높은 대상이지만 강력한 스크래핑 방지 방어 기능을 구현하고 있습니다.

LLM에 대한 프롬프트:

DSLR 카메라를 구매하려 하며 최대 예산은 1000달러입니다. amazon.com과 bestbuy.com을 방문하여 각 사이트에서 1000달러 이하 또는 1000달러 이하의 가격대 상위 3개 DSLR 카메라를 찾아주세요. 각 카메라에 대해 제품명, 가격, 제품 페이지로 연결되는 직접 링크를 포함해 주세요. 또한 각 카메라에 대한 최신 고객 리뷰 2~3개를 제공해 주세요.

배경에서 일어나는 일:

  1. LLM은 두 개의 서로 다른 이커머스 사이트에서 실시간 제품 데이터가 필요함을 감지합니다.
  2. 해당 LLM은 적절한 Bright Data 웹 MCP 도구(일반적으로 아마존의 경우 web_data_amazon_product_search )를 호출합니다.
  3. 클라이언트 측 자바스크립트에 크게 의존하는 베스트바이의 경우, 콘텐츠 렌더링, 상호작용 시뮬레이션 및 동적 데이터 추출을 위해 스크래핑 브라우저가 실행됩니다.
brightdata-mcp-ecommerce-demo

LLM 샘플 출력:

brightdata-mcp-bestbuy-results

예시 3: YouTube 채널 동영상 데이터 가져오기

YouTube는 대부분의 콘텐츠를 동적으로 로드하므로 헤드리스 브라우저 자동화에 적합한 강력한 사용 사례입니다.

LLM에 대한 프롬프트:

YouTube 채널 페이지 https://www.youtube.com/@BrightData/videos에서 첫 5개 동영상을 추출하세요. 각 동영상에 대해 제목, 업로드 날짜, 조회수 수를 포함하세요.

배경에서 발생하는 과정:

  1. LLM은 동적 콘텐츠로 인해 브라우저 기반 렌더링이 필요함을 감지합니다.
  2. BROWSER_AUTH가 설정된 경우 Bright Data Web MCP 서버가 스크래핑 브라우저 세션을 시작합니다.
  3. 원격 브라우저가 채널 페이지로 이동하여 동영상 피드가 로드되기를 기다린 후 구조화된 데이터를 추출합니다.
brightdata-mcp-youtube-demo

LLM 샘플 출력:

brightdata-mcp-youtube-results

예시 4: Hacker News 헤드라인

LLM이 구조화된 텍스트 데이터를 얼마나 빠르게 수집하고 형식화할 수 있는지 보여주는 더 간단한 사례입니다.

LLM 프롬프트:

해커 뉴스의 최신 기사 5개 제목을 알려주세요

배경 설명:

  • LLM은 Bright Data Web MCP를 통해 scrape_as_markdown과 같은 일반적인 스크래핑 도구를 호출합니다.
  • 서버는 Hacker News 홈페이지를 가져와 상위 헤드라인을 파싱한 후 깔끔한 마크다운 형식으로 반환합니다.

샘플 LLM 출력:

brightdata-mcp-hackernews-demo

🔥 훌륭합니다! 이 예시들은 정적 HTML 콘텐츠 추출부터 고급 봇 방지 조치로 보호된 자바스크립트 중심 사이트에서의 브라우저 세션 조율에 이르기까지 Bright Data 웹 MCP 서버의 폭넓은 역량을 보여줍니다.

Smithery CLI를 통한 대체 설치 방법

Smithery CLI를 사용해 Bright Data Web MCP 서버를 실행할 수도 있습니다. 터미널에서 다음 명령어를 실행하세요:

npx -y @smithery/cli install @luminati-io/brightdata-mcp --client windsurf

다음 정보를 입력하라는 메시지가 표시됩니다:

  • Smithery API 키 – 아직 없는 경우 여기에서 생성하세요.
  • Bright Data API 토큰
  • (선택 사항) 웹 언락커 존 이름
  • (선택 사항) 스크래핑 브라우저 인증 문자열
brightdata-mcp-smithery-install

설정이 완료되면 Windsurf를 열고 채팅 창을 실행하세요. 그런 다음 원하는 프롬프트를 입력하세요.

예시 프롬프트:

2026년 기준 가치 기준으로 가장 큰 AI 기업 3곳을 나열하세요.

Windsurf의 실시간 응답:

brightdata-mcp-windsurf-demo

Bright Data Web MCP를 설치 없이 테스트하려면 Smithery Playground를 사용하여 브라우저에서 실시간 스크래핑 시나리오를 시도해 보세요:

brightdata-mcp-smithery-playground

결론

본 가이드는 모델 컨텍스트 프로토콜(MCP)이 기존 언어 모델을 실시간으로 라이브 웹과 상호작용할 수 있는 에이전트로 확장함을 보여주었습니다. Bright Data의 Web MCP 서버를 통해 단일 API 요청으로 다음을 수행할 수 있습니다:

  • 거의 모든 웹사이트에서 최신 지역별 콘텐츠를 가져옵니다.
  • 자동화된 CAPTCHA 해결을 포함한 봇 방지 메커니즘 우회
  • 동적이며 자바스크립트 집약적인 페이지를 처리하기 위해 완전한 브라우저 환경을 제어합니다.

AI 기반 사용 사례에 최적화된 확장 가능하고 규정 준수 데이터 인프라를 구축하려면 실시간 검색, 추출 및 대규모 자동화를 위해 특별히 설계된 Bright Data의 AI-Ready 웹 데이터 인프라를살펴보세요.

고급 에이전트 워크플로우를 위해 Google ADK를 MCP 서버와 통합하는 방법을 알아보세요.