mcpField
F
FetchV2

FetchV2

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

关于 FetchV2

FetchV2 是一个 MCP 服务,可将网页提取为整洁的 Markdown,供需要阅读或研究网络内容的 Agent 和客户端使用。它还支持批量抓取、链接发现和 llms.txt 索引读取。

主要功能

  1. 01将网页正文提取为 Markdown
  2. 02单次请求抓取最多 10 个页面
  3. 03发现并筛选页面链接
  4. 04读取 llms.txt 索引及其链接页面
  5. 05返回原始 HTML、表格和链接
  6. 06分页返回较长内容

适用场景

  1. 01一次收集多个文档页面
  2. 02查找文档站点中的指南链接
  3. 03读取 llms.txt 并获取相关文档

MCP 相关

FetchV2 向 MCP 客户端提供网页抓取和链接发现工具,也提供用于抓取 URL 或研究主题的提示词。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"praveenc-fetchv2": {
"command": "uvx",
"args": [
"fetchv2-mcp-server"
]
}
}
}
启动命令uvx fetchv2-mcp-server

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

安装包
pypifetchv2-mcp-server2.0.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是要抓取的网页 URL(必须以 http:// 或 https:// 开头)
max_lengthinteger否要返回的最大字符数。摘要使用 1000–2000;完整内容使用 5000(默认值)。
start_indexinteger否用于分页的字符偏移量。截断响应中出现 'start_index=N' 时,请使用其中的值。
get_raw_htmlboolean否跳过内容提取并返回原始 HTML。需要原始标记或提取失败时使用。
include_linksboolean否在 Markdown 中保留超链接。启用后可跟进引用链接。
include_tablesboolean否在 Markdown 中保留表格。仅处理纯文本文章时可禁用。
include_metadataboolean否在顶部包含标题、作者和日期。禁用可节省令牌。
bypass_robots_txtboolean否跳过 robots.txt 检查。仅用于用户发起的请求。

详细介绍

FetchV2 MCP 服务

PyPI version CI Python 3.11+ License: MIT

FetchV2 是一个 Model Context Protocol(MCP)服务,可检索网页并返回整洁的 Markdown。 它使用 Trafilatura 移除导航栏、广告、页脚和其他页面元素。

功能

工具用途
fetch获取一个网页并提取其主要内容
fetch_batch在一次请求中获取最多 10 个网页
discover_links查找并筛选网页上的链接
fetch_llms_txt读取 llms.txt 索引,并可选择获取其链接的页面

FetchV2 可以返回原始 HTML、保留链接和表格,并对较长内容进行分页。 fetch 工具默认会检查 robots.txt。

快速开始

要求
  1. 安装 uv。
  2. 安装 Python 3.11 或更高版本:
uv python install 3.11
安装到 Cursor 或 VS Code
CursorVS Code
安装 MCP 服务在 VS Code 上安装
配置其他 MCP 客户端

将此服务定义添加到 MCP 客户端配置中:

{
  "mcpServers": {
    "fetchv2": {
      "command": "uvx",
      "args": ["fetchv2-mcp-server@latest"]
    }
  }
}

常见配置文件位置:

  • macOS 上的 Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows 上的 Claude Desktop:%APPDATA%\Claude\claude_desktop_config.json
  • Windsurf:~/.codeium/windsurf/mcp_config.json
  • Kiro:项目中的 .kiro/settings/mcp.json
安装到 Python 环境

如果要直接安装此软件包,请使用以下命令之一:

uv add fetchv2-mcp-server
pip install fetchv2-mcp-server

试用

让 MCP 客户端执行以下任务:

  • “获取 <URL> 中的文档。”
  • “查找 <docs URL> 中包含 tutorial 的链接。”
  • “阅读这些页面并总结它们的差异:[url1, url2, url3]。”

典型文档工作流

首先,查找相关页面:

discover_links(url="https://docs.example.com/", filter_pattern="/guide/")

然后,在一次请求中获取选定的页面:

fetch_batch(
    urls=[
        "https://docs.example.com/guide/intro",
        "https://docs.example.com/guide/setup",
    ]
)

工具参考

fetch

获取一个网页,并将其主要内容提取为 Markdown。

fetch(
    url: str,
    max_length: int = 5000,
    start_index: int = 0,
    get_raw_html: bool = False,
    include_metadata: bool = True,
    include_tables: bool = True,
    include_links: bool = False,
    bypass_robots_txt: bool = False,
) -> str
参数类型默认值说明
urlstr必填网页 URL
max_lengthint5000返回的最大字符数
start_indexint0分页的字符偏移量
get_raw_htmlboolFalse返回未经提取的原始 HTML
include_metadataboolTrue包含标题、作者和日期
include_tablesboolTrue在 Markdown 中保留表格
include_linksboolFalse在 Markdown 中保留链接
bypass_robots_txtboolFalse跳过 robots.txt 检查,以执行用户请求的网页获取

如果响应内容被截断,请在下一次调用中使用返回的 start_index 值。

fetch_batch

抓取最多 10 个网页并合并结果。

fetch_batch(
    urls: list[str],
    max_length_per_url: int = 2000,
    get_raw_html: bool = False,
) -> str
参数类型默认值描述
urlslist[str]必填要抓取的网页 URL
max_length_per_urlint2000每个 URL 最多返回的字符数
get_raw_htmlboolFalse返回未经提取的原始 HTML

此工具会在结果中报告抓取失败的 URL,并继续处理其他 URL。 它不会检查 robots.txt。

discover_links

查找网页上的链接,并可选择使用正则表达式筛选链接。

discover_links(url: str, filter_pattern: str = "") -> str
参数类型默认值描述
urlstr必填要扫描的网页 URL
filter_patternstr""用于筛选链接的正则表达式

此工具会解析相对链接,并最多返回 100 个 URL。

fetch_llms_txt

读取 llms.txt 文件并列出其中的文档链接。

fetch_llms_txt(
    url: str,
    include_content: bool = False,
    max_length_per_url: int = 2000,
) -> str
参数类型默认值描述
urlstr必填llms.txt 文件的 URL
include_contentboolFalse抓取所有链接页面的内容
max_length_per_urlint2000每个链接页面最多返回的字符数

默认情况下,此工具只抓取 llms.txt 索引。 设置 include_content=True 可抓取所有链接页面。 此选项可能会返回较大的响应。

此工具会根据 llms.txt URL 解析相对 URL,例如 /docs/guide.md。

提示词

  • fetch_manual 会创建抓取并总结一个 URL 的请求。
  • research_topic 会创建研究某个主题的请求,并可选提供 URL。

开发

克隆仓库并安装开发依赖项:

git clone https://github.com/praveenc/fetchv2-mcp-server.git
cd fetchv2-mcp-server
uv sync --dev

运行测试:

uv run pytest

使用 MCP Inspector 运行服务:

uv run mcp dev src/fetchv2_mcp_server/server.py

运行 lint 和类型检查:

uv run ruff check .
uv run pyright

贡献

提交更改前,请阅读 CONTRIBUTING.md。

支持

使用 GitHub 问题跟踪器报告问题或请求功能。

许可证

此项目采用 MIT 许可证。 详情请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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