MCP FetchPage
Intelligent web page fetching with automatic cookie support and CSS selector extraction.
MCP Fetch Page
Browser-based web page fetching with automatic cookie support and CSS selector extraction.
Features
- š¤ Browser Automation: Full JavaScript rendering with Puppeteer
- šŖ Automatic Cookie Management: Loads all saved cookies automatically
- šÆ CSS Selector Support: Extract specific content with selectors
- š Domain Presets: Built-in selectors for common websites
- š± SPA Support: Fully supports dynamic content and AJAX
Quick Start
1. Configure MCP Server
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"mcp-fetch-page": {
"command": "npx",
"args": ["-y", "mcp-fetch-page@latest"]
}
}
}
To customize runtime data directory (recommended on VPS), set MCP_FETCH_PAGE_DATA_DIR in MCP env:
{
"mcpServers": {
"mcp-fetch-page": {
"command": "npx",
"args": ["-y", "mcp-fetch-page@latest"],
"env": {
"MCP_FETCH_PAGE_DATA_DIR": "/data/mcp-fetch-page"
}
}
}
}
Restart Claude Desktop.
2. Install Chrome Extension (Optional - for authenticated pages)
Download and install the Chrome extension to save cookies from authenticated sessions:
š„ Download Extension from Releases
Installation steps:
- Download
mcp-fetch-page-extension-vX.X.X.zipfrom the latest release - Unzip the file
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (top right)
- Click "Load unpacked" and select the unzipped folder
Usage
Basic Usage
- Login to a website in Chrome
- Click the "Fetch Page MCP Tools" extension icon
- Click "Save Cookies" button
- Use in Claude/Cursor:
fetchpage(url="https://example.com")
Advanced Usage
// Basic fetching with automatic cookie loading
fetchpage(url="https://example.com")
// Extract specific content with CSS selector
fetchpage(url="https://example.com", waitFor="#main-content")
// WeChat articles (automatic selector)
fetchpage(url="https://mp.weixin.qq.com/s/xxxxx")
// Run in non-headless mode for debugging
fetchpage(url="https://example.com", headless=false)
Domain Presets
The system automatically uses optimized selectors for:
- mp.weixin.qq.com ā
.rich_media_wrp(WeChat articles) - wx.zsxq.com ā
.content(Knowledge Planet) - cnblogs.com ā
.post(Blog Garden) - Add more in
mcp-server/domain-rules.json(domain-selectors.jsonremains supported for compatibility)
Debug Tools
# Standalone debug script (recommended for development)
cd mcp-server
node debug.js test-page "https://example.com"
node debug.js test-spa "https://example.com" "#content"
# MCP Inspector (for integration testing)
npx @modelcontextprotocol/inspector
# Then visit http://localhost:6274
Data Directory (Optional)
By default, runtime data is stored under ~/Downloads/mcp-fetch-page/:
- Cookies:
~/Downloads/mcp-fetch-page/cookies - Pages:
~/Downloads/mcp-fetch-page/pages
For MCP usage, configure MCP_FETCH_PAGE_DATA_DIR in your MCP client config env field.
The server will always use:
<MCP_FETCH_PAGE_DATA_DIR>/cookies<MCP_FETCH_PAGE_DATA_DIR>/pages<MCP_FETCH_PAGE_DATA_DIR>/domain-rules.json(optional user overrides merged with built-in rules)
node mcp-server/server.js is only for local development/debugging.
Parameters
url(required): The URL to fetchwaitFor(optional): CSS selector to extract specific contentheadless(optional): Run browser in headless mode (default: true)timeout(optional): Timeout in milliseconds (default: 30000)
File Structure
mcp-fetch-page/
āāā package.json # npm package config
āāā package-lock.json # npm lockfile
āāā node_modules/ # npm dependencies
āāā README.md # This file
āāā README-zh.md # Chinese version
āāā CLAUDE.md # Claude Code usage guide
āāā chrome-extension/ # Chrome extension
ā āāā manifest.json
ā āāā popup.js
ā āāā popup.html
ā āāā background.js
āāā mcp-server/ # MCP server
āāā server.js # Main server
āāā debug.js # Debug tools
āāā domain-rules.json # Domain rules config (selector + blocked markers)
āāā domain-selectors.json # Legacy selector config (compatibility fallback)
Troubleshooting
- Extension not working: Make sure you're on a normal website (not chrome:// pages)
- No cookies found: Try logging in again and saving cookies
- MCP not connecting: Check Node.js installation and restart your editor
- Path error: Set
MCP_FETCH_PAGE_DATA_DIRin MCP configenvto a writable absolute path on your machine/VPS - CSS selector not working: Verify the selector exists on the page
That's it! šŖ
Related Servers
Bright Data
sponsorDiscover, extract, and interact with the web - one interface powering automated access across the public internet.
TheirStack
Search job postings, companies, and technology stacks across 10M+ companies.
Clawpage
Extract and structure any web page into clean JSON.
Unchained Sky
Browser automation MCP server that connects AI agents to your real Chrome browser with structured page understanding in ~500 tokens
Nefino
Access the Nefino renewable energy news API.
Lightpanda Go MCP server
A Go-based MCP server for interacting with the Lightpanda Browser using the Chrome DevTools Protocol (CDP).
Tap
AI forges browser automation as deterministic .tap.js programs. 140+ community skills, 3 runtimes. Programs run forever at $0.
ScrapeGraph AI
AI-powered web scraping using the ScrapeGraph AI API. Requires an API key.
Haunt API
Extract clean, structured data from any URL ā directly from Claude, Cursor, or any MCP-compatible AI.
Crawl4AI
Web scraping skill for Claude AI. Crawl websites, extract structured data with CSS/LLM strategies, handle dynamic JavaScript content. Built on crawl4ai with complete SDK reference, example scripts, and tests.
DOMShell
Browse the web with filesystem commands. 38 MCP tools let AI agents ls, cd, grep, click, and type through Chrome via a Chrome Extension.