智能网页交互服务

Enhanced Fetch MCP是一个AI原生的网页交互层,将Playwright提升为智能、安全且高效的服务,适用于AI代理,提供内容提取、浏览器自动化、安全沙箱等功能。

  • by Danielmelody
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Danielmelody/enhanced-fetch-mcp

使用说明

增强型提取MCP

英语| 简体中文

一个人工智能原生网络交互层,将Playwright提升为人工智能代理的智能、安全和高效服务。

功能 克劳德的原生抓取 标准剧作家 增强的抓取MCP
内容提取 基本 手动解析 高级:将主要内容、元数据、链接和图像提取到干净的Markdown中。
JavaScript渲染 ❌ 否 ✅ 是的 ✅ 是:动态页面的完整浏览器渲染。
安全 ✅ 安全 ⚠️ 浏览器沙盒 🔒 高度设防:所有操作都隔离在Docker容器中。
资源效率 高 低 混合动力发动机:在轻量级HTTP和完整浏览器之间智能切换。
屏幕截图和PDF ❌ 否 ✅ 是的 ✅ 是:捕获屏幕截图并生成PDF。
控制和定制 有限 高 完全控制:可自定义的标头、超时等。

快速开始

选项1:本地安装

1.安装:

npm install -g enhanced-fetch-mcp

2.配置克劳德代码(~/.config/claude/config.json):

{
  "mcpServers": { "enhanced-fetch": { "command": "enhanced-fetch-mcp" } }
}

3.用途:

“获取的主要内容 https://example.com 并截图。"

选项2:通过Smithery安装

或者,您可以使用Smithery简化安装和配置过程。

通过Smithery安装: https://smithery.ai/server/@Danielmelody/增强型fetch mcp

Smithery为您自动化安装、依赖关系管理和MCP配置。 重要提示: 服务器完全在您的本地机器上运行,没有数据发送到外部服务器。您可以完全控制您的浏览活动、屏幕截图和提取的内容,确保最大的隐私和安全性。


工具

网页抓取工具(3)

工具 说明
fetch_url 直接向URL发出HTTP请求以检索其原始HTML内容。它支持各种方法(GET、POST等)、自定义标头和其他高级选项。
extract_content 解析原始HTML以提取结构化信息。它识别主文章,清理它,并以多种格式(文本、Markdown和HTML)返回它,以及元数据、链接和图像。
fetch_and_extract 一个方便的多功能工具,首先获取URL,然后自动提取其内容。它智能地决定是使用简单的HTTP请求还是使用完整的浏览器。

浏览器自动化工具(8)

工具 说明
create_browser_context 使用干净的会话初始化并启动一个新的隔离浏览器实例(如Chrome、Firefox或WebKit),为未来的操作返回一个唯一的ID。
browser_navigate 指示特定浏览器实例访问URL并等待页面加载,包括执行任何初始JavaScript。
browser_get_content 在浏览器呈现页面后检索页面的完整HTML,确保所有动态内容都存在。
browser_screenshot 在浏览器中捕获当前页面的视觉快照,可以是整页或特定区域,并返回图像数据。
browser_pdf 从当前页面的内容生成PDF文档,允许网页的可打印离线版本。
browser_execute_js 在当前页面的上下文中运行自定义JavaScript代码段,实现与页面元素的交互或数据检索。
list_browser_contexts 返回已创建的所有当前活动浏览器实例的列表,以及它们的ID和状态。
close_browser_context 终止浏览器实例并清理所有相关资源,包括关闭其所有页面并释放内存。

Docker沙盒工具(8)

工具 说明
create_sandbox 为一个新的、安全的Docker容器提供一个指定的映像,为命令执行提供一个隔离的环境。
execute_in_sandbox 在指定的Docker沙箱中运行shell命令,并返回其标准输出、错误和退出代码。
list_sandboxes 提供当前运行的所有Docker沙盒的列表,包括它们的ID、名称和当前状态。
get_sandbox 检索特定沙盒的详细信息,如其配置、运行状态和网络设置。
pause_sandbox 临时冻结正在运行的沙盒,在消耗最少CPU资源的同时保持其状态。
resume_sandbox 清空之前暂停的沙盒,允许它从停止的地方继续执行
cleanup_sandbox 停止并完全删除沙盒容器,删除其文件系统并释放所有相关系统资源。
get_sandbox_stats 获取沙箱的实时资源使用指标,包括CPU、内存和网络I/O

用法示例

简单的网页抓取

User: Fetch content from https://example.com

Claude automatically calls fetch_and_extract:
→ Fetch HTML
→ Extract title, description, body
→ Convert to Markdown
→ Return structured content

JavaScript渲染页面

User: This page requires browser rendering

Claude automatically uses browser tools:
→ Create browser context
→ Navigate to page
→ Wait for JavaScript execution
→ Get fully rendered content

网页截图

User: Take a screenshot of this page

Claude automatically calls browser screenshot:
→ Open page
→ Wait for loading completion
→ Capture full-page screenshot
→ Return PNG image

系统要求

必需

  • Node.js>=18.0.0
  • npm>=8.0.0

可选(针对特定功能)

  • Docker(用于沙盒功能)
  • 足够的磁盘空间(Playwright浏览器~30MB)

验证安装

# Check if command is available
enhanced-fetch-mcp --version
# Output: v1.0.0

# View help
enhanced-fetch-mcp --help

# Test run (Ctrl+C to exit)
enhanced-fetch-mcp
# Output: Enhanced Fetch MCP Server running on stdio

故障排除

未找到命令

# Check installation
npm list -g enhanced-fetch-mcp

# Reinstall
npm install -g enhanced-fetch-mcp

# Check path
which enhanced-fetch-mcp

Docker未运行(影响沙盒功能)

# macOS
open -a Docker

# Linux
sudo systemctl start docker

# Verify
docker ps

查看日志

# Server logs
tail -f ~/.local/share/enhanced-fetch-mcp/logs/browser-mcp.log

# Error logs
tail -f ~/.local/share/enhanced-fetch-mcp/logs/browser-mcp-error.log

更新

npm update -g enhanced-fetch-mcp

发展

从源代码安装

# Clone project
git clone https://github.com/yourusername/enhanced-fetch-mcp.git
cd enhanced-fetch-mcp

# Install dependencies
npm install

# Build
npm run build

# Global link (development mode)
npm link

# Run tests
npm test

# Development mode (watch for changes)
npm run dev

性能指标

操作 平均时间
HTTP请求 200-300ms
内容提取 10-50ms
浏览器启动 300-500ms
页面导航 1.5-2s
屏幕截图 ~50ms
JavaScript执行 <10ms

贡献

欢迎投稿!请提交拉取请求或创建问题。

许可证

MIT许可证

致谢