mcpField
F
Fetch MCP Server

Fetch MCP Server

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

关于 Fetch MCP Server

Fetch MCP Server 是一个 MCP 服务,用于以多种格式获取网页内容,包括 HTML、JSON、纯文本、Markdown、正文提取和 YouTube 字幕。它适合需要让 AI 读取网页或视频文本的用户,并内置 SSRF 防护。

主要功能

  1. 01多格式网页获取(HTML、JSON、纯文本、Markdown)
  2. 02使用 Mozilla Readability 提取正文
  3. 03提取 YouTube 视频字幕(yt-dlp 或直接解析)
  4. 04支持 max_length 与 start_index 分页
  5. 05支持自定义请求头与代理
  6. 06内置 SSRF 防护和响应大小限制

适用场景

  1. 01让 AI 助手读取文章或博客正文并去除导航和广告
  2. 02获取 YouTube 视频的指定语言字幕用于摘要
  3. 03通过代理访问受防火墙限制的网页

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 fetch_html、fetch_markdown、fetch_txt、fetch_json、fetch_readable 和 fetch_youtube_transcript 等工具。也可通过 npx 作为命令行工具使用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"fetch-mcp-zcaceres": {
"command": "npx",
"args": [
"-y",
"mcp-fetch"
]
}
}
}
启动命令npx -y mcp-fetch

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

安装包
npmmcp-fetch

工具

5

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

参数类型必填说明
urlstring是要获取内容的 URL
methodenum否要使用的 HTTP 方法。默认值为 GETGET | POST | PUT | DELETE | PATCH | HEAD | OPTIONS
headersobject否要在请求中包含的 HTTP 标头,以键值对形式提供
bodystring否请求正文。可以是字符串、JSON 或表单数据
modeenum否请求模式(cors、no-cors 或 same-origin)cors | no-cors | same-origin
credentialsenum否是否在请求中包含凭据omit | same-origin | include
cacheenum否请求的缓存模式default | no-store | reload | no-cache | force-cache | only-if-cached
redirectenum否重定向的处理方式。默认为 followfollow | error | manual
referrerstring否随请求发送的引荐来源
referrerPolicyenum否请求的引荐来源策略no-referrer | no-referrer-when-downgrade | origin | origin-when-cross-origin | same-origin | strict-origin | strict-origin-when-cross-origin | unsafe-url
signalany否用于中止请求的 AbortSignal
timeoutnumber否请求超时时间,单位为毫秒
followRedirectsboolean否是否跟随重定向。默认为 true

详细介绍

Fetch MCP Server

fetch mcp logo

npm version

一个用于以多种格式获取网页内容的 MCP 服务,包括 HTML、JSON、纯文本、Markdown、易读的文章内容和 YouTube 字幕稿。

Fetch Server MCP server

工具

所有工具均接受以下通用参数:

参数类型必填描述
urlstring是要获取的 URL
headersobject否请求中要包含的自定义标头
max_lengthnumber否返回的最大字符数(默认值:5000)
start_indexnumber否从此字符索引开始(默认值:0)
proxystring否代理 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 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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