网页内容抓取工具

一个提供网页内容抓取功能的MCP服务器,能够将HTML转换为Markdown格式,便于处理和使用。

  • by burnworks
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 burnworks/burnworks-mcp-server-fetch

使用说明

使用CSS选择器功能获取MCP服务器

提供web内容获取功能的模型上下文协议服务器。此服务器使LLM能够从网页中检索和处理内容,将HTML转换为markdown以便于使用。

fetch工具将截断响应,但通过使用 start_index 参数,您可以指定从哪里开始内容提取。这让模型可以分块阅读网页,直到找到所需的信息。

可用工具

  • custom-fetch -从互联网获取URL并将其内容提取为markdown。
    • url (字符串,必填):要获取的URL
    • max_length (整数,可选):返回的最大字符数(默认值:5000)
    • start_index (整数,可选):从此字符索引开始内容(默认值:0)
    • raw (boolean,可选):获取原始内容而不进行markdown转换(默认值:false)
    • selector (字符串,可选):CSS选择器、ID或元素名称,用于提取特定内容
    • selector_type (字符串,可选):选择器类型:“css”、“id”或“element”

鼓励

  • 自定义获取
    • 获取一个URL并将其内容提取为markdown
    • 论据:
      • url (字符串,必填):要获取的URL
      • selector (字符串,可选):CSS选择器、ID或元素名称,用于提取特定内容
      • selector_type (字符串,可选):选择器类型:“css”、“id”或“element”

选择器功能

此增强版本包括一个强大的选择器功能,允许您从网页中提取特定内容:

选择器的类型

  • ID选择符:按ID属性提取特定元素

    {
      "url": "https://example.com",
      "selector": "main-content",
      "selector_type": "id"
    }
    
  • 元素选择器:提取特定类型的第一个元素

    {
      "url": "https://example.com",
      "selector": "main",
      "selector_type": "element"
    }
    
  • CSS选择器:使用CSS选择器语法提取内容

    {
      "url": "https://example.com",
      "selector": ".article-content > p",
      "selector_type": "css"
    }
    

用例

  • 仅从新闻网站提取主要文章内容
  • 专注于文档页面的特定部分
  • 从大型网页中精准定位所需内容

安装

可选:安装node.js,这将导致获取服务器使用更健壮的不同HTML简化器。

使用紫外线(推荐)

使用时 uv 不需要特定的安装。我们将 使用 uvx 直接运行 burnworks mcp服务器获取.

使用PIP

或者,您可以安装 burnworks-mcp-server-fetch 通过pip:

pip install burnworks-mcp-server-fetch

安装后,您可以使用以下命令将其作为脚本运行:

python -m burnworks_mcp_server_fetch

配置

为Claude.app进行配置

添加到您的Claude设置中:

Using uvx
"mcpServers": {
  "custom-fetch": {
    "command": "uvx",
    "args": ["burnworks-mcp-server-fetch"]
  }
}
Using pip installation
"mcpServers": {
  "custom-fetch": {
    "command": "python",
    "args": ["-m", "burnworks_mcp_server_fetch"]
  }
}

定制-robots.txt

默认情况下,如果请求来自模型(通过工具),服务器将服从网站robots.txt文件,但如果 该请求是由用户发起的(通过提示)。可以通过添加参数来禁用此功能 --ignore-robots-txt 到 args 配置中的列表。

定制-用户代理

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

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

或

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

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

自定义-代理

可以使用以下命令将服务器配置为使用代理 --proxy-url 争论。

调试

您可以使用MCP检查器调试服务器。对于uvx安装:

npx @modelcontextprotocol/inspector uvx burnworks-mcp-server-fetch

或者,如果您已将软件包安装在特定目录中或正在其上开发:

cd path/to/servers/src/fetch
npx @modelcontextprotocol/inspector uv run burnworks-mcp-server-fetch

选择器使用示例

仅提取主要内容区域

custom-fetch
  url: https://example.com/article
  selector: main
  selector_type: element

按ID提取内容

custom-fetch
  url: https://example.com/blog
  selector: article-body
  selector_type: id

使用复杂CSS选择器提取

custom-fetch
  url: https://example.com/documentation
  selector: .content-wrapper article > section:first-child
  selector_type: css

贡献

这个项目, burnworks_mcp_server_fetch, 它是作为原始mcp服务器fetch的一个分支开发的,并添加了CSS选择器功能。原始项目可以在以下网址找到:

https://github.com/modelcontextprotocol/servers

如果您想为这个增强版本做出贡献,请随时向我们的存储库提交问题或拉取请求。有关基本MCP服务器架构和实现模式的信息,请参阅上面的原始项目链接。

许可证

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