Token导航 LogoToken导航TokenDH.com
MCP Webmcp logo
浏览器工具stdio官方级别未说明来源级核验

MCP Webmcp

MCP Server

@tech-sumit/mcp-webmcp

MCP-WebMCP是一个连接浏览器自动化工具与桌面AI应用的服务器,通过Playwright与Chrome交互,提供26种浏览器自动化工具和WebMCP元工具。

工具数

26

提示词数

0

GitHub Stars

2

资源数

0
浏览器自动化TypeScriptClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

tech-sumit

提供方

tech-sumit

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @tech-sumit/mcp-webmcp

详细介绍

@技术峰会/mcp-webmcp

](https://www.npmjs.com/package/@tech-sumit/mcp-webmcp)

连接浏览器的MCP服务器 WebMCP 工具到桌面AI应用程序。通过Playwright连接到Chrome,并通过模型上下文协议公开26个浏览器自动化工具+WebMCP元工具。

安装

npm install -g @tech-sumit/mcp-webmcp

或者直接使用npx运行(无需安装):

npx -y @tech-sumit/mcp-webmcp

快速开始

选项1:启动时自动启动浏览器(--launch)

添加到MCP客户端配置(~/.cursor/mcp.json 或克劳德桌面):

{
  "mcpServers": {
    "mcp-webmcp": {
      "command": "npx",
      "args": ["-y", "@tech-sumit/mcp-webmcp", "--launch"]
    }
  }
}

服务器启动Chrome Beta时启用了WebMCP。所有26种工具均可立即使用。

选项2:让AI代理启动浏览器(默认)

{
  "mcpServers": {
    "mcp-webmcp": {
      "command": "npx",
      "args": ["-y", "@tech-sumit/mcp-webmcp"]
    }
  }
}

没有 --launch,所有26个工具都已注册,但没有启动浏览器。AI代理调用 browser_launch 当它需要浏览器时,可以使用该工具。这使客户端可以完全控制浏览器何时以及如何启动。

建筑

graph TD
    subgraph mcp_webmcp ["MCP-WebMCP Server"]
        PB["PlaywrightBrowserSource
24 browser tools + 2 WebMCP meta-tools"]
        TR[ToolRegistry]
        MCP["MCP Server"]
    end

    subgraph transport ["Transport Layer"]
        STDIO["stdio
(default, for mcp.json)"]
        HTTP["HTTP /mcp
:3100 (optional)"]
    end

    subgraph browser_modes ["Browser Connection"]
        Launch["--launch
chromium.launch()"]
        CDP["CDP :9222
connectOverCDP()"]
    end

    Launch --> PB
    CDP --> PB
    PB --> TR
    TR --> MCP
    MCP --> STDIO
    MCP --> HTTP

    STDIO --> Cursor["Cursor"]
    STDIO --> Claude["Claude Desktop"]
    HTTP --> Any["Any MCP Client"]

连接模式

模式工作原理何时使用
--launch 旗帜通过启动Chrome浏览器 chromium.launch().注射 --enable-features=WebMCPTesting 自动。零配置设置。浏览器立即就绪。
browser_launch 工具 _(默认)_启动时没有浏览器。AI代理调用 browser_launch 必要时使用工具。代理控制何时打开浏览器。

运输方式

运输如何使用何时使用
标准快跑 mcp-webmcp (无子命令)用于mcp.json/npx。客户端生成进程,通过stdin/stdout进行通信。
超文本传输协议快跑 mcp-webmcp start用于托管/手动使用。可流式HTTP开启 /mcp 终点。

先决条件

要求详细信息
Node.jsv18+
版本 146+ (贝塔或金丝雀)。在WebMCP发布之前,稳定的Chrome浏览器将无法运行。

检查您的Chrome版本

# macOS — Chrome Beta
/Applications/Google\ Chrome\ Beta.app/Contents/MacOS/Google\ Chrome\ Beta --version

# macOS — Chrome Canary
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --version

# Linux
google-chrome-beta --version

# Windows
"C:\Program Files\Google\Chrome Beta\Application\chrome.exe" --version

服务器在启动时验证Chrome>=146,如果版本太旧,将抛出一个明确的错误。

设置

光标

增添 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mcp-webmcp": {
      "command": "npx",
      "args": ["-y", "@tech-sumit/mcp-webmcp"]
    }
  }
}

添加 "--launch"args 如果你想让Chrome在启动时打开。

克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-webmcp": {
      "command": "npx",
      "args": ["-y", "@tech-sumit/mcp-webmcp"]
    }
  }
}

本地开发

{
  "mcpServers": {
    "mcp-webmcp": {
      "command": "node",
      "args": ["/path/to/dist/cli.js"]
    }
  }
}

HTTP传输(托管服务器)

对于手动或托管使用,请将服务器作为HTTP端点运行:

mcp-webmcp start [--launch] [--port 3100]

将您的MCP客户端连接到 http://localhost:3100/mcp.

自动配置

mcp-webmcp config cursor   # writes ~/.cursor/mcp.json
mcp-webmcp config claude    # writes Claude Desktop config

选项

标志描述默认值
--launch启动时启动浏览器(否则使用 browser_launch 工具)false
--channel 浏览器频道: chrome, chrome-beta, chrome-canary, msedge, msedge-beta, msedge-devchrome-beta
--headless在无头模式下运行浏览器false
--url 启动后导航到URL_(无)_

可用工具(26)

工具类别

graph TD
    subgraph browser_auto ["Browser Automation (24 tools)"]
        direction LR
        Nav["Navigation
navigate, back, forward, reload"]
        State["Page State
url, snapshot, screenshot
console_logs, network_requests"]
        Interact["Interaction
click, type, fill, hover
select_option, press_key, focus"]
        Scroll["Scrolling
scroll"]
        Tabs["Tab Management
tab_list, tab_new
tab_select, tab_close"]
        JS["JavaScript
evaluate"]
        Wait["Wait
wait"]
        Lifecycle["Lifecycle
launch"]
    end

    subgraph webmcp_meta ["WebMCP Meta-Tools (2 tools)"]
        direction LR
        List["webmcp_list_tools
Discover page tools"]
        Call["webmcp_call_tool
Execute page tools"]
    end

浏览器自动化(24个工具)

工具说明
browser_launch启动一个新的浏览器窗口(关闭现有窗口)。支持的频道:chrome、chrome beta、chrome canary、msedge。跨平台。
browser_navigate导航到URL
browser_back回到历史
browser_forward在历史中前进
browser_reload重新加载当前页面
browser_url获取当前URL和标题
browser_snapshot可访问性树 [ref=N] 元素靶向标记
browser_screenshot拍摄PNG屏幕截图
browser_console_logs获取缓冲的控制台日志消息
browser_network_requests获取带有状态代码的缓冲网络请求
browser_click按ref单击元素
browser_type逐个字符键入文本
browser_fill清除并填写输入字段
browser_hover将鼠标悬停在元素上
browser_select_option选择下拉选项
browser_press_key按键盘键
browser_focus聚焦一个元素
browser_scroll滚动页面或元素
browser_tab_list列出所有打开的选项卡
browser_tab_new打开新选项卡
browser_tab_select切换到选项卡
browser_tab_close关闭选项卡
browser_evaluate在页面上下文中执行JavaScript
browser_wait等待时间或CSS选择器

WebMCP元工具(2个工具)

工具说明
webmcp_list_tools列出在活动页面上注册的WebMCP工具
webmcp_call_tool在活动页面上按名称执行WebMCP工具

WebMCP工具是 动态的 --当用户在页面之间导航时,它们会发生变化。总是打电话 webmcp_list_tools 之前 webmcp_call_tool 以发现可用的内容。

元素定位:快照+引用

sequenceDiagram
    participant Agent
    participant Server
    participant Page

    Agent->>Server: browser_snapshot
    Server->>Page: ariaSnapshot()
    Page-->>Server: Accessibility tree
    Note over Server: Assigns [ref=N] to each element
    Server-->>Agent: Annotated snapshot

    Note over Agent: Picks ref=5 for Submit button

    Agent->>Server: browser_click {ref: 5}
    Note over Server: Resolves ref=5 via getByRole().nth()
    Server->>Page: Click resolved locator
    Page-->>Server: Done
    Server-->>Agent: Clicked button Submit ref=5

CLI参考

mcp-webmcp (默认--stdio模式)

作为stdio MCP服务器运行。这就是 mcp.json 调用。

mcp-webmcp [options]
选项描述默认值
--launch启动时启动浏览器(否则使用 browser_launch 工具)false
--channel 浏览器频道chrome-beta
--headless以无头模式启动false
--url 要打开的初始URL_(无)_
--extension启用Chrome扩展程序WebSocket桥false
`--ws-port
`扩展WebSocket端口8765
--no-browser-tools禁用Playwright浏览器工具false

mcp-webmcp start (HTTP模式)

通过HTTP启动MCP服务器。

mcp-webmcp start [options]

与stdio模式相同的选项,另外:

选项描述默认值
`--port
`HTTP服务器端口3100

mcp-webmcp list-tools

列出连接的浏览器选项卡中的所有WebMCP工具(直接使用CDP)。

mcp-webmcp list-tools [--host localhost] [--port 9222]

mcp-webmcp call-tool [args]

按名称执行WebMCP工具。

mcp-webmcp call-tool searchFlights '{"from":"SFO","to":"JFK"}'

mcp-webmcp config

编写MCP客户端配置(基于stdio)。

mcp-webmcp config cursor   # writes ~/.cursor/mcp.json
mcp-webmcp config claude    # writes Claude Desktop config

演示:通过WebMCP预订餐桌

此演示显示了完整的流程:AI代理使用 browser_launch 打开Chrome浏览器,导航到启用WebMCP的餐厅页面,发现 book_table_le_petit_bistro 工具和预订桌子——所有这些都是通过MCP完成的。

代理工作流

sequenceDiagram
    participant Agent as AI Agent (Cursor)
    participant MCP as MCP-WebMCP
    participant Chrome as Chrome Browser
    participant Page as Le Petit Bistro

    Agent->>MCP: browser_launch {channel: "chrome-beta"}
    MCP->>Chrome: chromium.launch()
    Chrome-->>MCP: Browser ready
    MCP-->>Agent: "Launched chrome-beta"

    Agent->>MCP: browser_navigate {url: "localhost:5173"}
    MCP->>Chrome: page.goto()
    Chrome-->>MCP: Page loaded
    MCP-->>Agent: "Le Petit Bistro"

    Agent->>MCP: webmcp_list_tools
    MCP->>Page: navigator.modelContextTesting.listTools()
    Page-->>MCP: [{name: "book_table_le_petit_bistro", ...}]
    MCP-->>Agent: Tool schema with inputs

    Agent->>MCP: webmcp_call_tool {name: "book_table_le_petit_bistro", ...}
    MCP->>Page: navigator.modelContextTesting.executeTool(...)
    Page-->>MCP: "Reservation confirmed"
    MCP-->>Agent: "Hello Sumit, We look forward to welcoming you..."

发生了什么

  1. browser_launch 打开Chrome测试版 --enable-features=WebMCPTesting
  2. browser_navigate 加载Le Petit Bistro预订表
  3. webmcp_list_tools 发现 book_table_le_petit_bistro 及其完整的输入模式(姓名、电话、日期、时间、客人、座位、请求)
  4. webmcp_call_tool 预订表格——表格会自动填充,并出现一个确认模式: *“已收到预订——祝您胃口好!”*

故障排除

决策树

flowchart TD
    Problem(["Something went wrong"]) --> Q0{"Using --launch mode?"}
    Q0 -- Yes --> Q0a{"Chrome Beta/Canary
installed?"}
    Q0a -- No --> F0["Install Chrome Beta
chrome.google.com/beta"]
    Q0a -- Yes --> Q3
    Q0 -- No --> Q1{"Can you reach Chrome?
curl localhost:9222/json/version"}
    Q1 -- No --> F1["Launch Chrome with
--remote-debugging-port=9222"]
    Q1 -- Yes --> Q2{"Chrome version >= 146?"}
    Q2 -- No --> F2["Install Chrome Beta/Canary"]
    Q2 -- Yes --> Q3{"Server starts?"}
    Q3 -- No --> F3["Check error message in stderr"]
    Q3 -- Yes --> Q4{"MCP client connects?"}
    Q4 -- No --> F4["Check mcp.json config
Toggle MCP off/on"]
    Q4 -- Yes --> Q5{"WebMCP tools work?"}
    Q5 -- No --> F5["Ensure --enable-features=WebMCPTesting
(--launch adds it automatically)"]
    Q5 -- Yes --> OK(["Everything working"])

常见问题

“不支持Chrome X版本”

您的Chrome浏览器已超过146。安装Chrome测试版或Canary:

  • https://www.google.com/chrome/beta/
  • https://www.google.com/chrome/canary/

“WebMCP不可用”

Chrome不是用 --enable-features=WebMCPTesting。如果使用CDP模式,请关闭所有Chrome窗口,然后使用该标志重新启动。启动模式(--launch)自动添加此标志。

“未找到浏览器上下文”

Chrome未运行 --remote-debugging-port=9222,或者它没有打开选项卡。使用 --launch 模式,或用以下方式验证:

curl http://localhost:9222/json/version

目标页面、上下文或浏览器已关闭

浏览器连接丢失。使用 browser_launch 工具启动新浏览器或重新启动MCP服务器。

屏幕截图超时

Playwright在截图之前等待网络字体加载。服务器使用10秒的超时来避免挂起。

在模态/叠加元素上点击失败

元素在 position: fixed 覆盖可能无法滚动到视图中。服务器会自动重试 force: true 直接单击元素的坐标。

发展

pnpm install           # install dependencies
pnpm build             # compile with tsup → dist/
pnpm dev               # watch mode
pnpm start             # run HTTP server (CDP mode)
pnpm start:stdio       # run stdio server
pnpm typecheck         # tsc --noEmit
pnpm lint              # eslint
pnpm test              # vitest
pnpm format            # prettier

许可证

麻省理工学院

目录标签

目录标签

浏览器自动化TypeScriptClaude本地部署WebMCPPlaywrightAI工具桥接MCP协议

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@tech-sumit/mcp-webmcp

工具数量(toolCount,工具数)

26

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP