Web Reader
MCP Web Reader
一个自托管的 MCP (Model Context Protocol) 服务器,把网页内容读取并转换为 Markdown,供 Claude、Cursor 等 MCP 客户端使用。零第三方付费 API 依赖。
功能特点
🔌 两个工具:
read_url(单个)/read_urls(批量,并发上限 3)🛤️ 专用通道:GitHub(raw README / Issue API)、arXiv(Atom API)、PDF 交接
📄 统一提取:本地 fetch + Mozilla Readability + turndown,代码语言 / 表格 / 链接 / og: 元数据保真
🌐 站点适配:微信公众号、知乎、掘金等按 host 优先选择器
🧯 降级策略:本地解析 → 检测到访问限制(403 / 429 / Cloudflare 等)→ Playwright 浏览器渲染
⚡ 缓存:文件系统缓存,按 host 分级 TTL;失败 URL 短期负缓存;自动淘汰
🔁 重试:5xx / 429 / 网络错误指数退避重试
🛡️ SSRF 防护:拦截私有 IP / 云元数据端点 / 危险 host
安装
git clone https://github.com/PPParticle/web-reader.git
cd web-reader
npm install
npm run build
npx playwright install chromium # 可选,用于 JS 渲染 / 反爬降级配置
在任意 MCP 客户端的配置中添加(以 Claude Desktop 为例):
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: 自行查阅所用客户端的配置路径
{
"mcpServers": {
"web-reader": {
"command": "node",
"args": ["/absolute/path/to/web-reader/dist/index.js"]
}
}
}环境变量(可选):
变量 | 作用 |
| 提升 GitHub API 限额(60 → 5000/小时);不设也能用公开仓库 |
| 覆盖缓存目录(默认 |
工具
read_url
读取单个 URL 并转为 Markdown。
参数 | 类型 | 默认 | 说明 |
| string | (必填) | http/https URL |
| enum |
|
|
| bool |
| 为 |
| bool |
| 为 |
read_urls
批量读取(最多 10 个 URL),参数同上(urls 数组 + engine + no_cache),单条失败不影响其他。
贡献
欢迎提交 Pull Request。
许可证
MIT License
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PPParticle/web-reader'
If you have feedback or need assistance with the MCP directory API, please join our Discord server