使用说明

项目简介

Web Browser MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它利用 Playwright 驱动 headless 浏览器,为大型语言模型(LLM)提供强大的网页浏览和信息提取能力。通过标准化的 MCP 接口,LLM 可以安全、灵活地与网页内容进行交互,实现诸如信息检索、网页内容分析、自动化操作等高级功能。

主要功能点

  • headless网页浏览: 支持在后台静默访问任何网站,并绕过SSL证书验证。
  • 全页面内容提取: 获取包括动态加载内容在内的完整HTML代码。
  • 多标签页管理: 支持创建、切换和管理多个浏览器标签页。
  • 丰富的网页交互工具:
    • 提取网页文本内容(支持CSS选择器)
    • 点击网页元素(支持CSS选择器)
    • 在表单中输入文本(支持CSS选择器)
    • 截取网页截图(全页或指定元素)
    • 提取网页链接(支持按模式过滤)
    • 网页滚动
    • 执行JavaScript代码
    • 刷新页面
    • 等待页面加载完成
  • 资源自动管理: 自动清理长时间不使用的浏览器资源,节省系统资源。
  • 增强的页面信息: 获取当前页面的详细元数据。

安装步骤

  1. 环境准备: 确保已安装 Python 3.10 或更高版本。
  2. 安装依赖: 打开终端,执行以下命令安装 MCP SDK 和 Playwright:
    pip install mcp playwright
  3. 安装浏览器: Playwright 需要浏览器驱动,执行以下命令安装 Chromium 浏览器:
    playwright install chromium

服务器配置

要将 Web Browser MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要在客户端的配置文件中添加服务器配置信息。以 'claude_desktop_config.json' 为例,配置信息如下:

{
  "mcpServers": {
    "web-browser": {
      "command": "python",
      "args": [
        "/path/to/your/server.py"  // 将 "/path/to/your/server.py" 替换为 server.py 脚本的实际路径
      ]
    }
  }
}

配置参数说明:

  • '"web-browser"': 服务器名称,客户端通过此名称引用该服务器。可以自定义,保持与客户端配置一致即可。
  • '"command": "python"': 启动服务器的命令,这里使用 Python 解释器。
  • '"args"': 启动命令的参数列表。
    • '"/path/to/your/server.py"': 请务必替换为 'server.py' 脚本在您本地文件系统中的绝对路径。 例如,如果 'server.py' 位于 '/Users/yourname/mcp-web-browser/src/mcp_web_browser/server.py',则应填写此完整路径。

基本使用方法

配置完成后,MCP 客户端(如 Claude Desktop)即可通过 'web-browser' 这个服务器名称调用 Web Browser MCP Server 提供的各项工具。

例如,在 Claude Desktop 中,你可以通过自然语言指令,结合服务器提供的工具来浏览网页、提取信息或进行其他网页交互操作。 具体的工具调用方式和参数,请参考仓库 README.md 文件中 “Tool Parameters” 部分的详细说明。

示例工具调用 (非 Claude Desktop 实际代码,仅为演示工具使用方式):

# 假设客户端已经连接到名为 "web-browser" 的 MCP 服务器

# 浏览到指定网页
page_content = web_browser.browse_to(url="https://www.example.com")
print(page_content)

# 提取网页标题
page_title = web_browser.extract_text_content(selector="title")
print(page_title)

# 点击网页上的某个元素
result = web_browser.click_element(selector="#submit-button")
print(result)

# 获取当前页面所有链接
links = web_browser.get_page_links()
print(links)

请注意,以上代码仅为演示如何通过工具名称和参数调用服务器功能,实际在 MCP 客户端中的调用方式会根据客户端的具体实现而有所不同。请参考您使用的 MCP 客户端的文档来了解如何正确调用 MCP 服务器的工具。

信息

分类

网页与API