网页抓取协议服务器

一个为AI助手提供网页抓取和搜索功能的Model Context Protocol (MCP)服务器。

  • by xiaozhuABCD1234
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 xiaozhuABCD1234/web-fetch-mcp

使用说明

web-fetch-mcp

一个 Model Context Protocol (MCP) 服务器,为 AI 助手提供强大的网页抓取和搜索功能。

功能特性

  • 网页抓取:提取页面摘要、元数据、链接和文本内容
  • 动态页面支持:使用 Puppeteer 自动检测和渲染 SPA(单页应用)
  • SEO 元数据:提取 Open Graph、Twitter Card 和传统 Meta 标签
  • 网页搜索:内置 Bing 搜索集成
  • 智能检测:自动判断页面是否需要无头浏览器渲染

工具列表

工具 描述
fetch_page_summary 获取页面标题、链接和图片概览
fetch_page_metadata 提取 SEO 标签和 Open Graph 元数据
fetch_links 提取页面所有超链接
fetch_links_headless 使用无头浏览器提取链接(适用于动态页面)
fetch_page_text 提取页面主要文本内容
fetch_page_text_headless 使用无头浏览器提取文本(适用于动态页面)
search_web 使用 Bing 搜索引擎搜索

安装

使用 npm/npx(推荐)

# 全局安装
npm install -g @xiaozhuabcd1234/web-fetch-mcp

# 运行
npx web-fetch-mcp

使用 Bun

bun install @xiaozhuabcd1234/web-fetch-mcp

从源码运行

git clone https://github.com/xiaozhuabcd1234/web-fetch-mcp.git
cd web-fetch-mcp
bun install
bun run src/index.ts

使用方法

Claude Desktop 集成

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "web-fetch": {
      "command": "npx",
      "args": ["-y", "@xiaozhuabcd1234/web-fetch-mcp"]
    }
  }
}

项目结构

web-fetch-mcp/
├── src/
│   ├── index.ts           # MCP 服务器入口
│   ├── browser.ts         # Puppeteer 浏览器管理
│   ├── web-scraper.ts     # 核心抓取工具
│   ├── search.ts          # 网页搜索接口
│   └── search-engines/
│       └── bing.ts        # Bing 搜索实现

核心模块

  • browser.ts:管理 Puppeteer 浏览器实例,支持隐身模式和可配置选项
  • web-scraper.ts:使用 Cheerio 进行 HTML 解析,包含 SPA 检测启发式算法
  • search.ts:统一的搜索接口,支持多搜索引擎

环境要求

  • Bun 1.0+
  • Node.js 18+(备用方案)
  • Chromium/Chrome 浏览器(用于 Puppeteer)

环境变量

变量 描述 默认值
CHROME_PATH Chrome 可执行文件路径 自动检测

开源协议

GPL-3.0-only - 详见 LICENSE 文件。