关于 Fetch MCP Server
Fetch MCP Server 是一个 MCP 服务,用于以多种格式获取网页内容,包括 HTML、JSON、纯文本、Markdown、正文提取和 YouTube 字幕。它适合需要让 AI 读取网页或视频文本的用户,并内置 SSRF 防护。
主要功能
- 01多格式网页获取(HTML、JSON、纯文本、Markdown)
- 02使用 Mozilla Readability 提取正文
- 03提取 YouTube 视频字幕(yt-dlp 或直接解析)
- 04支持 max_length 与 start_index 分页
- 05支持自定义请求头与代理
- 06内置 SSRF 防护和响应大小限制
适用场景
- 01让 AI 助手读取文章或博客正文并去除导航和广告
- 02获取 YouTube 视频的指定语言字幕用于摘要
- 03通过代理访问受防火墙限制的网页
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 fetch_html、fetch_markdown、fetch_txt、fetch_json、fetch_readable 和 fetch_youtube_transcript 等工具。也可通过 npx 作为命令行工具使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要获取内容的 URL |
| method | enum | 否 | 要使用的 HTTP 方法。默认值为 GETGET | POST | PUT | DELETE | PATCH | HEAD | OPTIONS |
| headers | object | 否 | 要在请求中包含的 HTTP 标头,以键值对形式提供 |
| body | string | 否 | 请求正文。可以是字符串、JSON 或表单数据 |
| mode | enum | 否 | 请求模式(cors、no-cors 或 same-origin)cors | no-cors | same-origin |
| credentials | enum | 否 | 是否在请求中包含凭据omit | same-origin | include |
| cache | enum | 否 | 请求的缓存模式default | no-store | reload | no-cache | force-cache | only-if-cached |
| redirect | enum | 否 | 重定向的处理方式。默认为 followfollow | error | manual |
| referrer | string | 否 | 随请求发送的引荐来源 |
| referrerPolicy | enum | 否 | 请求的引荐来源策略no-referrer | no-referrer-when-downgrade | origin | origin-when-cross-origin | same-origin | strict-origin | strict-origin-when-cross-origin | unsafe-url |
| signal | any | 否 | 用于中止请求的 AbortSignal |
| timeout | number | 否 | 请求超时时间,单位为毫秒 |
| followRedirects | boolean | 否 | 是否跟随重定向。默认为 true |
详细介绍
Fetch MCP Server

一个用于以多种格式获取网页内容的 MCP 服务,包括 HTML、JSON、纯文本、Markdown、易读的文章内容和 YouTube 字幕稿。
工具
所有工具均接受以下通用参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
url | string | 是 | 要获取的 URL |
headers | object | 否 | 请求中要包含的自定义标头 |
max_length | number | 否 | 返回的最大字符数(默认值:5000) |
start_index | number | 否 | 从此字符索引开始(默认值:0) |
proxy | string | 否 | 代理 URL(例如 http://proxy:8080) |
-
fetch_html — 获取网站并返回其原始 HTML 内容。
-
fetch_markdown — 获取网站并返回转换为 Markdown 的内容。
-
fetch_txt — 获取网站并返回纯文本,同时移除 HTML 标签、脚本和样式。
-
fetch_json — 获取 URL 并返回 JSON 响应。
-
fetch_readable — 使用 Mozilla Readability 获取网站并提取主要文章内容,以 Markdown 格式返回。移除导航、广告和通用内容。适用于文章和博客帖子。
-
fetch_youtube_transcript — 获取 YouTube 视频的字幕/字幕稿。如果可用,则使用
yt-dlp;否则直接从页面提取。接受额外的lang参数(默认值:"en")来选择字幕语言。
安装
作为 MCP 服务
添加到 MCP 客户端配置中:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["mcp-fetch-server"]
}
}
}
作为 CLI
npx mcp-fetch <command> <url> [flags]
或全局安装:
npm install -g mcp-fetch-server
mcp-fetch <command> <url> [flags]
CLI 用法
mcp-fetch <command> <url> [flags]
命令
| 命令 | 描述 |
|---|---|
html | 获取 URL 并返回原始 HTML |
markdown | 获取 URL 并返回 Markdown |
readable | 获取 URL 并以 Markdown 格式返回文章内容(通过 Readability) |
txt | 获取 URL 并返回纯文本 |
json | 获取 URL 并返回 JSON |
youtube | 获取 YouTube 视频字幕稿 |
标志
| 标志 | 描述 |
|---|---|
--max-length <N> | 返回的最大字符数 |
--start-index <N> | 从此字符索引开始 |
--proxy <URL> | 代理 URL |
--lang <code> | YouTube 字幕稿的语言代码(默认值:en) |
--help | 显示帮助信息 |
--version | 显示版本 |
示例
# Fetch a page as markdown
mcp-fetch markdown https://example.com
# Extract article content without boilerplate
mcp-fetch readable https://example.com/blog/post
# Get a YouTube transcript in Spanish
mcp-fetch youtube https://www.youtube.com/watch?v=dQw4w9WgXcQ --lang es
# Fetch with a length limit
mcp-fetch html https://example.com --max-length 10000
# Fetch through a proxy
mcp-fetch json https://api.example.com/data --proxy http://proxy:8080
环境变量
| 变量 | 描述 |
|---|---|
DEFAULT_LIMIT | 响应的默认字符数限制(默认值:5000,设为 0 表示不限制) |
MAX_RESPONSE_BYTES | 响应正文的最大字节数(默认值:10485760/10 MB) |
自定义限制示例:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["mcp-fetch-server"],
"env": {
"DEFAULT_LIMIT": "50000"
}
}
}
}
功能
- 将网页内容获取为 HTML、JSON、纯文本或 Markdown
- 使用 Mozilla Readability 提取文章内容(移除广告、导航和通用内容)
- 提取 YouTube 视频字幕稿(通过
yt-dlp或直接提取) - 支持代理,以便通过防火墙发送请求
- 使用
max_length和start_index分页 - 自定义请求标头
- SSRF 防护(阻止私有地址/本地主机地址和 DNS 重绑定)
- 限制响应大小,防止内存耗尽
开发
bun install
bun run dev # start with watch mode
bun test # run tests
bun run build # build for production
许可证
本项目采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。