网页内容抓取服务器

一个基于浏览器自动化、OCR和多方法提取的网页内容抓取服务器,适用于需要JavaScript渲染或防爬技术的网页内容获取与处理。

  • by MaartenSmeets
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 MaartenSmeets/mcp-server-fetch

使用说明

获取MCP服务器

一种模型上下文协议服务器,使用浏览器自动化、OCR和多种提取方法提供web内容获取功能。此服务器使LLM能够从网页中检索和处理内容,即使是那些需要JavaScript渲染或使用防止简单抓取的技术的网页。

可用工具

  • fetch -使用浏览器自动化和多方法提取(包括OCR)从互联网获取URL。
    • url (字符串,必填):要获取的URL
    • raw (boolean,可选):获取请求页面的实际HTML内容,不进行简化(默认值:false)

服务器使用多种方法提取内容:

  1. 浏览器自动化,未检测到chromedriver
  2. 使用带有布局检测的pytesseract进行OCR
  3. 使用请求进行HTML提取/BeautifulSoup
  4. 文档解析(PDF、DOCX、PPTX)
  5. 原始降价转换方法

服务器使用复杂的评分系统来选择最佳结果,考虑:

  1. 基础内容得分(最高50分)

    • 根据内容长度获得的分数(每100个字符1分,最多50分)
    • 惩罚极短的内容(<100个字符)
  2. 结构奖励(最高20分)

    • 对结构良好的段落内容进行评分
    • 更多段落表示更好的内容组织
  3. 质量处罚

    • 检测并惩罚错误消息
    • 降低包含错误指示符的内容的分数
    • 验证内容结构和可读性

评分系统确保选择最可靠和高质量的内容,无论使用何种提取方法。调试日志可用于跟踪评分决策。

鼓励

  • 获取
    • 使用浏览器自动化获取URL并将其内容提取为markdown
    • 论据:
      • url (字符串,必填):要获取的URL

安装

使用Docker

安装并运行 mcp-server-fetch 使用Docker,请按照以下步骤操作:

  1. 构建Docker镜像:

    docker build -t mcp-server-fetch .
    
  2. 运行Docker容器:

    docker run --rm -i mcp-server-fetch
    

配置

配置Roo代码或Claude应用程序

添加到您的Claude设置中:

{
  "mcpServers": {
    "fetch": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "mcp-server-fetch"
      ],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

定制-用户代理

默认情况下,根据请求是来自模型(通过工具)还是由用户发起(通过提示) 服务器将使用用户代理

ModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers)

或

ModelContextProtocol/1.0 (User-Specified; +https://github.com/modelcontextprotocol/servers)

这可以通过添加参数进行自定义 --user-agent=YourUserAgent 到 args 配置中的列表。

浏览器自动化和OCR

服务器现在包括高级内容提取功能:

  • 自动处理cookie同意横幅
  • 全页截图
  • 使用pytesseract进行OCR布局检测
  • 多种提取方法,自动选择最佳结果

贡献

我们鼓励捐款以帮助扩展和改进mcp服务器获取。无论您是想添加新工具、增强现有功能还是改进文档,您的意见都是有价值的。

有关其他MCP服务器和实现模式的示例,请参阅: https://github.com/modelcontextprotocol/servers

欢迎拉取请求!请随时贡献新想法、错误修复或增强功能,使mcp服务器fetch更加强大和有用。

许可证

mcp服务器获取是根据MIT许可证授权的。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。