使用说明
项目简介
Fetch MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,它提供了一个名为 'fetch_url' 的工具,允许大型语言模型(LLM)客户端通过 URL 获取网页内容。该服务器使用 Playwright headless browser 来渲染和抓取网页,能够处理 JavaScript 动态生成的内容,并支持智能提取网页主要内容,最终将内容转换为 Markdown 格式返回给客户端。
主要功能点
- 网页内容抓取: 使用 Playwright headless browser 抓取指定 URL 的网页内容,能够处理 JavaScript 动态内容。
- 智能内容提取: 可选择智能提取网页的主要内容,去除导航、广告等干扰信息,提升内容质量。
- Markdown 转换: 将抓取的网页内容或提取的主要内容转换为 Markdown 格式,方便 LLM 理解和处理。
- 可配置参数: 支持设置请求超时时间、页面加载完成条件、是否提取主要内容、返回内容最大长度等参数,满足不同的抓取需求。
- Debug模式: 提供 Debug 模式,方便开发者调试和查看浏览器行为。
安装步骤
-
安装 Node.js 和 npm: 确保你的系统已经安装了 Node.js 和 npm (Node 包管理器)。
-
直接运行 (无需安装): 最简便的方式是使用 'npx' 命令直接运行,无需下载和安装仓库到本地。
npx -y github:jae-jae/fetch-mcp -
本地安装 (用于开发或调试): 如果需要进行本地开发或调试,可以先克隆仓库到本地,然后安装依赖。
git clone https://github.com/jae-jae/fetch-mcp.git cd fetch-mcp npm install npm run install-browser # 安装 Playwright 浏览器 npm run build # 构建服务器 (可选,如果需要运行构建后的版本)
服务器配置
要将 Fetch MCP Server 配置为 MCP 客户端(例如 Claude Desktop)可使用的服务器,需要在客户端的配置文件中添加服务器信息。以 Claude Desktop 为例,你需要编辑其配置文件 'claude_desktop_config.json'。
配置文件路径:
- MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%/Claude/claude_desktop_config.json'
配置内容 (添加到 'mcpServers' 字段中):
{ "mcpServers": { "fetch": { "command": "npx", "args": ["-y", "github:jae-jae/fetch-mcp"] } } }
配置参数说明:
- '"fetch"': 服务器名称,可以自定义,用于在客户端中标识和引用该服务器。
- '"command": "npx"': 启动服务器的命令,这里使用 'npx' 直接运行 GitHub 仓库。
- '"args": ["-y", "github:jae-jae/fetch-mcp"]': 传递给 'npx' 命令的参数。
- '"-y"': 'npx' 参数,表示自动确认安装 'github:jae-jae/fetch-mcp' 包。
- '"github:jae-jae/fetch-mcp"': 指定要运行的 GitHub 仓库地址。
如果你选择本地安装并构建后运行,配置可以修改为:
{ "mcpServers": { "fetch": { "command": "node", "args": ["./build/index.js"] } } }
本地构建运行配置参数说明:
- '"command": "node"': 启动服务器的命令,使用 Node.js 运行 JavaScript 文件。
- '"args": ["./build/index.js"]': 传递给 'node' 命令的参数,指向构建后的服务器入口文件路径。 请确保你已经执行了 'npm run build' 命令。
基本使用方法
配置完成后,MCP 客户端(如 Claude Desktop)应该能够检测到 Fetch MCP Server 提供的 'fetch_url' 工具。
当 LLM 需要获取网页内容时,客户端会调用 'fetch_url' 工具,并传递必要的参数,例如 'url' (要抓取的网页地址)。
'fetch_url' 工具的可用参数:
- 'url' (必填): 要抓取的网页 URL 地址。
- 'timeout' (可选): 页面加载超时时间,单位毫秒,默认 30000 (30 秒)。
- 'waitUntil' (可选): 页面导航完成的条件,可选值包括 ''load'', ''domcontentloaded'', ''networkidle'', ''commit'', 默认 ''load''。
- 'extractContent' (可选): 是否智能提取网页主要内容,布尔值,默认 'true' (提取)。
- 'maxLength' (可选): 返回内容的最大长度,单位字符,默认无限制。
示例 (客户端请求调用 'fetch_url' 工具的参数):
{ "tool_calls": [ { "name": "fetch_url", "arguments": { "url": "https://www.example.com", "extractContent": true, "maxLength": 500 } } ] }
服务器会接收到客户端的请求,使用 Playwright 抓取指定网页内容,根据参数进行处理,并将处理后的 Markdown 格式内容返回给客户端。
信息
分类
网页与API