MCP 웹 브라우저 서버
Playwright가 제공하는 MCP(Model Context Protocol)를 위한 고급 웹 브라우징 서버로, 유연하고 안전한 API를 통해 헤드리스 브라우저 상호작용을 지원합니다.
🌐 특징
헤드리스 웹 브라우징 : SSL 인증서 검증 우회를 통해 모든 웹사이트 탐색
전체 페이지 콘텐츠 추출 : 동적으로 로드된 JavaScript를 포함한 전체 HTML 콘텐츠를 검색합니다.
다중 탭 지원 : 여러 브라우저 탭을 만들고, 관리하고, 전환합니다.
고급 웹 상호작용 도구 :
텍스트 콘텐츠 추출
페이지 요소 클릭
양식 필드에 텍스트 입력
스크린샷 캡처
필터링 기능을 사용하여 페이지 링크 추출
어느 방향으로든 페이지를 스크롤하세요
페이지에서 JavaScript 실행
페이지 새로 고침
탐색이 완료될 때까지 기다리세요
리소스 관리 : 비활성 후 사용되지 않는 리소스를 자동으로 정리합니다.
향상된 페이지 정보 : 현재 페이지에 대한 자세한 메타데이터를 가져옵니다.
🚀 빠른 시작
필수 조건
파이썬 3.10+
MCP SDK
극작가
설치
지엑스피1
Claude Desktop 구성
claude_desktop_config.json 에 다음을 추가하세요:
💡 사용 예시
기본 웹 탐색
웹 상호작용
스크린샷 캡처
링크 추출
멀티탭 브라우징
고급 상호작용
🛡️ 보안 기능
SSL 인증서 유효성 검사 우회
안전한 브라우저 컨텍스트 관리
사용자 정의 사용자 에이전트 구성
오류 처리 및 포괄적인 로깅
구성 가능한 시간 초과 설정
CSP 바이패스 제어
쿠키 도용 방지
🔧 문제 해결
일반적인 문제
SSL 인증서 오류 : 자동으로 우회됨
느린 페이지 로드 :
browse_to()메서드에서 시간 초과 조정요소를 찾을 수 없음 : 선택기를 주의 깊게 확인하세요
브라우저 리소스 사용량 : 비활성 기간 후 자동 정리
벌채 반출
모든 중요한 이벤트는 자세한 정보와 함께 기록되어 디버깅이 쉽습니다.
📋 도구 매개변수
browse_to(url: str, context: Optional[Any] = None)
url: 이동할 웹사이트context: 선택적 컨텍스트 객체(현재 사용되지 않음)
extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
selector: 특정 콘텐츠를 추출하는 선택적 CSS 선택기context: 선택적 컨텍스트 객체(현재 사용되지 않음)
click_element(selector: str, context: Optional[Any] = None)
selector: 클릭할 요소의 CSS 선택자context: 선택적 컨텍스트 객체(현재 사용되지 않음)
get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
full_page: 전체 페이지 스크린샷 캡처selector: 스크린샷을 찍을 선택 요소context: 선택적 컨텍스트 객체(현재 사용되지 않음)
get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
filter_pattern: 링크를 필터링하기 위한 선택적 텍스트 패턴context: 선택적 컨텍스트 객체(현재 사용되지 않음)
input_text(selector: str, text: str, context: Optional[Any] = None)
selector: 입력 요소의 CSS 선택자text: 입력할 텍스트context: 선택적 컨텍스트 객체(현재 사용되지 않음)
create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
url: 새 탭에서 이동할 선택적 URLcontext: 선택적 컨텍스트 객체(현재 사용되지 않음)
switch_tab(tab_id: str, context: Optional[Any] = None)
tab_id: 전환할 탭의 IDcontext: 선택적 컨텍스트 객체(현재 사용되지 않음)
list_tabs(context: Optional[Any] = None)
context: 선택적 컨텍스트 객체(현재 사용되지 않음)
close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
tab_id: 닫을 탭의 선택적 ID(기본값은 현재 탭)context: 선택적 컨텍스트 객체(현재 사용되지 않음)
refresh_page(context: Optional[Any] = None)
context: 선택적 컨텍스트 객체(현재 사용되지 않음)
get_page_info(context: Optional[Any] = None)
context: 선택적 컨텍스트 객체(현재 사용되지 않음)
scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
direction: 스크롤 방향('위', '아래', '왼쪽', '오른쪽')amount: 스크롤할 양('페이지', '절반' 또는 숫자)context: 선택적 컨텍스트 객체(현재 사용되지 않음)
wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
timeout_ms: 대기할 최대 시간(밀리초)context: 선택적 컨텍스트 객체(현재 사용되지 않음)
execute_javascript(script: str, context: Optional[Any] = None)
script: 실행할 JavaScript 코드context: 선택적 컨텍스트 객체(현재 사용되지 않음)
🤝 기여하기
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
개발 설정
📄 라이센스
MIT 라이센스
🔗 관련 프로젝트
💬 지원
문제가 있거나 질문이 있으시면 GitHub에서 문제를 열어 주세요.
local-only server
The server can only run on the client's local machine because it depends on local resources.
보안 API를 통해 헤드리스 브라우저 상호작용을 가능하게 하는 고급 웹 브라우징 서버로, 탐색, 콘텐츠 추출, 요소 상호작용, 스크린샷 캡처와 같은 기능을 제공합니다.
- 🌐 특징
- 🚀 빠른 시작
- 💡 사용 예시
- 🛡️ 보안 기능
- 🔧 문제 해결
- 📋 도구 매개변수
- browse_to(url: str, context: Optional[Any] = None)
- extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
- click_element(selector: str, context: Optional[Any] = None)
- get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
- get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
- input_text(selector: str, text: str, context: Optional[Any] = None)
- create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
- switch_tab(tab_id: str, context: Optional[Any] = None)
- list_tabs(context: Optional[Any] = None)
- close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
- refresh_page(context: Optional[Any] = None)
- get_page_info(context: Optional[Any] = None)
- scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
- wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
- execute_javascript(script: str, context: Optional[Any] = None)
- 🤝 기여하기
- 📄 라이센스
- 🔗 관련 프로젝트
- 💬 지원
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityEnables AI agents to interact with web browsers using natural language, featuring automated browsing, form filling, vision-based element detection, and structured JSON responses for systematic browser control.Last updated -55
- -securityAlicense-qualityEnables browser automation and real-time computer vision tasks through AI-driven commands, offering zero-cost digital navigation and interaction for enhanced web experiences.
- AsecurityAlicenseAqualityA headless browser MCP server that allows AI agents to fetch web content and perform Google searches without API keys, supporting various output formats like Markdown, JSON, HTML, and text.Last updated -217MIT License
- AsecurityAlicenseAqualityA headless server that enables reading and sending Gmail emails through API calls without requiring local credentials or browser access, designed to run remotely in containerized environments.Last updated -4553MIT License