IW

inetworkx/web-reader-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

3 stars 7 forks 质量 62 趋势 10

MCP server that fetches URLs and extracts clean, readable content as Markdown or plain text. Built on the Model Context Protocol so AI assistants (Claude, Cline, OpenCode, etc.) can read web pages.

概览

MCP server that fetches URLs and extracts clean, readable content as Markdown or plain text. Built on the Model Context Protocol so AI assistants (Claude, Cline, OpenCode, etc.) can read web pages. - Extracts main article content from any URL using Readability - Converts HTML to clean Markdown via Turndown - Extracts metadata (title, author, publish date, Open Graph tags) - Optionally extracts all links from the page - Optional JavaScript rendering via Playwright for SPAs and JS-heavy sites - Exposes a single webReader tool over MCP Streamable HTTP transport The server starts on http://localhost:3001 (or PORT env var). By default, pages are fetched with a simple HTTP client (got). For JavaScript-heavy sites (SPAs, React apps), enable Playwright: Then set render_js: true when calling the tool. Note that Playwright requires ~300–500 MB RAM per browser tab. Runs on port 3000 with health checks enabled. - : Node.

README

以下为原文 README 节选,完整内容请查看原文。

web-reader-mcp

MCP server that fetches URLs and extracts clean, readable content as Markdown or plain text. Built on the Model Context Protocol so AI assistants (Claude, Cline, OpenCode, etc.) can read web pages.

Features

  • Extracts main article content from any URL using Readability
  • Converts HTML to clean Markdown via Turndown
  • Extracts metadata (title, author, publish date, Open Graph tags)
  • Optionally extracts all links from the page
  • Optional JavaScript rendering via Playwright for SPAs and JS-heavy sites
  • Exposes a single webReader tool over MCP Streamable HTTP transport

Quick Start

bun install
bun run dev

The server starts on http://localhost:3001 (or PORT env var).

Tool: webReader

Parameter Type Default Description
url string (required) — URL to fetch
return_format "markdown" | "text" "markdown" Output format
timeout number (1–60) 20 Request timeout in seconds
retain_images boolean true Keep image references in output
with_links_summary boolean false Include a summary of all links
render_js boolean false Use Playwright to render JavaScript

Example Response

{
  "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 Client Configuration

Claude Desktop

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

Cline (VS Code)

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

JavaScript Rendering (Optional)

By default, pages are fetched with a simple HTTP client (got). For JavaScript-heavy sites (SPAs, React apps), enable Playwright:

bun add playwright
npx playwright install chromium

Then set render_js: true when calling the tool. Note that Playwright requires ~300–500 MB RAM per browser tab.

Scripts

Command Description
bun run dev Development server with hot reload
bun run build Compile TypeScript
bun run start Production server (node dist/index.js)
bun run typecheck Type-check without emitting

Docker

docker compose up --build

Runs on port 3000 with health checks enabled.

Architecture

src/
├── index.ts              # Express server + MCP session management
├── types.ts              # Shared TypeScript interfaces
├── tools/
在 GitHub 查看完整 README

安装

npx playwright install chromium
新手?先看 mcpskill.org 教程 →

配置

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