中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский
Playwright 헤드리스 브라우저를 사용하여 웹 페이지 콘텐츠를 가져오는 MCP 서버입니다.
🌟 추천: OllaMan - 강력한 Ollama AI 모델 관리자.
JavaScript 지원: 기존 웹 스크래퍼와 달리 Fetcher MCP는 Playwright를 사용하여 JavaScript를 실행하므로 동적 웹 콘텐츠와 모던 웹 애플리케이션을 처리할 수 있습니다.
지능형 콘텐츠 추출: 내장된 Readability 알고리즘으로 웹 페이지의 주요 콘텐츠를 자동 추출하여 광고, 네비게이션 등 불필요한 요소를 제거합니다.
유연한 출력 형식: HTML과 Markdown 출력 형식을 모두 지원하여 다양한 다운스트림 애플리케이션과 쉽게 통합할 수 있습니다.
병렬 처리: fetch_urls
도구를 사용하면 여러 URL을 동시에 가져올 수 있어 배치 작업 효율성이 크게 향상됩니다.
리소스 최적화: 불필요한 리소스(이미지, 스타일시트, 폰트, 미디어)를 자동으로 차단하여 대역폭 사용을 줄이고 성능을 개선합니다.
강력한 오류 처리: 포괄적인 오류 처리 및 로깅 기능으로 문제가 있는 웹 페이지를 다룰 때도 안정적인 운영이 가능합니다.
구성 가능한 매개변수: 타임아웃, 콘텐츠 추출 및 출력 형식에 대한 세밀한 제어로 다양한 사용 사례에 맞출 수 있습니다.
npx로 직접 실행:
npx -y fetcher-mcp
최초 설정 - 터미널에서 다음 명령을 실행하여 필요한 브라우저를 설치하세요:
npx playwright install chromium
--transport=http
매개변수를 사용하여 Streamable HTTP 엔드포인트와 SSE 엔드포인트 서비스를 동시에 시작합니다:
npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000
시작 후 서버는 다음 엔드포인트를 제공합니다:
/mcp
- Streamable HTTP 엔드포인트 (현대식 MCP 프로토콜)/sse
- SSE 엔드포인트 (레거시 MCP 프로토콜)클라이언트는 필요에 따라 연결 방법을 선택할 수 있습니다.
--debug
옵션으로 실행하여 디버깅을 위해 브라우저 창을 표시합니다:
npx -y fetcher-mcp --debug
Claude Desktop에서 이 MCP 서버를 구성하세요:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetcher": {
"command": "npx",
"args": ["-y", "fetcher-mcp"]
}
}
}
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
docker-compose.yml
파일 생성:
version: "3.8"
services:
fetcher-mcp:
image: ghcr.io/jae-jae/fetcher-mcp:latest
container_name: fetcher-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
# Using host network mode on Linux hosts can improve browser access efficiency
# network_mode: "host"
volumes:
# For Playwright, may need to share certain system paths
- /tmp:/tmp
# Health check
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
그런 다음 실행:
docker-compose up -d
fetch_url
- 지정된 URL에서 웹 페이지 콘텐츠 검색
url
: 가져올 웹 페이지의 URL (필수 매개변수)timeout
: 페이지 로딩 타임아웃(밀리초), 기본값 30000 (30초)waitUntil
: 네비게이션이 완료된 것으로 간주되는 시점 지정, 옵션: 'load', 'domcontentloaded', 'networkidle', 'commit', 기본값 'load'extractContent
: 주요 콘텐츠를 지능적으로 추출할지 여부, 기본값 truemaxLength
: 반환된 콘텐츠의 최대 길이(문자 수), 기본값 제한 없음returnHtml
: Markdown 대신 HTML 콘텐츠를 반환할지 여부, 기본값 falsewaitForNavigation
: 초기 페이지 로드 후 추가 네비게이션을 기다릴지 여부(봇 방지 검증이 있는 사이트에 유용), 기본값 falsenavigationTimeout
: 추가 네비게이션을 기다릴 최대 시간(밀리초), 기본값 10000 (10초)disableMedia
: 미디어 리소스(이미지, 스타일시트, 폰트, 미디어)를 비활성화할지 여부, 기본값 truedebug
: 디버그 모드 활성화 여부(브라우저 창 표시), 지정된 경우 --debug 명령줄 플래그를 재정의합니다fetch_urls
- 여러 URL에서 병렬로 웹 페이지 콘텐츠 일괄 검색
urls
: 가져올 URL 배열 (필수 매개변수)fetch_url
과 동일완전한 로딩 대기: CAPTCHA, 리디렉션 또는 기타 검증 메커니즘을 사용하는 웹사이트의 경우 프롬프트에 다음을 포함하세요:
페이지가 완전히 로드될 때까지 기다려 주세요
이렇게 하면 waitForNavigation: true
매개변수가 사용됩니다.
타임아웃 시간 증가: 로딩이 느린 웹사이트의 경우:
페이지 로딩 타임아웃을 60초로 설정해 주세요
이렇게 하면 timeout
및 navigationTimeout
매개변수가 그에 따라 조정됩니다.
원본 HTML 구조 유지: 콘텐츠 추출이 실패할 수 있는 경우:
원본 HTML 콘텐츠를 유지해 주세요
extractContent: false
및 returnHtml: true
로 설정됩니다.
전체 페이지 콘텐츠 가져오기: 추출된 콘텐츠가 너무 제한적인 경우:
주요 콘텐츠뿐만 아니라 전체 웹페이지 콘텐츠를 가져와 주세요
extractContent: false
로 설정됩니다.
HTML 형식으로 콘텐츠 반환: 기본 Markdown 대신 HTML 형식이 필요한 경우:
콘텐츠를 HTML 형식으로 반환해 주세요
returnHtml: true
로 설정됩니다.
이 가져오기 작업에 대해 디버그 모드를 활성화해 주세요
이렇게 하면 서버가 --debug
플래그 없이 시작된 경우에도 debug: true
로 설정됩니다.수동 로그인: 자체 자격 증명을 사용하여 로그인하려면:
디버그 모드에서 실행하여 웹사이트에 수동으로 로그인할 수 있도록 해 주세요
debug: true
를 설정하거나 --debug
플래그를 사용하여 수동 로그인을 위해 브라우저 창을 열어둡니다.
디버그 브라우저와 상호 작용: 디버그 모드가 활성화된 경우:
특정 요청에 대한 디버그 활성화: 서버가 이미 실행 중인 경우에도 특정 요청에 대해 디버그 모드를 활성화할 수 있습니다:
이 인증 단계에 대해 디버그 모드를 활성화해 주세요
이 특정 요청에 대해서만 debug: true
로 설정되어 수동 로그인을 위해 브라우저 창이 열립니다.
npm install
Playwright에 필요한 브라우저 설치:
npm run install-browser
npm run build
MCP Inspector를 사용하여 디버깅:
npm run inspector
디버깅을 위해 보이는 브라우저 모드를 활성화할 수도 있습니다:
node build/index.js --debug
MIT 라이선스에 따라 라이선스가 부여됩니다.