项目简介

Fetch MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 应用提供便捷的外部数据访问能力。它主要提供两个工具,允许 LLM 客户端通过标准化的 MCP 协议,获取指定 URL 的网页内容以及 YouTube 视频的转录文本,从而增强 LLM 的上下文理解和信息获取能力。

主要功能点

  • 网页内容抓取 (fetch_url):
    • 根据提供的 URL 抓取网页内容,并将其转换为 Markdown 格式 (默认) 或原始 HTML 格式。
    • 支持设置返回内容的最大长度和起始索引,方便处理长网页内容。
  • YouTube 视频转录抓取 (fetch_youtube_transcript):
    • 抓取指定 YouTube 视频的转录文本,并以时间戳格式返回,方便 LLM 理解视频内容的时间线。
  • 支持多种传输协议:
    • 默认支持 Stdio 协议,方便本地快速部署和调试。
    • 可选支持 SSE (Server-Sent Events) 协议,通过 HTTP 提供服务,适用于需要通过网络连接的场景。

安装步骤

由于该项目基于 Node.js 和 npm,您无需手动下载和安装,只需确保您的环境中已安装 Node.js 和 npm,然后使用 'npx' 命令即可直接运行。

服务器配置

MCP 客户端需要配置以下信息才能连接到 Fetch MCP Server。配置信息为 JSON 格式,请根据您选择的运行模式进行配置。

1. Stdio 模式 (默认)

适用于本地开发和快速测试,MCP 服务器通过标准输入输出与客户端通信。

{
  "serverName": "fetch-mcp",
  "command": "npx",
  "args": ["-y", "fetch-mcp"]
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 运行 MCP 服务器的命令,这里使用 'npx' 直接执行 'fetch-mcp' 包。
  • 'args': 传递给 'npx' 命令的参数,'["-y", "fetch-mcp"]' 表示安装并运行 'fetch-mcp' 包。

2. SSE 模式

适用于需要通过网络连接的场景,MCP 服务器通过 HTTP SSE 协议与客户端通信。

{
  "serverName": "fetch-mcp-sse",
  "command": "npx",
  "args": ["-y", "fetch-mcp", "--sse"],
  "transport": {
    "type": "sse",
    "endpoint": "http://localhost:3000/sse",
    "messageEndpoint": "http://localhost:3000/messages"
  }
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 运行 MCP 服务器的命令,这里使用 'npx' 直接执行 'fetch-mcp' 包。
  • 'args': 传递给 'npx' 命令的参数,'["-y", "fetch-mcp", "--sse"]' 表示安装并以 SSE 模式运行 'fetch-mcp' 包。
  • 'transport': 指定传输协议为 SSE。
    • 'type': 传输类型,设置为 '"sse"'。
    • 'endpoint': SSE 连接端点,MCP 客户端需要连接到此 URL 建立 SSE 连接。
    • 'messageEndpoint': 消息发送端点,MCP 客户端通过 POST 请求向此 URL 发送消息。

注意: SSE 模式默认监听 'http://localhost:3000' 端口,您可以通过设置环境变量 'PORT' 来自定义端口。

基本使用方法

配置完成后,MCP 客户端可以通过 MCP 协议调用 Fetch MCP Server 提供的工具。

示例:调用 'fetch_url' 工具

假设您正在使用支持 MCP 协议的 LLM 客户端,您可以使用如下方式调用 'fetch_url' 工具来获取 'https://example.com' 的网页内容:

{
  "jsonrpc": "2.0",
  "method": "tool_call",
  "params": {
    "tool_name": "fetch_url",
    "tool_arguments": {
      "url": "https://example.com"
    }
  },
  "id": "unique_request_id"
}

服务器将返回包含网页内容的 JSON-RPC 响应。

示例:调用 'fetch_youtube_transcript' 工具

调用 'fetch_youtube_transcript' 工具获取 YouTube 视频转录:

{
  "jsonrpc": "2.0",
  "method": "tool_call",
  "params": {
    "tool_name": "fetch_youtube_transcript",
    "tool_arguments": {
      "url": "https://www.youtube.com/watch?v=xxxxxxxxxxx"  // 替换为实际的 YouTube 视频 URL
    }
  },
  "id": "another_unique_request_id"
}

服务器将返回包含 YouTube 视频转录文本的 JSON-RPC 响应。

请参考 Model Context Protocol (MCP) 的官方文档和您使用的 LLM 客户端的文档,了解更详细的 MCP 协议和工具调用方法。

信息

分类

网页与API