@agent-infra/mcp-server-browser

中文文档
1.2.29发布于 2025/12/15MITTypeScriptESM + CJS近 30 天下载 2698

用于浏览器的 MCP 服务器

中文使用文档
文档目录9 节
  1. 浏览器使用 MCP 服务器
  2. 关键特性
  3. 所需资源
  4. 开始
  5. 配置
  6. 夹克
  7. API 密码
  8. 发展
  9. 扩展 CLI 条目

浏览器使用 MCP 服务器

NPM Downloads smithery badge codecov

Install MCP Server Install in VS Code Install in VS Code Insiders

一个快速,轻量级的模型上下文协议(MCP)服务器,通过Puppeteer的结构化可访问性数据赋予LLMs以浏览器自动化的能力,其特点是可选的视觉模式,用于复杂的视觉理解和灵活的跨平台配置.

关键特性

  • 快速和轻量级. 使用 Puppeteer 的标签索引,而不是基于像素的输入和访问 DOM 树.
  • ++ 愿景模式支持. 在结构化数据不足时,可选择的视觉理解能力用于复杂的布局和视觉元素.
  • * LLM优化. 不需要视觉模型,完全依靠结构化数据运作,减少上下文符号的使用.
  • XQ 灵活运行时配置。自定义视图大小、协调系统因子,以及运行时通过HTTP头的用户代理.
  • ++ 跨平面并可扩展。支持远程和本地浏览器,使用自定义浏览器引擎.

所需资源

  • 节点.js 18或更新
  • VS 代码、 光标、 Windsurf、 Claude 桌面或任何其他 MCP 客户端

开始

当地( Stdio)

首先,用客户端安装浏览器MCP服务器. 一个典型的配置是这样的:

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": [
        "@agent-infra/mcp-server-browser@latest"
      ]
    }
  }
}
在 VS 代码中安装

您也可以使用 VS 代码 CLI 安装浏览器 MCP 服务器 :

# For VS Code
code --add-mcp '{"name":"browser","command":"npx","args":["@agent-infra/mcp-server-browser@latest"]}'

安装后, 浏览器 MCP 服务器将可用 VS 代码中的您的 GitHub 副驾驶代理 .

在光标中安装

转到 Cursor Settings - > (中文) MCP - > (中文) Add new MCP Server。您喜欢的名称,使用 command 带有命令的类型 npx @agent-infra/mcp-server-browser。也可以通过点击来校验配置或添加类似参数的命令 Edit。 。 。 .

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": [
        "@agent-infra/mcp-server-browser@latest"
      ]
    }
  }
}
在 Windsurf 安装

跟随Windsuff MCP 文档。使用以下配置:

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": [
        "@agent-infra/mcp-server-browser@latest"
      ]
    }
  }
}
在 Claude 桌面中安装

跟随 MCP 安装 指南,使用以下配置:

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": [
        "@agent-infra/mcp-server-browser@latest"
      ]
    }
  }
}

远程( SSE / 可流 HTTP)

同时使用 --port $your_port 启动浏览器mcp的参数可以被转换为SSE和可流式HTTP服务器.

# normal run remote mcp server
npx @agent-infra/mcp-server-browser --port 8089

# run with DISPLAY environment for VNC or other virtual display
DISPLAY=:0 npx @agent-infra/mcp-server-browser --port 8089

您可以使用两个 MCP 服务器远程端点中的一个 :

  • 可流取的 HTTP( 建议): http://127.0.0.1::8089/mcp
  • SSE : (英语) http://127.0.0.1::8089/sse

然后在MCP客户端配置中设置 url 至SSE 端点 :

{
  "mcpServers": {
    "browser": {
      "url": "http://127.0.0.1::8089/sse"
    }
  }
}

url 转到可流式 HTTP :

{
  "mcpServers": {
    "browser": {
      "type": "streamable-http", // If there is MCP Client support
      "url": "http://127.0.0.1::8089/mcp"
    }
  }
}

纪念电话

如果您的MCP客户端是基于JavaScript / TypeScript开发的,可以直接使用进程内调用来避免要求您的用户安装命令行界面来使用浏览器MCP.

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';

// type: module project usage
import { createServer } from '@agent-infra/mcp-server-browser';
// commonjs project usage
// const { createServer } = await import('@agent-infra/mcp-server-browser')

const client = new Client(
  {
    name: 'test browser client',
    version: '1.0',
  },
  {
    capabilities: {},
  },
);

const server = createServer();
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();

await Promise.all([
  client.connect(clientTransport),
  server.connect(serverTransport),
]);

// list tools
const result = await client.listTools();
console.log(result);

// call tool
const toolResult = await client.callTool({
  name: 'browser_navigate',
  arguments: {
    url: 'https://www.google.com',
  },
});
console.log(toolResult);

配置

浏览器 MCP 服务器支持以下参数 。 可在上面的JSON配置中提供,作为 "args" 列表 :

> npx @agent-infra/mcp-server-browser@latest -h
  -V, --version              output the version number
  --browser <browser>        browser or chrome channel to use, possible values: chrome, edge, firefox.
  --cdp-endpoint <endpoint>  CDP endpoint to connect to, for example "http://127.0.0.1:9222/json/version"
  --ws-endpoint <endpoint>   WebSocket endpoint to connect to, for example "ws://127.0.0.1:9222/devtools/browser/{id}"
  --executable-path <path>   path to the browser executable.
  --headless                 run browser in headless mode, headed by default
  --host <host>              host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.
  --port <port>              port to listen on for SSE and HTTP transport.
  --proxy-bypass <bypass>    comma-separated domains to bypass proxy, for example ".com,chromium.org,.domain.com"
  --proxy-server <proxy>     specify proxy server, for example "http://myproxy:3128" or "socks5://myproxy:8080"
  --user-agent <ua string>   specify user agent string
  --user-data-dir <path>     path to the user data directory.
  --viewport-size <size>     specify browser viewport size in pixels, for example "1280, 720"
  --output-dir <path>        path to the directory for output files
  --vision                   Run server that uses screenshots (Aria snapshots are used by default)
  -h, --help                 display help for command

运行时配置

浏览器运行时间需要配置 Viewport Size, (中文(简体) ), Vision Model Coordinate Factors,以及 User Agent。这些可以通过相应的 HTTP 头来传递 :

页眉说明
x-viewport-size浏览器视图大小, 格式 : width,height 用逗号分隔
x-vision-factors远景模型坐标系统因子,格式: x_factor,y_factor 用逗号分隔
x-user-agent用户代理字符串, 如果未指定, 默认为系统用户代理

说明: 标题为不区分大小写.

示例

x-viewport-size: 1920,1080
x-vision-factors: 1.0,1.0
x-user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36

夹克

我们统一部署 VNC 和 MCP 在单一的 URL 端点下, Dockerfile 和 DockerHub 图像将一起发布! 视频

API 密码

工具

工具名称说明参数
browser_click在使用工具前单击页面上的元素 browser_get_clickable_elements 以获取元素索引,但不调用 browser_get_clickable_elements 多次数指数 (数目,可选): 要点击的元素索引
browser_close任务完成后关闭浏览器, 不再需要浏览器
browser_close_tab关闭当前标签
browser_evaluate在浏览器控制台执行 JavaScript脚本 (字符串, 需要): JavaScript 代码执行, () {} / * 代码 */}
browser_form_input_fill在使用工具前填入输入字段, 必须提供“ 索引” 或“ 选择器 ”选择器 (字符串,可选):用于输入字段的 CSS 选择器,优先使用索引,如果不提供索引,则使用选择器
指数 (数目,可选): 填充要素索引
价值 (字符串,要求): 要填充的值
清除 (布尔,可选): 在填充前是否清除已存在的文本
browser_get_clickable_elements在当前页面上获取可点击或可徘徊或可选择的元素,不要多次调用此工具
browser_get_download_list获取已下载文件列表
browser_get_markdown获取当前页面的下标内容
browser_get_text获取当前页面的文本内容
browser_go_back回到上一页
browser_go_forward转到下一页
browser_hover隐藏页面中的元素, 必须提供“ 索引” 或“ 选择器 ”指数 (数目,可选): 悬浮元素索引
选择器 (字符串,可选):用于元素徘徊的 CSS 选择器
browser_navigate导航到 URLurl 密码 (字符串,要求):
browser_new_tab打开新标签url 密码 (字符串, 需要): 要打开新标签的 URL
browser_press_key按键盘上的键键 (字符串,要求): 要按键或生成的字符名称, 如 Enter, Tab, Escape, Backspace, 删除, 插入, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, ArrowLeft, ArrowRight, ArrowUp, ArrowDown, PageUp, PageDown, Home, End, ShiftLeft, ShiftRight, ControlLeft, ControlRight, AltLeft, AltRight, MetaLeft, MetaRight, CapsLock, PrintScreen, ScrollLock, Pause, CaseMenu
browser_read_links获取当前页面上的所有链接
browser_screenshot取当前页面的截图或特定元素名称 (弦,可选): 截图名称
选择器 (字符串,可选):用于元素截取的 CSS 选择器
指数 (数字,可选):用于截图的元素索引
宽度 (数目,可选): 在像素中的宽度( 默认: 视图宽度)
高度 (数目,可选): 在像素中的高度( 默认: 视图高度)
全页 (布尔,可选): 全页截图( 默认: 假)
突出显示 (布尔,可选): 突出显示元素
browser_scroll滚动页面金额 (数目,可选): 要滚动的像素( 正向下, 负向上), 如果不提供数量, 滚动到页面底端
browser_select在页面上选择一个带有索引的元素, 必须提供“ 索引” 或“ 选择器 ”指数 (数目,可选): 要选择的元素索引
选择器 (字符串,可选):用于选择元素的 CSS 选择器
价值 (字符串,要求): 要选择的值
browser_switch_tab切换到特定标签指数 (数量,需要):要切换到的标签索引
browser_tab_list获取标签列表
browser_vision_screen_capture查看当前页面的视图模式
browser_vision_screen_click点击页面上带有视觉和快照的鼠标左键,在调用此工具前,您应该调用 browser_vision_screen_capture 仅一次,倒向 browser_click 如果失败因素 (阵列,可选):用于协调空间正常化的远景模型坐标系统缩放因子[width factor,high factor]. 变换公式: x = (x model * 屏幕 width * 宽度 factor) / 宽度 factory y = (y model * 屏幕 高度 factor) / 高度 factor 其中x model,y model是常态化的模型输出坐标(0-1),screen width/高度是屏幕维度,宽度 因素/高度 factor是量化因子,如果因子未知,请留入空. 大多数模型不需要这个参数.
页:1 (数量,需要): X 像素坐标
尔 (数目,需要):Y像素坐标

资源

资源名称URI 模式说明MIME 类型
浏览器控制台日志console://logs文本/说明
浏览器下载download://{name}基于文件扩展名的自动标识
浏览器屏幕截图screenshot://{name}基于文件扩展名的自动标识

发展

查阅 http://127.0.0.1:6274/:

npm run dev

扩展 CLI 条目

#!/usr/bin/env node

const {
  BaseLogger,
  setConfig,
  addMiddleware,
} = require('@agent-infra/mcp-server-browser/request-context');

class CustomLogger extends BaseLogger {
  info(...args) {
    console.log('custom');
    console.log(...args);
  }
}

addMiddleware((req, res, next) => {
  console.log('req', req.headers);
  next();
});

setConfig({
  logger: new CustomLogger(),
});

// start server
require('@agent-infra/mcp-server-browser/index');

版本与发布记录

@agent-infra/mcp-server-browser 共发布 80 个版本,首次发布于 2025/04/01;过去 12 个月发布了 6 个版本。

版本发布日期距今
1.2.29latest2025/12/1510 个月前
1.2.282025/12/1210 个月前
1.2.272025/12/1210 个月前
1.2.262025/11/2811 个月前
1.2.252025/11/2811 个月前
1.2.242025/11/2011 个月前

其他发布通道:beta → 1.2.16-beta.0。

关于 @agent-infra/mcp-server-browser 的常见问题

@agent-infra/mcp-server-browser 是什么?

用于浏览器的 MCP 服务器

如何安装 @agent-infra/mcp-server-browser?

在项目目录运行 npm install @agent-infra/mcp-server-browser,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-server-browser,可以用 npx mcp-server-browser 直接运行。

@agent-infra/mcp-server-browser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agent-infra/mcp-server-browser 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@agent-infra/mcp-server-browser 可以商用吗?

@agent-infra/mcp-server-browser 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@agent-infra/mcp-server-browser 的下载量有多少?

根据 npm 官方下载统计,@agent-infra/mcp-server-browser 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,698 次,日均约 90 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agent-infra/mcp-server-browser 还在维护吗?

最新版本 1.2.29 发布于 2025/12/15(10 个月前);至今共发布 80 个版本,其中过去 12 个月发布了 6 个;首次发布于 2025/04/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。