网页内容提取工具

WebLens MCP是一个基于Playwright和Mozilla Readability的网页内容提取工具,能够渲染JavaScript-heavy的SPA页面,提取可读内容并生成Markdown文件。

  • by Bariskau
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Bariskau/weblens-mcp

使用说明

WebLens MCP

用于AI代理的Web抓取和内容提取MCP服务器。 通过无头Chromium渲染任何URL,包括JavaScript密集的SPA 剧作家,提取可读内容 Mozilla可读性,捕获页面的导航链接,在本地下载图像,并返回一个干净的markdown文件。适用于Claude、Claude Code、Cursor、Copilot、VS Code、Codex和任何兼容MCP的客户端。

npx -y weblens-mcp --以本地身份运行 标准 MCP服务器。Playwright在安装时下载自己的Chromium,所以没有其他设置。

主要特点

  • 单一工具 --一个 fetch_page 调用执行所有操作:渲染、提取、下载、返回
  • 捆绑浏览器 --Chromium由Playwright自动安装;无需Chrome系统
  • Markdown输出 --返回本地 .md 嵌入图像作为本地路径的文件路径
  • 文章摘录 --用途 Mozilla可读性 用于清洁内容
  • 导航链接 --捕获网站的菜单/侧边栏/标题链接(同一主机,重复数据消除)
  • 资产下载 --页面图像会自动下载到本地tmp目录
  • 自动清理 --下载的文件在6小时后被清除

需求

  • Node.js 20或更新版本

就是这样。安装时,Playwright会自动下载匹配的Chromium版本(约90 MB,全局缓存并在项目之间重用)。无需Chrome系统。

浏览器

你通常不需要做任何事情——Chromium是在 npm install /首先 npx。如果跳过自动下载(脱机、防火墙或 --ignore-scripts),您有两个选择:

# 1. Install the bundled browser manually with the Playwright CLI
npx playwright install chromium
# 2. Or point WebLens at a Chrome/Chromium you already have
CHROMIUM_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

如果 CHROMIUM_PATH 如果未设置且缺少捆绑浏览器,WebLens也会回退到标准操作系统安装位置中的任何Chrome/Chromium/Edge。

入门

标准配置 适用于大多数MCP客户端(不需要环境变量——Chromium是捆绑的):

{
  "mcpServers": {
    "weblens": {
      "command": "npx",
      "args": ["-y", "weblens-mcp"]
    }
  }
}

添加一个 "env": { "CHROMIUM_PATH": "..." } 阻止仅使用特定浏览器,而不是捆绑的Chromium。

Claude Code
claude mcp add weblens -- npx -y weblens-mcp

或添加到您的项目 .mcp.json:

{
  "mcpServers": {
    "weblens": {
      "command": "npx",
      "args": ["-y", "weblens-mcp"]
    }
  }
}
Claude Desktop

遵循MCP安装 引导,使用上面的标准配置。

Codex

创建或编辑 ~/.codex/config.toml:

[mcp_servers.weblens]
command = "npx"
args = ["-y", "weblens-mcp"]

# Optional — only to override the bundled Chromium:
# [mcp_servers.weblens.env]
# CHROMIUM_PATH = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
Cursor

首选 Cursor Settings → MCP → Add new MCP Server.使用 command 使用命令键入 npx -y weblens-mcp.

VS Code
code --add-mcp '{"name":"weblens","command":"npx","args":["-y","weblens-mcp"]}'

配置

环境变量 描述 默认值
CHROMIUM_PATH 覆盖浏览器。默认情况下,WebLens使用Playwright捆绑的Chromium;将此设置为使用特定的Chrome/Chromium/Edge可执行文件。 捆绑铬
INSECURE_TLS 设置为 1 接受自签名证书。 0 (残疾)

浏览器分辨率顺序: CHROMIUM_PATH (如果设置)→ 剧作家捆绑的Chromium→ 在标准操作系统安装位置找到的系统Chrome/Chromium/Edge(/Applications/... 在macOS上, C:\Program Files\... 在Windows上, /usr/bin/... 在Linux上)。

工具

fetch_page

获取并渲染网页。返回包含页面内容的本地markdown文件的绝对路径,其中下载的图像作为本地文件路径嵌入。

参数:

参数 类型 必填 说明
url string yes 目标页面URL

退货: 通往a的绝对路径 .md 系统临时目录中的文件。

示例响应:

/var/folders/lp/.../T/weblens-mcp/327c3fda87ce286848a574982ddd0b7c7487f816.md

生成的标记格式:

# Page Title

Source: https://example.com/article

> Article excerpt or description

Article body text content...

## Navigation

- [Docs](https://example.com/docs)
- [Pricing](https://example.com/pricing)
- [Blog](https://example.com/blog)

## Images

![alt text](/var/folders/lp/.../T/weblens-mcp/abc123.png)
![another image](/var/folders/lp/.../T/weblens-mcp/def456.jpg)

行为:

  • 使用Playwright(无头Chromium)渲染页面
  • 阻止媒体和字体请求以加快加载速度
  • 尽可能使用Mozilla可读性提取文章内容
  • 从以下位置捕获导航链接 nav/header/aside/菜单区域(同一主机,重复数据消除,最多50个)
  • 下载页面图片(跳过小于50x50px的图标)
  • 将带有本地映像路径的markdown写入系统临时目录(<os-tmp>/weblens-mcp/)
  • 超过6小时的文件将自动清理

本地开发

npm install
npm run build
node dist/index.js

运作原理

URL
 └→ Playwright renders page (headless Chromium)
     └→ Extract title, text, HTML, images, navigation links from DOM
         └→ Mozilla Readability extracts clean article content
             └→ Download images to <os-tmp>/weblens-mcp/
                 └→ Compose markdown with local image paths
                     └→ Write .md file, return path

Tmp目录

下载的资产和markdown文件存储在您的系统临时目录中 weblens-mcp/ (例如。 /tmp/weblens-mcp/ 在Linux上, /var/folders/.../T/weblens-mcp/ 在macOS上)。清理会自动运行:

  • 在每一个 fetch_page 通话(限制为每5分钟一次)
  • 删除超过6小时(按时间计算)的文件
  • 不需要外部cron或调度程序

码头工人

{
  "mcpServers": {
    "weblens": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--init",
        "-v", "/tmp/weblens-mcp:/tmp/weblens-mcp",
        "weblens-mcp"
      ]
    }
  }
}

许可证

国际学生委员会