Skip to main content
Glama
mlnima

browser-use-native-windows

by mlnima

browser-use-native-windows

Windows 전용 MCP 서버로, 네이티브 스크린샷, Windows 접근성, node-interception 마우스/키보드 입력을 사용하여 실제 Chromium 브라우저를 제어합니다.

CDP, Chrome DevTools, Playwright, Puppeteer, 브라우저 확장 프로그램, DOM 선택자, DOM 스냅샷 또는 페이지 JavaScript 평가를 사용하지 않습니다.

모든 관찰은 브라우저 창, 모니터, 물리적 해상도, 모니터 배율 및 창 위치를 다시 감지합니다. 네이티브 마우스 입력 전에 창 및 모니터 지오메트리가 다시 확인됩니다. 크기 조정 또는 배율 변경은 관찰을 무효화하므로 클라이언트는 작업을 수행하기 전에 새 스크린샷을 관찰해야 합니다.

요구 사항

  • Windows

  • Node.js 20+

  • Chromium 기반 브라우저: Edge, Chrome, Brave, Chromium, Vivaldi, Opera, Yandex

  • node-interception 드라이버

관리자 터미널에서 네이티브 입력 패키지 및 드라이버를 설치합니다:

npm install -g node-interception
node-interception /install

드라이버 설치 후 Windows를 재부팅합니다.

Related MCP server: hermes-computer-use

설치

소스에서:

npm install
npm run build

이 패키지 루트에서 선택적 전역 설치:

npm install -g .

구성

MCP는 먼저 시스템 환경 변수를 읽습니다. 이 README 옆에 .env 파일이 있으면 대체로 로드됩니다. .env가 없으면 MCP가 정상적으로 시작됩니다.

고정 HTTP 또는 브라우저 설정을 원할 때 .env.example에서 .env를 생성합니다:

BROWSER_USE_NATIVE_WINDOWS_SSE_HOST= "0.0.0.0"
BROWSER_USE_NATIVE_WINDOWS_SSE_PORT= "7331"
BROWSER_USE_NATIVE_WINDOWS_SSE_AUTH= "change.me"
BROWSER_USE_NATIVE_WINDOWS_BROWSER_EXECUTABLE_PATH= "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
BROWSER_USE_NATIVE_WINDOWS_BROWSER_USER_DATA_DIR= "C:\Users\YOUR_USER\AppData\Local\Microsoft\Edge\User Data"

HTTP를 머신 외부에 노출하기 전에 BROWSER_USE_NATIVE_WINDOWS_SSE_AUTH를 변경합니다.

실행

Stdio 전송:

npm run start:stdio

/mcp에서 스트리밍 가능 HTTP:

npm run start:mcp

/sse에서 레거시 HTTP+SSE, /messages에서 POST 메시지:

npm run start:sse

두 네트워크 전송 모두:

npm run start:all

전역 설치:

browser-use-native-windows
browser-use-native-windows --transport mcp
browser-use-native-windows --transport sse
browser-use-native-windows --transport all

기본 네트워크 호스트는 0.0.0.0이므로 /mcp 및 /sse는 localhost 및 이 컴퓨터의 LAN 주소를 통해 연결을 수락합니다. 모든 네트워크 엔드포인트에서 Bearer 인증이 필요합니다.

MCP 클라이언트

Stdio:

{
  "mcpServers": {
    "browser-use-native-windows": {
      "transport": "stdio",
      "command": "node",
      "args": ["<package-root>\\dist\\index.js"],
      "cwd": "<package-root>"
    }
  }
}

Codex 스트리밍 가능 HTTP:

[mcp_servers.browser_use_native_windows]
url = "http://<host>:7331/mcp"
http_headers = { "Authorization" = "Bearer change.me" }

SSE 호환성:

{
  "mcpServers": {
    "browser-use-native-windows": {
      "transport": "sse",
      "url": "http://<host>:7331/sse",
      "headers": {
        "Authorization": "Bearer change.me"
      }
    }
  }
}

도구

  • browser_observe: 브라우저를 실행하거나 채택하고 네이티브 관찰을 반환합니다.

  • browser_act: 새로운 관찰 토큰에 대해 하나의 마우스 또는 키보드 작업을 실행합니다.

  • browser_status: 전송, 드라이버, 브라우저, 창, 포커스, 모니터, DPI 및 관찰 상태를 반환합니다.

  • browser_stop: 보유된 입력 상태를 해제하고 선택적으로 추적 중인 브라우저를 닫습니다.

강제 중지

기본 전역 단축키:

Control+F12

감시 프로그램이 보유된 키와 마우스 버튼을 해제한 다음 MCP 프로세스를 중지합니다.

Available Tools

4 tools
browser_actAct In BrowserB

Run one native mouse or keyboard action against a matching fresh browser_observe token.

ParametersJSON Schema
NameRequiredDescriptionDefault
observationTokenYes
actionYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only says 'run one native mouse or keyboard action' without disclosing side effects, token lifecycle, reversibility, or required permissions. This is insufficient for a tool performing potentially destructive actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, highly concise and front-loaded with the core purpose. However, it omits important details that would improve usability, slightly reducing its effectiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the action parameter (13 variants) and no output schema, the description is severely lacking. It does not explain how to construct actions, the meaning of 'fresh' token, or what the tool returns, making it incomplete for practical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, and the description adds no explanation of the observationToken or action parameters. It does not elaborate on the complex action structure, leaving agents to infer meaning solely from the schema, which is inadequate for effective selection and invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run one native mouse or keyboard action against a matching fresh browser_observe token,' which specifies the verb (run), resource (action against browser), and distinguishes from sibling tools like browser_observe (observation) and browser_stop (stop).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'matching fresh browser_observe token,' indicating dependence on the browser_observe tool. However, it does not explicitly state when to use this tool versus alternatives or when not to use it, leaving room for ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_observeObserve BrowserC

Launch or adopt a Windows browser, optionally handle a target URL through native UI, and return a browser-window or browser-owned file-dialog observation.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetUrlNo
inlineImageNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It mentions launch/adopt and URL handling but lacks details on side effects (e.g., whether it opens a new window, modifies browser state), auth requirements, or blocking behavior. The phrase 'native UI' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys multiple aspects (launch/adopt, optional URL, return type). It is reasonably concise, though slightly long. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description should clarify the return format. It only says 'return a browser-window or browser-owned file-dialog observation,' which is too vague. Parameter explanations are missing, leaving the agent with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only hints at 'targetUrl' ('optionally handle a target URL') but does not name or explain either parameter, and 'inlineImage' is entirely absent. This adds minimal value over the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('launch or adopt'), resource ('Windows browser'), and the outcome ('return a browser-window or browser-owned file-dialog observation'). It distinguishes from sibling tools like browser_act and browser_stop by focusing on observation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives (siblings are browser_act, browser_status, browser_stop). There is no mention of prerequisites, limitations, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_statusBrowser StatusB

Return MCP transport, native input driver, browser process, HWND, monitor, DPI, focus, and observation state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly indicates a read operation ('Return'), but does not disclose error scenarios (e.g., when the browser is not running), rate limits, or side effects. Adequate but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence. Every word adds value, no redundancy, and it is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and annotations, the description is brief. While it enumerates the items returned, it offers no explanation of their meaning or format. For a status-checking tool, more context (e.g., types or example output) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema coverage is 100%. Per scoring guidelines, baseline for 0 params is 4. The description does not need to add parameter information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses the specific verb 'Return' and lists the exact resources/states (MCP transport, native input driver, etc.). It clearly indicates the tool retrieves status information. Though it does not explicitly differentiate from siblings like browser_act or browser_observe, the name and description make the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., browser_observe for observations, browser_act for actions). The description implies it's for checking status, but lacks context or examples of appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_stopStop Browser ControlA

Release held native input state and optionally close the tracked browser only when the user task asks for it.

ParametersJSON Schema
NameRequiredDescriptionDefault
closeBrowserNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses releasing native input state and optional browser closing, but lacks details on the state after stopping (e.g., resumability, side effects).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the primary action and includes the usage condition. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the core functionality and usage context adequately. Minor gaps exist (e.g., what happens to browser state if not closed), but overall it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning by linking 'optionally close' to the closeBrowser boolean parameter. It clarifies the parameter's role beyond the schema's bare boolean type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Release held native input state' and 'optionally close the tracked browser', specifying the verb and resource. It distinguishes from siblings like browser_act, browser_observe, and browser_status by focusing on stopping/releasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'only when the user task asks for it', providing a clear condition for when to use the tool. While it doesn't list alternatives, the context of sibling tools implies different purposes.

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. 4 tool updatesv0.1.0
    • First observedbrowser_act
    • First observedbrowser_observe
    • First observedbrowser_status
    • First observedbrowser_stop

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct role: browser_observe for launching/adopting and getting observation, browser_act for performing actions, browser_status for checking state, and browser_stop for cleanup. No overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent 'browser_' prefix followed by a single verb (observe, act, status, stop), all lowercase, with no mixing of conventions.

Tool Count5/5

Four tools is exactly right for this domain: observe, act, status, and stop cover the essential lifecycle without unnecessary extras. Not too few, not too many.

Completeness5/5

The tool set covers the full lifecycle of native browser interaction: initialization (browser_observe), action (browser_act), monitoring (browser_status), and termination (browser_stop). No obvious gaps.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A standalone MCP server for Windows desktop control, enabling screenshots, mouse and keyboard input, app launch, window/display management, and clipboard access via natural language.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A local, dependency-free MCP server that gives AI agents controlled access to the active Windows desktop, enabling automated interaction with applications through screenshots, clicks, typing, and window management.
    75 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    This MCP server enables an AI agent to control a Windows PC through human-like interactions such as screen capture, OCR, mouse, keyboard, and navigation, without using shortcut APIs.
    -