mcpField
F
Fetch MCP Server

Fetch MCP Server

本地服务
github.com/MaartenSmeets浏览器自动化1778 周前更新

关于 Fetch MCP Server

Fetch MCP Server 为 LLM 获取网页并提取内容,也能处理需要 JavaScript 渲染或阻止简单抓取的页面。它结合浏览器自动化、OCR、HTML 提取和文档解析,并对结果评分后选择输出。

主要功能

  1. 01通过浏览器自动化获取 URL
  2. 02使用 OCR 和版面检测提取文本
  3. 03解析 HTML、PDF、DOCX 和 PPTX
  4. 04将提取内容转换为 Markdown
  5. 05评估并选择提取结果
  6. 06支持输出原始 HTML

适用场景

  1. 01获取 JavaScript 渲染页面的内容
  2. 02从网页截图中提取可读文本
  3. 03读取网页上的 PDF 或 Office 文档
  4. 04请求页面的原始 HTML

MCP 相关

该服务向 MCP 客户端提供 fetch 工具,接收 URL 和可选的 raw 参数以返回 HTML;还提供将页面内容提取为 Markdown 的 fetch 提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fetch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Fetch MCP 服务

Fetch MCP Logo

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

可用工具
  • fetch - 使用浏览器自动化和多种提取方法(包括 OCR)从互联网抓取 URL。
    • url(字符串,必填):要抓取的 URL
    • raw(布尔值,可选):如果请求的页面包含 HTML 内容,则获取未经简化的实际 HTML 内容(默认值:false)

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

  1. 使用 undetected-chromedriver 进行浏览器自动化
  2. 使用带布局检测的 pytesseract 进行 OCR
  3. 使用 requests/BeautifulSoup 提取 HTML
  4. 解析文档(PDF、DOCX、PPTX)
  5. 原始 Markdown 转换方法

此服务使用精密的评分系统来选择最佳结果,考量因素包括:

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

    • 根据内容长度加分(每 100 个字符得 1 分,最高 50 分)
    • 对极短内容(少于 100 个字符)进行扣分
  2. 结构加分(最高 20 分)

    • 内容结构良好且包含段落时加分
    • 段落越多,内容组织越好
  3. 质量扣分

    • 检测错误消息并进行扣分
    • 对包含错误指示信息的内容降低评分
    • 验证内容结构和可读性

无论使用哪种提取方法,评分系统都能确保选出最可靠、质量最高的内容。可以使用调试日志跟踪评分决策。

提示词
  • fetch
    • 使用浏览器自动化抓取 URL,并将其内容提取为 Markdown
    • 参数:
      • url(字符串,必填):要抓取的 URL

安装

使用 Docker

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

  1. 构建 Docker 镜像:

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

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

配置

配置 Roo Code 或 Claude App

添加到 Claude 设置中:

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

默认情况下,服务会根据请求是由模型发起的(通过工具),还是由用户发起的(通过提示词),使用相应的 user-agent:

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

或

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

可以在配置的 args 列表中添加参数 --user-agent=YourUserAgent 来自定义此设置。

浏览器自动化和 OCR

此服务现已具备高级内容提取能力:

  • 自动处理 Cookie 同意横幅
  • 捕获整页截图
  • 使用带布局检测的 pytesseract 进行 OCR
  • 使用多种提取方法并自动选择最佳结果

贡献

我们欢迎大家贡献力量,帮助拓展和改进 mcp-server-fetch。无论是添加新工具、增强现有功能,还是改进文档,你的贡献都很有价值。

如需查看其他 MCP 服务和实现模式的示例,请参阅: https://github.com/modelcontextprotocol/servers

欢迎提交拉取请求!欢迎贡献新想法、错误修复或增强功能,让 mcp-server-fetch 变得更强大、更实用。

许可证

mcp-server-fetch 使用 MIT License 授权。这意味着你可以自由使用、修改和分发此软件,但须遵守 MIT License 的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。