mcpField
F
Fetch MCP Server with CSS selectors function

Fetch MCP Server with CSS selectors function

远程服务
github.com/burnworks浏览器自动化082 周前更新
代码仓库

关于 Fetch MCP Server with CSS selectors function

这是一个用于抓取网页内容的 MCP 服务,面向需要让 LLM 获取网页信息的场景。它可将 HTML 转为 Markdown,并支持用 CSS、ID 或元素选择器提取指定内容。

主要功能

  1. 01抓取 URL 网页
  2. 02将 HTML 转为 Markdown
  3. 03按 CSS、ID 或元素筛选
  4. 04分段读取长内容
  5. 05支持原始内容输出

适用场景

  1. 01只提取新闻文章正文
  2. 02定位文档页面的特定部分
  3. 03分段读取较长网页

MCP 相关

该服务通过 `custom-fetch` 工具和同名提示词向 MCP 客户端提供网页抓取功能,可配置 URL、选择器及返回长度。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://example.com
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

带 CSS 选择器功能的 Fetch MCP 服务

一个提供网页内容抓取功能的模型上下文协议服务。此服务支持大模型检索和处理网页内容,并将 HTML 转换为 Markdown,以便更轻松地阅读。

抓取工具会截断响应,但你可以使用 start_index 参数指定内容提取的起始位置。这样,模型就能分块读取网页,直到找到所需信息。

可用工具
  • custom-fetch - 从互联网抓取 URL 并将其内容提取为 Markdown。
    • url(字符串,必填):要抓取的 URL
    • max_length(整数,可选):返回的最大字符数(默认值:5000)
    • start_index(整数,可选):内容的起始字符索引(默认值:0)
    • raw(布尔值,可选):获取未经 Markdown 转换的原始内容(默认值:false)
    • selector(字符串,可选):用于提取特定内容的 CSS 选择器、ID 或元素名称
    • selector_type(字符串,可选):选择器类型:'css'、'id' 或 'element'
提示词
  • custom-fetch
    • 抓取 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(推荐)

使用 uv 时无需进行特定安装。我们将使用 uvx 直接运行 burnworks-mcp-server-fetch。

使用 PIP

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

pip install burnworks-mcp-server-fetch

安装后,你可以将其作为脚本运行:

python -m burnworks_mcp_server_fetch

配置

为 Claude.app 配置

将以下内容添加到 Claude 设置中:

使用 uvx
"mcpServers": {
  "custom-fetch": {
    "command": "uvx",
    "args": ["burnworks-mcp-server-fetch"]
  }
}
使用 pip 安装
"mcpServers": {
  "custom-fetch": {
    "command": "python",
    "args": ["-m", "burnworks_mcp_server_fetch"]
  }
}
自定义 - robots.txt

默认情况下,如果请求由模型发起(通过工具),服务会遵守网站的 robots.txt 文件;如果请求由用户发起(通过提示词),则不会遵守。你可以在配置中的 args 列表添加参数 --ignore-robots-txt 来禁用此行为。

自定义 - 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 来自定义此项。

自定义 - 代理

可以使用 --proxy-url 参数将服务配置为使用代理。

调试

你可以使用 MCP inspector 调试服务。对于 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-server-fetch 分叉开发的,并新增了 CSS 选择器功能。原始项目地址:

https://github.com/modelcontextprotocol/servers

如果你想为这个增强版本贡献代码,欢迎向我们的代码库提交问题或拉取请求。有关基础 MCP 服务架构和实现模式的信息,请参阅上面的原始项目链接。

许可证

本项目采用 MIT License。也就是说,你可以自由使用、修改和分发本软件,但须遵守 MIT License 的条款和条件。详情请参阅项目代码库中的 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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