The Enhanced Web Scraper MCP Server provides comprehensive web scraping, testing, and analysis capabilities across traditional websites, React applications, and React Native web projects.
• Universal Web Scraping: Extract content from any website using CSS selectors with React Native testID/aria-label fallbacks, supporting multiple browsers (Chromium, Firefox, WebKit) and mobile viewport emulation • React Application Testing: Perform multi-step interactions (clicks, fills, taps, swipes, scrolls) on React and React Native web apps with optional hydration waiting and mobile gesture simulation • Deep Component Analysis: Inspect React component trees, props, and state; execute custom JavaScript in React context; wait for specific conditions like navigation or data loading • Enhanced Content Extraction: Retrieve readable content in markdown/text format, comprehensive page information (title, meta tags, performance metrics), and DOM element attributes with computed styles • Development Tools: Monitor Expo/Metro server status, test dropdown interactions with error capture, screenshots, and robust error handling with configurable timeouts • Backward Compatibility: Maintains full support for traditional websites and standard React applications while adding React Native web capabilities
Enables web scraping and automated testing of Create React App applications with support for React hydration detection and component interaction
Provides comprehensive CSS selector support for web scraping with automatic fallback strategies for element targeting across different web frameworks
Offers specialized tools for testing and inspecting Expo web projects, including Metro bundler health checks and React Native web component analysis
Supports web scraping and testing through Firefox browser automation using Playwright
Enables JavaScript execution within React contexts for advanced web application inspection and manipulation
Provides development server monitoring and health checks for Metro bundler in React Native web applications
Supports web scraping and automated testing of Next.js applications with React-specific features like hydration waiting and component inspection
Offers comprehensive React application testing and inspection capabilities, including component tree analysis, state management, and React Native web support with mobile viewport emulation
Enhanced Web Scraper MCP Server
A professional Model Context Protocol (MCP) server for web scraping, React app testing, and React Native web app inspection using Playwright. Fully backward compatible with regular websites and standard React applications.
🚀 Recent Improvements
Enhanced Error Handling - Comprehensive input validation and error reporting
Optimized Performance - Reduced code duplication and improved efficiency
Standardized Timeouts - Configurable timeout constants for reliability
Professional Code Structure - ES6+ best practices and maintainable architecture
🔄 Backward Compatibility
This enhanced server maintains 100% compatibility with:
✅ Regular websites (HTML, CSS, JavaScript)
✅ Standard React applications (Create React App, Next.js, etc.)
✅ Traditional web scraping workflows
✅ Existing CSS selectors and interactions
Plus new enhanced support for:
🆕 React Native web applications
🆕 Expo web projects
🆕 Mobile viewport emulation
🆕 Advanced React component inspection
Features
🌐 Universal Web Scraping
Multi-browser support (Chromium, Firefox, WebKit)
Regular CSS selectors work as expected
Automatic fallback to React Native selectors when needed
Mobile viewport emulation (optional)
Device-specific emulation (iPhone, Pixel, etc.)
📱 Enhanced React Support
Regular React apps - Works with standard React applications
React Native web - Enhanced support for RN web components
React hydration detection - Smart waiting for React apps to load
Component tree analysis - Deep React component inspection
TestID and accessibility support - React Native testing patterns
Mobile gesture simulation - Touch interactions for mobile UX
🔧 Development Tools
Expo development integration - Metro bundler health checks
Framework detection - Identifies React, Expo, and React Native web
Performance monitoring - Load times and metrics
Debug capabilities - Enhanced error reporting
Available Tools
1. scrape_page
- Universal Web Scraping
Works with any website - regular HTML, React apps, or React Native web.
Regular website example:
React Native web example:
2. test_react_app
- Universal React Testing
Works with any React application - standard React or React Native web.
Standard React app example:
React Native web example:
3. get_page_info
- Enhanced Page Analysis
Provides comprehensive information for any web page with React-specific insights.
4. extract_content
- Clean Content Extraction
Extract clean, readable content from web pages without HTML/CSS clutter. Perfect for documentation, articles, and structured content consumption.
Output Example:
Features:
Clean Structure - Preserves headings, paragraphs, lists, code blocks
Link Extraction - Categorizes links as internal, external, anchor, or download
Content Filtering - Removes navigation, ads, sidebars automatically
Multiple Formats - Markdown or plain text output
5. wait_for_element
- Smart Element Waiting
Intelligent element waiting with automatic selector strategy fallbacks.
React Native Web Specific Tools
6. inspect_react_app
- React Component Analysis
Deep inspection of React applications (works best with React Native web).
7. wait_for_react_state
- React State Management
Wait for React-specific conditions like hydration, navigation, data loading.
8. execute_in_react_context
- JavaScript Execution
Execute JavaScript in React context for advanced inspection.
9. check_expo_dev_server
- Expo Development Tools
Check Expo/Metro bundler status for development workflows.
Selector Strategy Priority
The server uses intelligent selector strategies:
Primary: Direct CSS selector (e.g.,
#button
,.class
,input[name='email']
)Fallback 1: TestID attribute (
[data-testid="button"]
)Fallback 2: Accessibility label (
[aria-label="Button"]
)Fallback 3: AccessibilityLabel (
[accessibilityLabel="Button"]
)
This ensures regular CSS selectors work normally while providing React Native web compatibility.
Usage Examples
Regular Website Scraping
Standard React App Testing
React Native Web App Testing
Clean Content Extraction
Installation
Usage with Amazon Q Developer
Troubleshooting
Error Handling
Input Validation - Server validates required parameters and provides clear error messages
Timeout Configuration - Default timeouts are optimized but can be adjusted per request
Browser Cleanup - Automatic resource cleanup prevents memory leaks
Regular Websites
Use standard CSS selectors (
.class
,#id
,tag[attribute]
)Set
mobileViewport: false
(default) for desktop sitesSet
waitForHydration: false
(default) for non-React sites
React Applications
Set
waitForHydration: true
for better reliabilityUse semantic selectors when possible
Check browser console for React errors
React Native Web
Use
testID
attributes in your componentsEnable
mobileViewport
or specifydevice
Set
waitForHydration: true
Use
inspect_react_app
to see available elements
License
MIT
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Enables web scraping, React app testing, and React Native web app inspection using Playwright with multi-browser support. Provides backward compatibility with regular websites while offering enhanced features for React applications including mobile viewport emulation and component analysis.