关于 Fetch MCP Server with CSS selectors function
这是一个用于抓取网页内容的 MCP 服务,面向需要让 LLM 获取网页信息的场景。它可将 HTML 转为 Markdown,并支持用 CSS、ID 或元素选择器提取指定内容。
主要功能
- 01抓取 URL 网页
- 02将 HTML 转为 Markdown
- 03按 CSS、ID 或元素筛选
- 04分段读取长内容
- 05支持原始内容输出
适用场景
- 01只提取新闻文章正文
- 02定位文档页面的特定部分
- 03分段读取较长网页
MCP 相关
该服务通过 `custom-fetch` 工具和同名提示词向 MCP 客户端提供网页抓取功能,可配置 URL、选择器及返回长度。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://example.comclaude mcp add --transport http burnworks-mcp-server-fetch https://example.com{"mcpServers":{"burnworks-mcp-server-fetch":{"type":"http","url":"https://example.com"}}}在 Cursor 中打开{"servers":{"burnworks-mcp-server-fetch":{"type":"http","url":"https://example.com"}}}在 VS Code 中打开{"mcpServers":{"burnworks-mcp-server-fetch":{"type":"http","url":"https://example.com"}}}{"mcpServers":{"burnworks-mcp-server-fetch":{"serverUrl":"https://example.com"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
带 CSS 选择器功能的 Fetch MCP 服务
一个提供网页内容抓取功能的模型上下文协议服务。此服务支持大模型检索和处理网页内容,并将 HTML 转换为 Markdown,以便更轻松地阅读。
抓取工具会截断响应,但你可以使用 start_index 参数指定内容提取的起始位置。这样,模型就能分块读取网页,直到找到所需信息。
可用工具
custom-fetch- 从互联网抓取 URL 并将其内容提取为 Markdown。url(字符串,必填):要抓取的 URLmax_length(整数,可选):返回的最大字符数(默认值:5000)start_index(整数,可选):内容的起始字符索引(默认值:0)raw(布尔值,可选):获取未经 Markdown 转换的原始内容(默认值:false)selector(字符串,可选):用于提取特定内容的 CSS 选择器、ID 或元素名称selector_type(字符串,可选):选择器类型:'css'、'id' 或 'element'
提示词
- custom-fetch
- 抓取 URL 并将其内容提取为 Markdown
- 参数:
url(字符串,必填):要抓取的 URLselector(字符串,可选):用于提取特定内容的 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 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。