Skip to main content
Glama
Tuanm
by Tuanm

Browser MCP

Chrome/Edge 브라우저를 모든 AI 에이전트를 위한 MCP 도구로 노출하세요. Chrome 확장 프로그램(Manifest V3)이 MCP 서버 자체 역할을 합니다. code-mcp-gateway에 연결하여 MCP 요청을 그 자리에서 응답합니다 — 로컬 서버가 필요 없습니다. code-mcp와 동일한 JSON-RPC 프로토콜을 사용하므로 기존 에이전트 설정에 바로 통합됩니다.

작동 방식

flowchart LR
  subgraph Agent["Agent side"]
    A["MCP client / AI agent"]
  end

  subgraph Gateway["code-mcp-gateway (Cloudflare Worker)"]
    G["wss://code-mcp.tuanm.dev/ws/<id>"]
  end

  subgraph Browser["Your browser"]
    E["Extension (MV3)<br/>service worker = MCP server<br/>offscreen = WS bridge"]
    P["Page (content script)"]
  end

  A -- "MCP JSON-RPC" --> G
  G -- "register / keepalive /<br/>forward requests" --> E
  E -- "CDP / tabs / scripting" --> P

팝업에서 Device IDToken을 입력받습니다. 확장 프로그램은 게이트웨이에 직접 연결하여(등록, 25초마다 keepalive, 75초 watchdog, 지터 백오프 재연결) initialize / tools/list / tools/call을 그 자리에서 제공합니다. 게이트웨이에 도달할 수 있는 모든 에이전트가 브라우저를 제어할 수 있습니다.

선택적 로컬 서버(browser-mcp.ts)는 파일 저장소(file_read, 대용량 다운로드/업로드)와 일반 로컬 MCP HTTP 엔드포인트를 추가합니다. 로컬 서버를 참조하세요.

빠른 시작

Chrome 또는 Edge >= 111. Bun >= 1.1은 로컬 서버 또는 개발 도구에만 필요합니다 — 확장 프로그램은 단독으로 동작합니다.

  1. 확장 프로그램을 로드합니다. chrome://extensions를 열고 개발자 모드를 활성화한 다음, 압축 해제된 확장 프로그램 로드를 클릭하고 packages/browser-extension을 선택합니다. (또는 bun browser-mcp.ts를 실행하고 http://127.0.0.1:7777/extension에서 zip을 다운로드합니다.)

  2. 연결합니다. 툴바 아이콘을 클릭합니다(연결되면 MCP 마크가 녹색으로 변합니다). 게이트웨이 Device IDToken을 입력하고 연결을 클릭합니다. 팝업에 **연결됨 (게이트웨이)**가 표시됩니다.

  3. 사용합니다. 모든 MCP 클라이언트를 게이트웨이 디바이스에 연결하세요. 확장 프로그램은 tools/list에 47개의 도구로 응답합니다.

토큰은 게이트웨이에서 이 디바이스에 대해 구성된 토큰과 일치해야 합니다. 게이트웨이는 각 요청과 함께 토큰을 전달하고 확장 프로그램이 이를 검증합니다. 비워 두면 게이트웨이에 도달하는 누구나 브라우저를 제어할 수 있습니다.

로컬 서버

파일 저장소(file_read, 512KB 초과 다운로드/업로드) 또는 로컬 MCP HTTP 엔드포인트에만 필요합니다:

bun browser-mcp.ts                  # http://127.0.0.1:7777/mcp
bun browser-mcp.ts --token <s>      # require auth on /mcp + /files

서버가 실행 중이면 팝업은 ID + Token을 서버 자체의 게이트웨이 링크에도 전달합니다. 서버가 없어도 확장 프로그램은 여전히 직접 동작합니다. 로컬 클라이언트는 http://127.0.0.1:7777/mcp를 사용합니다 — mcp-client.example.json을 참조하세요(--token으로 실행하는 경우 "headers": { "Authorization": "Bearer <token>" }를 추가). 확인: curl -s http://127.0.0.1:7777/health.

code-mcp-gateway를 통한 원격 액세스

  • 직접 (기본). 팝업에 ID + Token을 입력합니다. 확장 프로그램이 MCP 자체를 제공합니다. 로컬 서버가 없습니다.

  • 서버 측 링크. 로컬 서버가 있으면 팝업이 wss://code-mcp.tuanm.dev/ws/<id>에 연결하고 서버가 HTTP를 통해 MCP에 응답합니다.

  • CLI (사용자 지정 게이트웨이):

bun browser-mcp.ts --gateway <domain> --token <s> --id <device-id>

직접 모드와 동일한 프로토콜입니다. 게이트웨이 디바이스에서 동일한 --token을 사용하세요. 토큰 없이 게이트웨이 모드를 실행하지 마세요. BMCP_GATEWAY_DOMAIN을 설정하여 팝업의 기본 게이트웨이 호스트를 재정의하세요.

도구 (47)

@ref 시스템을 사용한 요소 검색: snapshot[ref=eN] 마커가 있는 대화형 요소 트리를 반환합니다. 모든 상호작용 도구는 ref 또는 CSS 선택자를 허용합니다(ref는 캐시되어 자동으로 해석됩니다. 오래된 ref는 "run snapshot again" 오류를 발생시킵니다).

  • 검색snapshot, find (role/name/text/label/placeholder/title/testid/selector), get, is

  • 상호작용click, dblclick, type, fill, check, uncheck, select, hover, focus, press, drag, scroll, upload

  • 탐색navigate, reload, back, forward, close, tabs, window

  • 페이지 읽기extract, execute, screenshot (image block), pdf, wait, highlight

  • 상태 및 디버깅store, cookies, storage, console, errors, network, status, file_read

  • 에뮬레이션 및 제어emulate, set (viewport/device/geo/offline/headers/media), perms, auth, dialog, frames, touch, download

콘솔/오류/네트워크 캡처는 첫 번째 호출에서 시작됩니다(지연). 따라서 트래픽을 캡처하려면 활성화한 후 새로고침하거나 탐색하세요. 뒤로/앞으로는 CDP 탐색 기록을 사용합니다. 전체 스키마는 curl -s -X POST http://127.0.0.1:7777/mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'를 실행하세요.

플래그

플래그

설명

기본값

--port <n>

수신 포트

7777 또는 $PORT

--bind <addr>

바인딩 주소

127.0.0.1

--token <s>

/mcp/files/*에 인증 요구

없음

--extension-token <s>

브리지 + 파일 엔드포인트에서 확장 프로그램에 이 토큰 요구

없음

--gateway <domain>

code-mcp-gateway를 통해 MCP 엔드포인트 연결

없음

--id <uuid>

게이트웨이 디바이스 ID (팝업 ID로 재정의됨)

random

--files-dir <path>

다운로드/업로드된 파일이 저장되는 위치

./files

--allow-any-origin

개발 전용: 확장 프로그램 Origin 검사 건너뜀. 공유 머신에서 절대 사용 금지

off

보안

  • Origin 게이트. /browser/wschrome-extension:// Origin만 허용합니다. /mcp/files/*는 localhost가 아닌 브라우저 Origin을 거부합니다 — 악성 웹사이트가 localhost를 통해 브라우저를 제어할 수 없습니다(CSRF). 네이티브 MCP 클라이언트(Origin 헤더 없음)는 영향을 받지 않습니다.

  • **--token**/mcp/files/*을 보호합니다(?token= 또는 Bearer). --extension-token은 확장 프로그램이 브리지에서 제시해야 하는 비밀을 추가합니다.

  • 파일 ID는 엄격한 패턴으로 검증되는 12자리 임의 16진수입니다. 업로드 파일 이름은 안전하게 처리됩니다. 크기 제한: 업로드 500 MiB, 스크린샷 8 MiB 인라인.

  • **chrome.debugger**는 연결되는 동안 노란색 인포바를 표시합니다(동의 신호). perms/cookies는 가능한 경우 비디버거 API를 사용합니다.

  • 기본적으로 127.0.0.1에 바인딩됩니다. --token 없이 0.0.0.0에 바인딩하면 경고가 출력됩니다.

타임아웃

브리지 명령: 기본 30초, navigate/execute/wait_for는 60초, download/file_upload는 120초 — 로컬에서는 120초, 게이트웨이 모드에서는 55초로 제한됩니다(게이트웨이는 60초 후 전달을 중단합니다). 도구는 bridge_timeout을 받아 재정의할 수 있습니다.

개발

bun run check   # syntax-check server + scripts + extension JS
bun run test    # mock-extension + mock-gateway E2E suite
bun run build   # rebuild dist/browser-extension.zip
bun browser-mcp.ts  # run the server
-
license - not tested
-
quality - not tested
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 Connectors

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

  • Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.

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/Tuanm/browser-mcp'

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