Skip to main content
Glama

Chrome MCP Stealth

Chrome DevTools Protocol을 통한 스텔스 브라우저 자동화용 MCP 서버입니다. 봇 탐지를 피하기 위해 인간과 유사한 상호작용 패턴(베지에 마우스 곡선, 가우시안 타이핑 지연, 스크롤 지터)을 사용하여 실제 Chrome 인스턴스에 연결합니다.

목적

표준 브라우저 자동화 도구(Playwright, Puppeteer, Selenium)는 현대의 안티봇 시스템에 의해 쉽게 탐지됩니다. 사이트들은 마우스 움직임(직선, 즉각적인 순간 이동), 타이핑 패턴(일정한 지연), JavaScript 속성(navigator.webdriver, 누락된 플러그인)을 지문으로 사용하여 자동화된 접근을 차단합니다.

Chrome MCP Stealth는 Playwright의 CDP 연결을 통해 실제 Chrome 인스턴스(헤드리스 브라우저나 새 프로필이 아닌, 쿠키, 확장 프로그램, 기록이 그대로 유지된 실제 브라우저) 위에 인간과 유사한 동작을 계층화하여 이 문제를 해결합니다.

기능

  • 스텔스 모드: 베지에 마우스 이동, 가우시안 키 입력 지연, 스크롤 지터, 탐지 방지 JS 패치

  • 빠른 모드: 지연 없는 즉각적인 작업 — 보호되지 않은 도메인에서 사용 가능

  • 보안: 프롬프트 인젝션, 데이터 유출 및 자격 증명 유출에 대한 4단계 방어

  • 단일 파일: 전체 서버가 하나의 index.js 파일로 구성됨 (~630줄)

스텔스 작동 방식

마우스 이동은 무작위 제어점이 있는 3차 베지에 곡선을 따라 직선이 아닌 자연스러운 호를 그립니다. 각 이동은 ease-in-out 타이밍과 간헐적인 오버슈트 보정을 포함하여 12~50개의 보간 단계를 사용합니다.

타이핑은 가우시안 분포를 따르는 키 간 지연(평균 약 75ms)을 사용하며, 문장 부호 뒤의 추가 일시 중지와 약 10자마다 주기적인 "생각하는 일시 중지"를 포함하여 인간의 타이핑 리듬을 모방합니다.

스크롤은 지터가 포함된 다단계 증분으로 나뉘어 정착 지연을 가지며, 자동화를 알리는 즉각적인 점프를 방지합니다.

탐지 방지 패치navigator.webdriver를 제거하고, window에서 Playwright/Selenium 아티팩트를 정리하며, 실제 chrome.runtime 및 플러그인 스텁을 주입합니다.

전체 구현 세부 정보는 ARCHITECTURE.md를 참조하세요.

보안 모델

  1. 프롬프트 인젝션 스캐너 — 20개 이상의 정규식 패턴이 페이지 콘텐츠 내의 명령 재정의 시도, 사회 공학적 기법 및 데이터 유출 명령을 탐지합니다.

  2. 콘텐츠 살균 — 페이지 텍스트를 반환하기 전에 숨겨진/보이지 않는 요소가 제거되어 크기가 0이거나 화면 밖의 요소를 통한 인젝션을 방지합니다.

  3. 콘텐츠 스포트라이팅 — 모든 페이지 콘텐츠는 보안 푸터가 포함된 <EXTERNAL_CONTENT trust="untrusted"> 태그로 감싸집니다.

  4. 도메인 제어 — 클라우드 메타데이터 엔드포인트는 완전히 차단됩니다. 금융/이메일 도메인은 경고를 트리거하며, 스텔스 전용 도메인은 스텔스 모드를 강제합니다.

또한, 모든 출력은 자격 증명 패턴(API 키, 토큰, JWT)에 대해 스캔되고 반환되기 전에 수정(redacted)됩니다.

도구 (11)

도구

목적

chrome_set_mode

스텔스/빠른 모드 간 전환

chrome_navigate

URL로 이동

chrome_snapshot

살균된 접근성 트리 가져오기

chrome_screenshot

PNG 스크린샷 찍기

chrome_click

요소 클릭 (스텔스 모드 시 베지에 마우스 사용)

chrome_type

텍스트 입력 (스텔스 모드 시 가우시안 지연 사용)

chrome_tabs

탭 목록/전환/생성/닫기

chrome_evaluate

페이지 컨텍스트에서 JS 실행 (출력 수정됨)

chrome_wait

선택자 또는 타임아웃 대기

chrome_scroll

스크롤 위/아래 (스텔스 모드 시 지터 적용)

chrome_page_info

현재 URL, 제목, 도메인 위험도 가져오기

설정

  1. CDP로 Chrome 실행:

    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
      --remote-debugging-port=9222 \
      --user-data-dir=~/.chrome-debug-profile
  2. 설치 및 실행:

    npm install
    npm start
  3. MCP 설정에 등록:

    {
      "chrome-stealth": {
        "command": "node",
        "args": ["path/to/chrome-mcp/index.js"],
        "env": { "CDP_ENDPOINT": "http://127.0.0.1:9222" }
      }
    }

스텔스 전용 도메인

LinkedIn(linkedin.com, www.linkedin.com)은 스텔스 모드를 강제하며 빠른 모드는 차단됩니다. 이는 탐색, 모드 전환, 모든 상호작용, 리다이렉트 후, 탭 전환 등 5단계에서 강제됩니다.

의존성

  • @modelcontextprotocol/sdk — MCP 프로토콜 구현

  • playwright-core — Chrome DevTools Protocol 연결

라이선스

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/Riaan-Fourie/chrome-mcp-stealth'

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