npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-web-reader

v2.2.0

Published

MCP server for reading web content with Jina Reader and local parser support

Readme

MCP Web Reader

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.

简体中文

Features

  • 🚀 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
  • 🔌 Transport compatibility: stdio + Streamable HTTP (optional legacy SSE compatibility mode)

Installation

npm install -g mcp-web-reader

Note: 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.

From Source

git clone https://github.com/Gracker/mcp-web-reader.git
cd mcp-web-reader
npm install
npm run build

Configuration

Claude Desktop

Add 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 Code

claude mcp add web-reader -- mcp-web-reader
claude mcp list

Streamable HTTP (Remote Deployment)

Start server in Streamable HTTP mode:

MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=3000 npm run start:http

Optional environment variables:

  • MCP_HTTP_PATH (default: /mcp)
  • MCP_ENABLE_LEGACY_SSE=true to expose deprecated /sse + /messages endpoints

Codex MCP config (HTTP):

[mcp_servers.web-reader]
type = "http"
url = "https://your-domain.com/mcp"
bearer_token_env_var = "WEB_READER_TOKEN"

Usage

In Claude:

  • "Fetch content from https://example.com"
  • "Get content using browser for https://mp.weixin.qq.com/..."
  • "Fetch multiple URLs: [url1, url2, url3]"

Supported Sites

  • WeChat articles (mp.weixin.qq.com)
  • Paywalled sites (NYT, Time Magazine, etc.)
  • Cloudflare-protected sites
  • JavaScript-heavy sites
  • CAPTCHA-protected sites

Tools

  • fetch_url - Smart fetching with automatic fallback
  • fetch_url_with_jina - Force Jina Reader
  • fetch_url_local - Force local parsing
  • fetch_url_with_browser - Force browser mode (for restricted sites)
  • fetch_multiple_urls - Batch URL fetching

Architecture

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

Development

npm run dev    # Development with auto-rebuild
npm run build  # Build production version
npm start      # Test run
npm run start:http  # Run Streamable HTTP server

License

MIT License