A powerful MCP (Model Context Protocol) server that enables Claude and other LLMs to read and parse web content. Bypasses access restrictions for WeChat articles, paywalled sites, and Cloudflare-protected pages.
- 🚀 Multi-engine: Jina Reader API, local parser, and Playwright browser
- 🔄 Smart fallback: Auto-switches Jina → Local → Playwright browser
- 🌐 Bypass restrictions: Cloudflare, CAPTCHAs, access controls
- 📦 Batch processing: Fetch multiple URLs simultaneously
- 📝 Markdown output: Automatic conversion to clean Markdown
npm install -g mcp-web-readerNote: Chromium browser (~100-200MB) will be automatically downloaded. This is required for:
- WeChat articles (need browser rendering)
- Cloudflare-protected sites
- JavaScript-heavy sites
- CAPTCHA/access restrictions
Download may take 1-5 minutes depending on network speed.
git clone https://github.com/Gracker/mcp-web-reader.git
cd mcp-web-reader
npm install
npm run buildAdd to your config file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"web-reader": {
"command": "mcp-web-reader"
}
}
}claude mcp add web-reader -- mcp-web-reader
claude mcp listIn Claude:
- "Fetch content from https://example.com"
- "Get content using browser for https://mp.weixin.qq.com/..."
- "Fetch multiple URLs: [url1, url2, url3]"
- WeChat articles (mp.weixin.qq.com)
- Paywalled sites (NYT, Time Magazine, etc.)
- Cloudflare-protected sites
- JavaScript-heavy sites
- CAPTCHA-protected sites
fetch_url- Smart fetching with automatic fallbackfetch_url_with_jina- Force Jina Readerfetch_url_local- Force local parsingfetch_url_with_browser- Force browser mode (for restricted sites)fetch_multiple_urls- Batch URL fetching
Intelligent fallback:
URL Request → Jina Reader → Local Parser → Playwright Browser
Auto-detects restrictions and switches to browser for:
- HTTP status codes: 403, 429, 503, 520-524
- Keywords: Cloudflare, CAPTCHA, Access Denied
- Content patterns: Security checks, human verification
npm run dev # Development with auto-rebuild
npm run build # Build production version
npm start # Test runMIT License