Uses Cheerio for HTML parsing to extract structured content, including main articles, metadata, links, and images from web pages.
Provides Docker sandbox tools for provisioning secure containers, executing commands, managing container lifecycle (pause/resume/cleanup), and monitoring resource usage in isolated environments.
Supports Firefox browser automation through Playwright for rendering JavaScript-heavy pages, taking screenshots, generating PDFs, and executing custom JavaScript.
Enhanced Fetch MCP
English | 简体中文
An AI-native web interaction layer that elevates Playwright into an intelligent, secure, and efficient service for AI agents.
Feature | Claude's Native Fetch | Standard Playwright | Enhanced Fetch MCP |
Content Extraction | Basic | Manual Parsing | Advanced : Extracts main content, metadata, links, and images into clean Markdown. |
JavaScript Rendering | ❌ No | ✅ Yes | ✅ Yes : Full browser rendering for dynamic pages. |
Security | ✅ Safe | ⚠️ Browser Sandbox | 🔒 Maximum Security : All operations are isolated in a Docker container. |
Resource Efficiency | High | Low | Hybrid Engine : Intelligently switches between lightweight HTTP and a full browser. |
Screenshots & PDFs | ❌ No | ✅ Yes | ✅ Yes : Captures screenshots and generates PDFs. |
Control & Customization | Limited | High | Full Control : Customizable headers, timeouts, and more. |
Quick Start
Option 1: Local Installation
1. Install:
2. Configure Claude Code (
3. Use:
"Fetch the main content of
https://example.comand take a screenshot."
Option 2: Install via Smithery
Alternatively, you can use Smithery to simplify the installation and configuration process.
Install via Smithery: https://smithery.ai/server/@Danielmelody/enhanced-fetch-mcp
Smithery automates the installation, dependency management, and MCP configuration for you. Important: The server runs entirely on your local machine—no data is sent to external servers. You maintain full control over your browsing activities, screenshots, and extracted content, ensuring maximum privacy and security.
Tools
Web Scraping Tools (3)
Tool | Description |
| Makes a direct HTTP request to a URL to retrieve its raw HTML content. It supports various methods (GET, POST, etc.), custom headers, and other advanced options. |
| Parses raw HTML to pull out structured information. It identifies the main article, cleans it, and returns it in multiple formats (text, Markdown, and HTML), along with metadata, links, and images. |
| A convenient, all-in-one tool that first fetches a URL and then automatically extracts its content. It intelligently decides whether to use a simple HTTP request or a full browser. |
Browser Automation Tools (8)
Tool | Description |
| Initializes and launches a new, isolated browser instance (like Chrome, Firefox, or WebKit) with a clean session, returning a unique ID for future operations. |
| Instructs a specific browser instance to visit a URL and waits for the page to load, including executing any initial JavaScript. |
| Retrieves the full HTML of a page after it has been rendered by the browser, ensuring all dynamic content is present. |
| Captures a visual snapshot of the current page in the browser, which can be a full-page or a specific region, and returns the image data. |
| Generates a PDF document from the current page's content, allowing for a printable, offline version of the web page. |
| Runs a custom JavaScript snippet within the context of the current page, enabling interaction with page elements or data retrieval. |
| Returns a list of all currently active browser instances that have been created, along with their IDs and status. |
| Terminates a browser instance and cleans up all associated resources, including closing all its pages and freeing up memory. |
Docker Sandbox Tools (8)
Tool | Description |
| Provisions a new, secure Docker container with a specified image, providing an isolated environment for command execution. |
| Runs a shell command inside a designated Docker sandbox and returns its standard output, error, and exit code. |
| Provides a list of all currently running Docker sandboxes, including their IDs, names, and current status. |
| Retrieves detailed information about a specific sandbox, such as its configuration, running state, and network settings. |
| Temporarily freezes a running sandbox, preserving its state while consuming minimal CPU resources. |
| Unpauses a previously paused sandbox, allowing it to continue execution from where it left off. |
| Stops and completely removes a sandbox container, deleting its file system and freeing up all associated system resources. |
| Fetches real-time resource usage metrics for a sandbox, including CPU, memory, and network I/O. |
Usage Examples
Simple Web Scraping
JavaScript-Rendered Pages
Web Screenshots
System Requirements
Required
Node.js >= 18.0.0
npm >= 8.0.0
Optional (for specific features)
Docker (for sandbox functionality)
Sufficient disk space (Playwright browsers ~300MB)
Verify Installation
Troubleshooting
Command Not Found
Docker Not Running (affects sandbox functionality)
View Logs
Update
Development
Install from Source
Performance Metrics
Operation | Average Time |
HTTP Request | 200-300ms |
Content Extraction | 10-50ms |
Browser Launch | 300-500ms |
Page Navigation | 1.5-2s |
Screenshot | ~50ms |
JavaScript Execution | <10ms |
Contributing
Contributions are welcome! Please submit a Pull Request or create an Issue.
License
MIT License
Acknowledgments
@modelcontextprotocol/sdk - MCP protocol implementation
Playwright - Browser automation
Cheerio - HTML parsing
Turndown - HTML to Markdown conversion
Dockerode - Docker API