FetchV2

io.github.praveenc由 GitHub 账号 praveenc 发布v2.0.0更新于 Oct 24, 2026

Fetch and extract web pages, discover links, and read llms.txt documentation indexes.

概览

AI 生成的概览

一个本地 MCP 服务器,可抓取网页、提取正文为干净的 Markdown、发现页面链接,并读取 llms.txt 文档索引。

可以做什么
抓取单个网页并提取正文为 Markdown,可选返回原始 HTML、元数据、表格、链接,并按字符偏移分页。一次批量抓取最多 10 个网页并合并结果。发现页面上的链接并用正则过滤,自动解析相对链接。读取 llms.txt 索引,并可选抓取其链接的所有页面。提供内置提示词,用于抓取并总结某个网址或研究某个主题。
适用场景
适合需要以干净文本读取网页文档或文章、一次收集多个页面,或处理基于 llms.txt 的文档站点的场景。适用于原始 HTML 过于杂乱的资料检索与文档工作流。
运行要求
以 Python 包(fetchv2-mcp-server)形式通过 uvx 或 pip 在本地以 stdio 运行。需要 uv 和 Python 3.11 或更高版本。未声明任何账号、API 密钥、环境变量或请求头。需要能访问目标站点的网络。
安装前请注意
fetch 工具默认检查 robots.txt,但 bypass_robots_txt 选项会跳过该检查,而 fetch_batch 完全不检查 robots.txt。启用 include_content 读取 llms.txt 时可能返回非常大的响应。所请求的页面来自第三方站点,其内容会进入助手。

安装

在 SourceWeft 中

  1. 打开 控制台中的 FetchV2,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

FetchV2 MCP Server

[PyPI version] [CI] [Python 3.11+] [License: MIT]

FetchV2 is a Model Context Protocol (MCP) server that retrieves web pages and returns clean Markdown. It uses Trafilatura to remove navigation, advertisements, footers, and other page elements.

What it does

ToolUse
fetchFetch one web page and extract its main content
fetch_batchFetch up to 10 web pages in one request
discover_linksFind and filter links on a web page
fetch_llms_txtRead an llms.txt index and optionally fetch its linked pages

FetchV2 can return raw HTML, preserve links and tables, and paginate long content. The fetch tool checks robots.txt by default.

Quick start

Requirements

  1. Install uv.
  2. Install Python 3.11 or newer:
bash
uv python install 3.11

Install for Cursor or VS Code

Configure another MCP client

Add this server definition to your MCP client configuration:

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

Common configuration file locations:

  • Claude Desktop on macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop on Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json
  • Kiro: .kiro/settings/mcp.json in your project

Install in a Python environment

Use one of these commands if you want to install the package directly:

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

Try it

Ask your MCP client to perform a task such as:

  • "Fetch the documentation from <URL>."
  • "Find links on <docs URL> that contain tutorial."
  • "Read these pages and summarize their differences: [url1, url2, url3]."

Typical documentation workflow

First, find the relevant pages:

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

Then fetch the selected pages in one request:

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

Tool reference

fetch

Fetch one web page and extract its main content as Markdown.

python
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
ParameterTypeDefaultDescription
urlstrrequiredWeb page URL
max_lengthint5000Maximum number of characters to return
start_indexint0Character offset for pagination
get_raw_htmlboolFalseReturn raw HTML without extraction
include_metadataboolTrueInclude the title, author, and date
include_tablesboolTruePreserve tables in Markdown
include_linksboolFalsePreserve links in Markdown
bypass_robots_txtboolFalseSkip the robots.txt check for a user-requested fetch

If the response is truncated, use the returned start_index value in the next call.

fetch_batch

Fetch up to 10 web pages and combine the results.

python
fetch_batch(    urls: list[str],    max_length_per_url: int = 2000,    get_raw_html: bool = False,) -> str
ParameterTypeDefaultDescription
urlslist[str]requiredWeb page URLs to fetch
max_length_per_urlint2000Maximum number of characters to return for each URL
get_raw_htmlboolFalseReturn raw HTML without extraction

This tool reports a failed URL in its result and continues with the other URLs. It does not check robots.txt.

discover_links

Find links on a web page and optionally filter them with a regular expression.

python
discover_links(url: str, filter_pattern: str = "") -> str
ParameterTypeDefaultDescription
urlstrrequiredWeb page URL to scan
filter_patternstr""Regular expression used to filter links

The tool resolves relative links and returns up to 100 URLs.

fetch_llms_txt

Read an llms.txt file and list its documentation links.

python
fetch_llms_txt(    url: str,    include_content: bool = False,    max_length_per_url: int = 2000,) -> str
ParameterTypeDefaultDescription
urlstrrequiredURL of an llms.txt file
include_contentboolFalseFetch the content of all linked pages
max_length_per_urlint2000Maximum number of characters to return for each linked page

By default, this tool fetches only the llms.txt index. Set include_content=True to fetch all linked pages. This option can return a large response.

The tool resolves relative URLs, such as /docs/guide.md, against the llms.txt URL.

Prompts

  • fetch_manual creates a request to fetch and summarize one URL.
  • research_topic creates a request to research a topic with optional URLs.

Development

Clone the repository and install the development dependencies:

bash
git clone https://github.com/praveenc/fetchv2-mcp-server.gitcd fetchv2-mcp-serveruv sync --dev

Run the tests:

bash
uv run pytest

Run the server with MCP Inspector:

bash
uv run mcp dev src/fetchv2_mcp_server/server.py

Run lint and type checks:

bash
uv run ruff check .uv run pyright

Contributing

Read CONTRIBUTING.md before you submit a change.

Support

Use the GitHub issue tracker to report a problem or request a feature.

License

This project uses the MIT License. See LICENSE for details.

来源:README.md,提交 b6a920d

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v2.0.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分