网页内容提取服务

基于MCP协议的网页内容提取服务,可将任何URL的网页内容转换为干净的Markdown或纯文本格式。

  • by iNetworkX
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 iNetworkX/web-reader-mcp

使用说明

网络阅读器mcp

MCP服务器,获取URL并提取干净、可读的内容,如Markdown或纯文本。建立在 模型上下文协议 因此,人工智能助手(Claude、Cline、OpenCode等)可以阅读网页。

特性

  • 使用从任何URL提取主要文章内容 可读性
  • 通过以下方式将HTML转换为干净的Markdown 关闭
  • 提取元数据(标题、作者、发布日期、Open Graph标签)
  • 可选地从页面中提取所有链接
  • 可选的JavaScript渲染 剧作家 适用于SPA和JS密集型网站
  • 暴露单个 webReader MCP流式HTTP传输工具

快速开始

bun install
bun run dev

服务器启动于 http://localhost:3001 (或 PORT 有人)。

工具: webReader

参数 类型 默认值 说明
url string (必填) -- 要获取的URL
return_format "markdown" "text" "markdown"
timeout number (1–60) 20 请求超时(秒)
retain_images boolean true 在输出中保留图像引用
with_links_summary boolean false 包括所有链接的摘要
render_js boolean false 使用Playwright渲染JavaScript

示例响应

{
  "title": "Article Title",
  "url": "https://example.com/article",
  "content": "# Article Title\n\nArticle content in markdown...",
  "excerpt": "A brief summary of the article.",
  "byline": "Author Name",
  "siteName": "Example",
  "publishedTime": "2025-01-15T10:00:00Z",
  "metadata": { "og:description": "..." }
}

MCP客户端配置

克劳德桌面版

{
  "mcpServers": {
    "web-reader": {
      "url": "http://localhost:3001/mcp"
    }
  }
}

Cline(VS代码)

{
  "mcpServers": {
    "web-reader": {
      "url": "http://localhost:3001/mcp",
      "transportType": "streamable-http"
    }
  }
}

JavaScript渲染(可选)

默认情况下,页面是通过简单的HTTP客户端获取的(got).对于JavaScript密集型网站(SPA、React应用程序),启用Playwright:

bun add playwright
npx playwright install chromium

然后设置 render_js: true 调用工具时。请注意,Playwright每个浏览器选项卡需要约300-500 MB RAM。

脚本

命令 描述
bun run dev 具有热重载功能的开发服务器
bun run build 编译TypeScript
bun run start 生产服务器(node dist/index.js)
bun run typecheck 不发射的类型检查

码头工人

docker compose up --build

在启用健康检查的情况下在端口3000上运行。

建筑

src/
├── index.ts              # Express server + MCP session management
├── types.ts              # Shared TypeScript interfaces
├── tools/
│   └── web-reader.ts     # Tool registration (Zod schema + handler)
└── lib/
    ├── fetcher.ts        # HTTP fetching (got)
    ├── fetcher-playwright.ts  # JS rendering (Playwright, optional)
    ├── parser.ts         # HTML → structured content (Readability)
    └── converter.ts      # HTML → Markdown (Turndown)

技术栈

  • 运行时:Node.js(ES2022)
  • 包管理器:Bun
  • HTTP服务器:快递
  • MCP-SDK: @modelcontextprotocol/sdk 第1版
  • HTML解析:jsdom+可读性
  • 标记语言:拒绝
  • HTTP客户端:得到
  • JS渲染:剧作家(可选)

许可证

麻省理工学院