Browser-Use MCP Server
브라우저 사용 MCP 서버
프로젝트 참고 : 이 MCP 서버 구현은 브라우저 사용/웹 UI 기반을 기반으로 합니다. 핵심 브라우저 자동화 로직과 구성 패턴은 원래 프로젝트에서 가져온 것입니다.
자연어 브라우저 제어 및 웹 조사를 위한 모델 컨텍스트 프로토콜(MCP)을 구현하는 AI 기반 브라우저 자동화 서버입니다.
특징
🧠 MCP 통합 - AI 에이전트 통신을 위한 전체 프로토콜 구현.
🌐 브라우저 자동화 - 자연어를 통한 페이지 탐색, 양식 작성, 요소 상호작용(
run_browser_agent도구).👁️ 시각적 이해 - 시각을 갖춘 LLM을 위한 선택적 스크린샷 분석.
🔄 상태 지속성 - 여러 MCP 호출에 걸쳐 브라우저 세션을 관리하거나 사용자 브라우저에 연결하는 옵션입니다.
🔌 다중 LLM 지원 - OpenAI, Anthropic, Azure, DeepSeek, Google, Mistral, Ollama, OpenRouter, Alibaba, Moonshot, Unbound AI와 통합됩니다.
🔍 심층 조사 도구 - 여러 단계로 이루어진 웹 조사와 보고서 생성을 위한 전용 도구(
run_deep_search도구).⚙️ 환경 변수 구성 - 환경 변수를 통해 완벽하게 구성 가능합니다.
🔗 CDP 연결 - Chrome DevTools 프로토콜을 통해 사용자가 시작한 Chrome/Chromium 인스턴스에 연결하고 제어할 수 있는 기능입니다.
Related MCP server: Browserbase MCP Server
빠른 시작
필수 조건
Python 3.11 이상
uv(빠른 Python 패키지 설치 프로그램):pip install uvChrome/Chromium 브라우저 설치됨
Playwright 브라우저 설치:
uv sync후uv run playwright install
MCP 클라이언트(예: Claude Desktop)와의 통합
Claude Desktop과 같은 클라이언트가 이 서버에 연결되도록 구성할 수 있습니다. 클라이언트 구성에 다음 구조를 추가하세요(예: claude_desktop_config.json ). 필요에 따라 경로 및 환경 변수를 조정하세요.
지엑스피1
중요: command 과 args 서버를 실행할 방식(설치된 패키지 또는 소스 디렉터리)을 올바르게 지정해야 합니다. env 섹션에 필요한 API 키를 설정하세요.
MCP 도구
이 서버는 모델 컨텍스트 프로토콜을 통해 다음 도구를 제공합니다.
동기 도구(완료 대기)
run_browser_agent설명: 자연어 명령어에 따라 브라우저 자동화 작업을 실행하고 완료될 때까지 기다립니다.
MCP_로 시작하는 설정(예:MCP_HEADLESS,MCP_MAX_STEPS)을 사용합니다.인수:
task(문자열, 필수): 주요 작업 또는 목표.add_infos(문자열, 선택 사항): 에이전트에 대한 추가 컨텍스트 또는 힌트(custom에이전트 유형에서 사용됨).
반환값: (문자열) 에이전트가 추출한 최종 결과 또는 오류 메시지.
run_deep_search설명: 특정 주제에 대한 심층적인 웹 조사를 수행하고 보고서를 생성한 후 완료될 때까지 기다립니다.
MCP_RESEARCH_가 붙은 설정과 일반적인BROWSER_설정(예:BROWSER_HEADLESS)을 사용합니다.인수:
research_task(문자열, 필수): 연구 주제 또는 질문.max_search_iterations(정수, 선택 사항, 기본값: 10): 최대 검색 주기.max_query_per_iteration(정수, 선택 사항, 기본값: 3): 사이클당 최대 검색 쿼리.
반환값: (문자열) 파일 경로 또는 오류 메시지를 포함한 Markdown 형식의 생성된 연구 보고서입니다.
구성(환경 변수)
환경 변수를 사용하여 서버를 구성하세요. 환경 변수는 시스템에 설정하거나 프로젝트 루트의 .env 파일에 저장할 수 있습니다.
변하기 쉬운 | 설명 | 필수의? | 기본값 | 예시 값 |
LLM 설정 | ||||
| 사용할 LLM 제공 기관입니다. 아래 옵션을 참조하세요. | 예 |
|
|
| 선택한 공급업체의 특정 모델 이름입니다. | 아니요 |
|
|
| LLM 온도(0.0-2.0). 무작위성을 제어합니다. | 아니요 |
|
|
| 도구 호출 메서드('auto', 'json_schema', 'function_calling'). | 아니요 |
|
|
|
| 아니요 |
|
|
| 선택 사항: LLM 공급자의 기본 URL에 대한 일반적인 재정의입니다. | 아니요 | 공급자별 |
|
| 선택 사항: LLM 공급자의 API 키에 대한 일반적인 재정의(공급자별 키보다 우선함). | 아니요 | - |
|
공급자 API 키 |
| |||
| OpenAI의 API 키. | 사용하는 경우 | - |
|
| Anthropic의 API 키. | 사용하는 경우 | - |
|
| Google AI(Gemini)의 API 키. | 사용하는 경우 | - |
|
| Azure OpenAI의 API 키. | 사용하는 경우 | - |
|
| DeepSeek의 API 키. | 사용하는 경우 | - |
|
| Mistral AI의 API 키. | 사용하는 경우 | - |
|
| OpenRouter의 API 키. | 사용하는 경우 | - |
|
| Alibaba Cloud(DashScope)의 API 키. | 사용하는 경우 | - |
|
| Moonshot AI의 API 키. | 사용하는 경우 | - |
|
| Unbound AI의 API 키. | 사용하는 경우 | - |
|
공급자 엔드포인트 | 선택 사항: 기본 API 엔드포인트를 재정의합니다. | |||
| OpenAI API 엔드포인트 URL. | 아니요 |
| |
| Anthropic API 엔드포인트 URL입니다. | 아니요 |
| |
| Azure를 사용하는 경우 필수입니다. Azure 리소스 엔드포인트입니다. | 사용하는 경우 | - |
|
| Azure API 버전. | 아니요 |
|
|
| DeepSeek API 엔드포인트 URL. | 아니요 |
| |
| 미스트랄 API 엔드포인트 URL. | 아니요 |
| |
| Ollama API 엔드포인트 URL. | 아니요 |
|
|
| OpenRouter API 엔드포인트 URL. | 아니요 |
| |
| Alibaba(DashScope) API 엔드포인트 URL. | 아니요 |
| |
| Moonshot API 엔드포인트 URL. | 아니요 |
| |
| 바인딩되지 않은 AI API 엔드포인트 URL입니다. | 아니요 |
| |
올라마 특정 | ||||
| Ollama 모델의 컨텍스트 창 크기. | 아니요 |
|
|
| Ollama 모델을 예측할 수 있는 최대 토큰입니다. | 아니요 |
|
|
에이전트 설정( | ||||
|
| 아니요 |
|
|
| 에이전트당 실행 가능한 최대 단계 수입니다. | 아니요 |
|
|
| 비전 기능(스크린샷 분석)을 활성화합니다. | 아니요 |
|
|
| 에이전트 단계당 최대 작업 수. | 아니요 |
|
|
|
| 아니요 |
|
|
|
| 아니요 |
|
|
| 에이전트 실행 비디오 녹화를 저장하는 경로( | 녹음하는 경우 | - |
|
| 에이전트 내역 JSON 파일을 저장하는 디렉토리입니다. | 아니요 |
|
|
|
| 아니요 |
|
|
|
| 아니요 |
|
|
심층 연구 설정( | ||||
| 심층 연구를 위한 최대 검색 반복 횟수. | 아니요 |
|
|
| 반복당 최대 검색 쿼리. | 아니요 |
|
|
| 조사를 위해 별도의 브라우저 인스턴스를 사용합니다( | 아니요 |
|
|
| 연구 결과물(보고서, 결과)을 저장하는 디렉토리입니다. | 아니요 |
|
|
| 심층 연구 내 하위 에이전트의 최대 단계. | 아니요 |
|
|
브라우저 설정(일반 및 특정 도구 재정의) | ||||
| 새 브라우저를 시작하는 대신 | 아니요 |
|
|
| DevTools 프로토콜 URL을 통해 기존 Chrome에 연결합니다. |
| - |
|
| UI 없이 브라우저를 실행합니다. 주로 | 아니요 |
|
|
| 일반 브라우저 보안 설정입니다. | 아니요 |
|
|
| Chrome/Chromium 실행 파일의 경로입니다. | 아니요 | - |
|
| Chrome 사용자 데이터 디렉터리 경로(영구 세션의 경우 | 아니요 | - |
|
| Playwright 추적 파일을 저장하는 디렉토리입니다(디버깅에 유용함). | 아니요 |
|
|
| 브라우저 창 너비(픽셀). | 아니요 |
|
|
| 브라우저 창 높이(픽셀). | 아니요 |
|
|
서버 및 로깅 | ||||
| 서버 로그 파일의 경로입니다. | 아니요 |
|
|
| 로깅 수준( | 아니요 |
|
|
| 익명화된 원격 측정을 활성화/비활성화합니다( | 아니요 |
|
|
지원되는 LLM 공급자( MCP_MODEL_PROVIDER ):
openai , azure_openai , anthropic , google , mistral , ollama , deepseek , openrouter , alibaba , moonshot , unbound
자신의 브라우저에 연결하기(CDP)
서버가 자체 브라우저 인스턴스를 실행하고 관리하는 대신, 사용자가 직접 실행하고 관리하는 Chrome/Chromium 브라우저에 서버를 연결할 수 있습니다. 이 기능은 다음과 같은 경우에 유용합니다.
기존 브라우저 프로필(쿠키, 로그인, 확장 프로그램)을 사용합니다.
브라우저 창에서 직접 자동화를 관찰합니다.
복잡한 시나리오 디버깅.
단계:
원격 디버깅을 활성화하여 Chrome/Chromium을 실행하세요. 터미널이나 명령 프롬프트를 열고 운영 체제에 맞는 명령어를 실행하세요. 이렇게 하면 Chrome이 특정 포트(예: 9222)에서 연결을 수신 대기하도록 설정됩니다.
맥OS:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222(크롬이 다른 곳에 설치되어 있는 경우 경로를 조정하세요)
리눅스:
google-chrome --remote-debugging-port=9222 # or chromium-browser --remote-debugging-port=9222Windows(명령 프롬프트):
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222(필요한 경우 Chrome 설치 경로를 조정하세요)
윈도우(PowerShell):
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222(필요한 경우 Chrome 설치 경로를 조정하세요)
참고: 포트 9222가 이미 사용 중인 경우 다른 포트(예: 9223)를 선택하고
CHROME_CDP환경 변수에 동일한 포트를 사용하세요.환경 변수 구성: MCP 서버를 시작하기 전에
.env파일이나 시스템 환경에서 다음 환경 변수를 설정하세요.MCP_USE_OWN_BROWSER=true CHROME_CDP=http://localhost:9222 # Use the same port you launched Chrome withMCP_USE_OWN_BROWSER=true: 서버에 브라우저를 새로 시작하는 대신 기존 브라우저에 연결하도록 지시합니다.CHROME_CDP: 서버가 브라우저의 DevTools 프로토콜 엔드포인트에 연결할 수 있는 URL을 지정합니다.
MCP 서버 실행: 평소와 같이 서버를 시작합니다.
uv run mcp-server-browser-use
이제 run_browser_agent 또는 run_deep_search 도구를 사용하면 서버가 새 인스턴스를 만드는 대신 실행 중인 Chrome 인스턴스에 연결됩니다.
중요 고려 사항:
--remote-debugging-port로 실행된 브라우저는 MCP 서버가 실행되는 동안 열려 있어야 하며, 서버와 상호 작용해야 합니다.MCP 서버가 실행 중인 위치에서
CHROME_CDPURL에 접근할 수 있는지 확인하세요(일반적으로 동일한 컴퓨터에서 실행 중인 경우http://localhost:PORT).자체 브라우저를 사용하면 서버가 해당 브라우저의 상태(열린 탭, 로그인된 세션)를 상속받습니다. 자동화 작업 시 이 점에 유의하세요.
MCP_USE_OWN_BROWSER=true이면MCP_HEADLESS,BROWSER_HEADLESS,MCP_KEEP_BROWSER_OPEN과 같은 설정은 무시됩니다. 창 크기는 브라우저 창에 따라 결정됩니다.
개발
# Install dev dependencies and sync project deps
uv sync --dev
# Install playwright browsers
uv run playwright install
# Run with debugger (Example connecting to own browser via CDP)
# 1. Launch Chrome: google-chrome --remote-debugging-port=9222
# 2. Run inspector command:
npx @modelcontextprotocol/inspector@latest \
-e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \
-e MCP_MODEL_PROVIDER=openrouter \
-e MCP_MODEL_NAME=anthropic/claude-3.7-sonnet \
-e MCP_USE_OWN_BROWSER=true \
-e CHROME_CDP=http://localhost:9222 \
uv --directory . run mcp run src/mcp_server_browser_use/server.py
# Note: Change timeout in inspector's config panel if needed (default is 10 seconds)문제 해결
브라우저 충돌 :
CHROME_CDP(MCP_USE_OWN_BROWSER=false)를 사용 하지 않는 경우CHROME_USER_DATA지정된 경우 다른 충돌하는 Chrome 인스턴스가 동일한 사용자 데이터 디렉토리에서 실행되지 않는지 확인합니다.CDP 연결 문제 :
MCP_USE_OWN_BROWSER=true사용하는 경우:Chrome이
--remote-debugging-port플래그로 실행되었는지 확인하세요.CHROME_CDP의 포트가 Chrome을 실행할 때 사용한 포트와 일치하는지 확인하세요.지정된 포트로의 연결을 차단하는 방화벽 문제가 있는지 확인하세요.
브라우저가 계속 실행 중인지 확인하세요.
API 오류 : 선택한
MCP_MODEL_PROVIDER에 올바른 API 키 환경 변수(OPENAI_API_KEY,ANTHROPIC_API_KEY등)가 설정되어 있는지 또는MCP_API_KEY가 설정되어 있는지 다시 한번 확인하세요. 키와 엔드포인트를 확인하세요(Azure의 경우AZURE_OPENAI_ENDPOINT가 필요합니다).시각 문제 : 시각 기능을 사용하는 경우
MCP_USE_VISION=true설정하고 선택한 LLM 모델이 시각을 지원하는지 확인하세요.종속성 문제 :
uv sync실행하여 모든 종속성이 올바르게 설치되었는지 확인하세요.pyproject.toml확인하세요.로깅 : 자세한 오류 메시지는
LOG_FILE(기본값:mcp_server_browser_use.log)로 지정된 로그 파일을 확인하세요. 더 자세한 출력을 원하면BROWSER_USE_LOGGING_LEVEL값을DEBUG로 높이세요.
특허
MIT - 자세한 내용은 라이센스를 참조하세요.
Available Tools
1 toolrun_browser_agentD
Handle run-browser-agent tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| add_infos | No | ||
| task | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails completely. It doesn't indicate whether this is a read or write operation, what side effects it might have, what permissions are required, or what the expected behavior is. The phrase 'Handle... tool calls' is too vague to convey any meaningful behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is technically concise (only 5 words), this represents under-specification rather than effective brevity. The single sentence doesn't earn its place by providing meaningful information. A truly concise description would still convey essential purpose and usage information in minimal words, which this fails to do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a tool with 2 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It provides no information about what the tool does, how to use it, what parameters mean, or what to expect from its operation. The description fails to compensate for any of the missing structured information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning neither parameter has any description in the schema. The tool description provides no information about what the 'task' or 'add_infos' parameters mean, what format they should take, or how they affect the tool's operation. For a tool with 2 parameters and zero schema documentation, this represents a complete failure to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Handle run-browser-agent tool calls' is essentially a tautology that restates the tool name without explaining what the tool actually does. It doesn't specify what 'run-browser-agent' means, what resources it operates on, or what action it performs. While it mentions 'tool calls', this adds no meaningful information beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool, what context it's appropriate for, or what alternatives might exist. There are no sibling tools mentioned, but even for a standalone tool, the description fails to give any indication of its intended use case or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
run_browser_agent
This server cannot be deployed
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'run_browser_agent' has a clearly distinct purpose with no other tools to confuse it with.
The naming pattern cannot be inconsistent with only one tool. The tool name 'run_browser_agent' follows a clear verb_noun pattern, and there are no other tools to deviate from this convention.
A single tool is too few for a server named 'Browser-Use MCP Server', which suggests a broader scope for browser automation. One tool feels thin and inadequate for handling various browser-related tasks like navigation, clicking, or form filling.
The tool set is severely incomplete for browser automation. With only a 'run_browser_agent' tool, there are obvious gaps in basic operations such as opening pages, interacting with elements, or retrieving content, making it impossible for agents to perform typical browser tasks.
Maintenance
Related MCP Connectors
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
- TabfleetOAuthcom.tabfleet
Launch, inspect, control, and share isolated cloud browsers for your agents.
Undetectable cloud browser sessions for AI agents and scrapers. Navigate, extract, click, captcha.
I do everything related to Browser Automation & Management
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables browser automation with anti-detection features, including navigation, interaction, form filling, and session management.2226 PyPI10MIT
- AlicenseNot gradedqualityDmaintenanceProvides cloud browser automation capabilities for AI agents, including creating, managing, and retrieving recordings and logs from browser sessions.MIT
- AlicenseNot gradedqualityDmaintenanceEnables browser automation for AI assistants via Playwright, supporting multiple browsers, sessions, and tools for web interaction and testing.1,029 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables plain-English browser automation via an MCP server, allowing agents to run objectives or test suites in a real browser without selectors or scripts.63 npm2Apache 2.0