网页内容提取工具

一个快速、高效的网页内容提取工具,将网页转换为干净的Markdown格式,适用于AI代理、IDE和LLM管道。

  • by just-every
  • TypeScript
  • 本地部署
  • 163 星标
  • 更新于
在 GitHub 查看 just-every/mcp-read-website-fast

使用说明

@只是每个/mcp都能快速阅读网站

为AI代理提供快速、令牌高效的web内容提取-将网站转换为干净的Markdown。

概述

现有的MCP网络爬虫速度慢,消耗大量令牌。这会暂停开发过程,并提供不完整的结果,因为LLM需要解析整个网页。

此MCP包在本地获取网页,去除噪声,并将内容转换为干净的Markdown,同时保留链接。专为Claude Code、IDE和LLM管道设计,具有最小的令牌占用空间。在本地以最小的依赖性抓取站点。

注: 此软件包现在使用 @只是每一次/爬行 因为它的核心爬行和markdown转换功能。

特性

  • 快速启动 使用官方MCP SDK进行延迟加载以获得最佳性能
  • 内容提取 使用Mozilla可读性(与Firefox阅读器视图相同)
  • HTML到Markdown 使用Turndown+GFM支持进行转换
  • 智能缓存 使用SHA-256哈希URL
  • 礼貌地爬行 支持robots.txt和速率限制
  • 并发取数 具有可配置的深度爬行功能
  • 流优先设计 内存使用率低
  • 链接保存 用于知识图谱
  • 可选分块 用于下游加工

安装

克劳德代码

claude mcp add read-website-fast -s user -- npx -y @just-every/mcp-read-website-fast

VS代码

code --add-mcp '{"name":"read-website-fast","command":"npx","args":["-y","@just-every/mcp-read-website-fast"]}'

光标

cursor://anysphere.cursor-deeplink/mcp/install?name=read-website-fast&config=eyJyZWFkLXdlYnNpdGUtZmFzdCI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBqdXN0LWV2ZXJ5L21jcC1yZWFkLXdlYnNpdGUtZmFzdCJdfX0=

JetBrains集成开发环境

设置→ 工具→ AI助手→ 模型上下文协议(MCP)→ Add

选择“作为JSON”并粘贴:

{"command":"npx","args":["-y","@just-every/mcp-read-website-fast"]}

或者,在聊天窗口中,键入/添加并填写相同的JSON——这两条路径都可以在一个步骤中到达服务器。 

原始JSON(适用于任何MCP客户端)

{
  "mcpServers": {
    "read-website-fast": {
      "command": "npx",
      "args": ["-y", "@just-every/mcp-read-website-fast"]
    }
  }
}

将其放入客户端的mcp.json中(例如.vcode/mcp.json、~/.cursor/mcp.json或Claude的.mcp.json)。

特性

  • 快速启动 使用官方MCP SDK进行延迟加载以获得最佳性能
  • 内容提取 使用Mozilla可读性(与Firefox阅读器视图相同)
  • HTML到Markdown 使用Turndown+GFM支持进行转换
  • 智能缓存 使用SHA-256哈希URL
  • 礼貌地爬行 支持robots.txt和速率限制
  • 并发取数 具有可配置的深度爬行功能
  • 流优先设计 内存使用率低
  • 链接保存 用于知识图谱
  • 可选分块 用于下游加工

可用工具

  • read_website -获取网页并将其转换为干净的markdown
    • 参数:
      • url (必需):要获取的HTTP/HTTPS URL
      • pages (可选):要爬网的最大页数(默认值:1,最大值:100)

可用资源

  • read-website-fast://status -获取缓存统计信息
  • read-website-fast://clear-cache -清除缓存目录

开发用途

安装

npm install
npm run build

单页获取

npm run dev fetch https://example.com/article

深度爬行

npm run dev fetch https://example.com --depth 2 --concurrency 5

输出格式

# Markdown only (default)
npm run dev fetch https://example.com

# JSON output with metadata
npm run dev fetch https://example.com --output json

# Both URL and markdown
npm run dev fetch https://example.com --output both

CLI选项

  • -p, --pages <number> -要爬网的最大页数(默认值:1)
  • -c, --concurrency <number> -最大并发请求数(默认值:3)
  • --no-robots -忽略robots.txt
  • --all-origins -允许跨源爬行
  • -u, --user-agent <string> -自定义用户代理
  • --cache-dir <path> -缓存目录(默认:.Cache)
  • -t, --timeout <ms> -请求超时(毫秒)(默认值:30000)
  • -o, --output <format> -输出格式:json、markdown或两者兼有(默认:markdown)

清除缓存

npm run dev clear-cache

自动重启功能

默认情况下,MCP服务器包括自动重启功能,以提高可靠性:

  • 如果服务器崩溃,则自动重新启动服务器
  • 处理未处理的异常和promise拒绝
  • 实现指数回退(1分钟内最多尝试10次)
  • 记录所有重启尝试以进行监控
  • 优雅地处理停机信号(信号情报、信号终端)

对于不自动重启的开发/调试:

# Run directly without restart wrapper
npm run serve:dev

建筑

mcp/
├── src/
│   ├── crawler/        # URL fetching, queue management, robots.txt
│   ├── parser/         # DOM parsing, Readability, Turndown conversion
│   ├── cache/          # Disk-based caching with SHA-256 keys
│   ├── utils/          # Logger, chunker utilities
│   ├── index.ts        # CLI entry point
│   ├── serve.ts        # MCP server entry point
│   └── serve-restart.ts # Auto-restart wrapper

发展

# Run in development mode
npm run dev fetch https://example.com

# Build for production
npm run build

# Run tests
npm test

# Type checking
npm run typecheck

# Linting
npm run lint

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 提交拉取请求

故障排除

缓存问题

npm run dev clear-cache

超时错误

  • 增加超时时间 -t 旗帜
  • 检查网络连接
  • 验证URL是否可访问

未提取的内容

  • 一些网站阻止自动访问
  • 尝试使用自定义用户代理 -u 旗帜
  • 检查网站是否需要JavaScript(不支持)

许可证

麻省理工学院