Skip to main content
Glama
Prog-up

Web Scraper MCP

by Prog-up

Web Scraper MCP

셀프 호스팅 Model Context Protocol 서버로, LLM 클라이언트(Claude Code, Cursor, ChatGPT)에게 유료 스크래핑 서비스와 동일한 도구 표면을 제공합니다 — scrape, crawl, map, search, extract, interact, deep_research — 전적으로 자체 하드웨어에서 실행됩니다.

유료 프록시/CAPTCHA 서비스 없음: 안티봇은 자체 호스팅됩니다(헤드리스 Chromium + playwright-stealth, robots.txt, 예의 있는 속도 제한). 강력하게 보호된 사이트는 여전히 차단될 수 있습니다. 제한 사항을 참조하세요.

도구

도구

기능

scrape

하나의 URL → 깨끗한 마크다운(보일러플레이트 제거). 정적 우선, JS 페이지용 자동 브라우저 폴백.

crawl / check_crawl_status

백그라운드 BFS 크롤 작업(중복 제거, 깊이/페이지 상한); 결과를 폴링.

map

페이지의 링크 목록(선택적으로 동일 도메인) — 무엇을 크롤할지 결정.

search

웹 검색. 플러그형 백엔드: DuckDuckGo(기본), SearXNG, Brave, 또는 Tavily.

extract

페이지를 가져와서 스키마에 맞는 구조화된 JSON을 LLM을 통해 추출.

browser_navigate / browser_act / browser_close

토큰 효율적인 ARIA 스냅샷을 사용하여 영구 브라우저 세션(클릭/입력/키 누름)을 구동.

deep_research

검색 → 상위 소스 읽기 → 인용된 종합 보고서 반환.

extractdeep_research에는 ANTHROPIC_API_KEY가 필요합니다.

Related MCP server: Universal Web Data Extraction Platform

빠른 시작

uv sync                      # install deps (uses the pinned uv.lock)
uv run playwright install chromium
export SCRAPER_AUTH_TOKEN=$(openssl rand -hex 32)
uv run web-scraper-mcp       # HTTP server on http://127.0.0.1:8000/mcp

Stdio(로컬, 데스크톱 클라이언트용): SCRAPER_TRANSPORT=stdio uv run web-scraper-mcp.

Docker

시작하는 가장 빠른 방법은 DockerHub에서 사전 빌드된 이미지를 가져오는 것입니다.

# Pull the latest image
docker pull PROG_UP_USERNAME/web-scraper-mcp:latest

# Run the container (with Anthropic / Claude)
docker run -p 8000:8000 \
  -e SCRAPER_AUTH_TOKEN=your_secure_token_here \
  -e ANTHROPIC_API_KEY=sk-ant-api03-... \
  PROG_UP_USERNAME/web-scraper-mcp:latest

# Or run the container over stdio (useful for local MCP clients)
docker run -i --rm \
  -e SCRAPER_TRANSPORT=stdio \
  -e SCRAPER_AUTH_TOKEN=your_secure_token_here \
  PROG_UP_USERNAME/web-scraper-mcp:latest

(실제 DockerHub 사용자 이름으로 PROG_UP_USERNAME을 교체해야 합니다).

로컬 모델(Ollama) 및 컨텍스트 창 사용

Anthropic API 대신 로컬에서 모델을 실행하려는 경우, 서버는 extractdeep_research 도구를 위한 대체 백엔드로 Ollama를 완전히 지원합니다.

docker run -p 8000:8000 \
  -e SCRAPER_AUTH_TOKEN=your_secure_token_here \
  -e SCRAPER_OLLAMA_HOST=http://host.docker.internal:11434 \
  -e SCRAPER_EXTRACT_MODEL=qwen3.5:2b \
  -e SCRAPER_RESEARCH_MODEL=qwen3.5:2b \
  PROG_UP_USERNAME/web-scraper-mcp:latest

[!WARNING] 컨텍스트 창은 중요합니다! 웹 스크래핑은 엄청난 양의 마크다운을 생성합니다. extract는 최대 100,000자, deep_research는 최대 16,000자를 LLM에 보낼 수 있습니다.

기본적으로 Claude는 대규모 컨텍스트를 기본적으로 처리합니다. 그러나 Ollama의 기본 컨텍스트 창(num_ctx)은 종종 2,048 토큰으로 구성됩니다. 거대한 Wikipedia 페이지를 로컬 모델에 전달하면 프롬프트가 조용히 잘려나가(지침이 누락됨) 빈 문자열이 반환됩니다!

우리는 API 페이로드에 "num_ctx": 32768을 자동으로 전달하여 이러한 잘림을 방지합니다. Ollama를 사용할 때 로컬 머신에 32K 컨텍스트 창을 지원할 충분한 RAM/VRAM이 있는지 확인하세요!

클라이언트에 등록 (mcp.json)

HTTP로 실행하는 경우:

{
  "mcpServers": {
    "web-scraper": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": { "Authorization": "Bearer your_secure_token_here" }
    }
  }
}

stdio(Docker)로 실행하는 경우:

{
  "mcpServers": {
    "web-scraper": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SCRAPER_TRANSPORT=stdio",
        "-e", "SCRAPER_OLLAMA_HOST=http://host.docker.internal:11434",
        "-e", "SCRAPER_EXTRACT_MODEL=qwen3.5:2b",
        "-e", "SCRAPER_RESEARCH_MODEL=qwen3.5:2b",
        "PROG_UP_USERNAME/web-scraper-mcp:latest"
      ]
    }
  }
}

구성

모든 설정은 환경 변수(접두사 SCRAPER_) 또는 .env 파일입니다 — .env.example 참조.

변수

기본값

참고

SCRAPER_AUTH_TOKEN

(설정 안 됨)

HTTP 엔드포인트용 Bearer 토큰. 네트워크 배포에는 필수; 설정 안 됨 = 인증 없음(경고).

SCRAPER_HOST / SCRAPER_PORT

127.0.0.1 / 8000

바인드 주소. Docker 이미지는 호스트 0.0.0.0을 설정합니다.

SCRAPER_MAX_CONCURRENT_PAGES

8

헤드리스 페이지 동시성 상한(RAM/CPU 제한).

SCRAPER_MAX_CRAWL_PAGES / _DEPTH

100 / 3

크롤 작업의 하드 상한.

SCRAPER_PER_DOMAIN_DELAY_S

1.0

도메인별 예의 있는 속도 제한.

SCRAPER_RESPECT_ROBOTS

true

robots.txt 준수.

SCRAPER_ALLOW_PRIVATE_NETWORKS

false

false 유지 — true이면 SSRF 가드를 비활성화합니다.

ANTHROPIC_API_KEY

(설정 안 됨)

extract / deep_research 활성화.

SCRAPER_SEARXNG_URL, BRAVE_API_KEY, TAVILY_API_KEY

(설정 안 됨)

선택적 검색 백엔드(첫 번째 설정이 우선, 그 외에는 DuckDuckGo).

보안

  • SSRF 가드 — 가져온 모든 URL(및 각 리디렉션 홉)은 DNS로 확인되며, 개인/루프백/링크-로컬/클라우드 메타데이터 주소를 가리키면 거부됩니다. 브라우저는 또한 개인 IP에 대한 하위 리소스 요청을 중단합니다.

  • 인증 — HTTP 전송에 Bearer 토큰; 기본적으로 localhost에 바인딩.

  • 리소스 상한 — 응답 크기, 시간 초과, 페이지 동시성, 크롤 페이지/깊이 제한으로 호스트를 보호합니다.

  • robots.txt + 속도 제한 기본적으로 켜져 있습니다.

  • 컨테이너 — 비루트 사용자로 실행; 비밀은 환경 변수로만 전달.

공급망 — 이미지 검증

CI는 GitLab의 OIDC ID를 사용하여 cosign(Sigstore)으로 이미지에 키 없는 서명을 하고, SPDX SBOM 증명을 첨부합니다. 실행 전에 검증하세요:

cosign verify \
  --certificate-oidc-issuer https://gitlab.cri.epita.fr \
  --certificate-identity-regexp 'https://gitlab.cri.epita.fr/enzo.juhel/web-scraper//.*' \
  registry.gitlab.cri.epita.fr/enzo.juhel/web-scraper@sha256:...

벤치마크

benchmarks/run.py는 공개 데이터 세트와 Crawl4AI 기준선에 대해 scrape/extract를 평가하여 스코어카드(페이지 유형별 F1/정확도 + 제한 사항 섹션)를 생성합니다. 로컬 또는 수동 CI benchmark 작업으로 실행:

uv run python benchmarks/run.py --output scorecard.md

제한 사항

  • 유료 프록시/CAPTCHA 없음: 강력하게 보호된 사이트(LinkedIn, Amazon, Cloudflare 챌린지)는 때때로 차단됩니다. 벤치마크 스코어카드가 어디서 그런지 정량화합니다.

  • 주요 콘텐츠 추출은 기사에서 강하고, 포럼/제품/목록 페이지에서는 약합니다(모든 추출기의 알려진 속성).

  • 메모리 내 크롤/세션 상태 — 설계상 단일 프로세스, 단일 사용자.

개발

uv run pre-commit install        # local lint/secret hooks
uv run ruff check . && uv run ruff format --check .
uv run mypy src
uv run pytest -q
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables web scraping and crawling capabilities for LLM clients, supporting single-page scraping, multi-page website crawling, and web search with multiple engines (Playwright, Cheerio, Puppeteer) and flexible output formats including markdown, HTML, text, and screenshots.
    18
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to extract content from websites using automated static and dynamic scraping engines with built-in anti-bot protections. It provides tools for web data retrieval and stores results in MongoDB with support for JSON and CSV exports.
  • A
    license
    A
    quality
    A
    maintenance
    Web scraping, crawling, and structured data extraction for AI agents. 5 tools: scrape (clean markdown from any URL), crawl (entire sites), map (discover URLs), extract (structured JSON), and search. 833ms avg latency, single binary, self-hostable.
    8
    852
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to fetch and extract web content using browser automation, OCR, and multiple extraction methods, handling JavaScript rendering and anti-scraping techniques.
    17
    MIT

View all related MCP servers

Related MCP Connectors

  • Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabili…

  • Scrape, crawl, map & search the web. Open-source, self-hostable Rust crawler & search for AI agents.

  • Live web access for agents: scrape, SERP search, crawl/map, 74 collectors, datasets, proxies.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Prog-up/web-scraper-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server