
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
webscout-mcp
Advanced tools
Model Context Protocol server for reverse engineering chat interfaces - automatically discover streaming API endpoints, handle authentication flows, and capture network traffic with interactive browser automation
WebScout MCP is a powerful Model Context Protocol (MCP) server designed for reverse engineering web applications, particularly chat interfaces and streaming APIs. It provides comprehensive browser automation tools to discover, analyze, and capture network traffic from complex web applications.
reverse_engineer_chat - Automated analysis of chat interfaces with streaming endpoint discoverystart_network_capture - Begin comprehensive network traffic monitoringstop_network_capture - End capture and retrieve all collected dataget_network_capture_status - Check capture session status and statisticsclear_network_capture - Clear captured data without stopping the capture sessioninitialize_session - Create a new browser session for interactive operationsclose_session - Clean up browser resources and end sessionnavigate_to_url - Navigate to different URLs within a sessionswitch_tab - Switch between open browser tabsclick_element - Click buttons, links, or any interactive elementsfill_form - Fill out form fields with automatic submission optionswait_for_element - Wait for dynamic elements to appear before continuingtake_screenshot - Capture screenshots of viewport, full page, or specific elementsget_current_page_info - Retrieve comprehensive page information and tab details# Clone the repository
git clone <repository-url>
cd webscout-mcp
# Install dependencies
npm install
# Install Playwright browsers for automation
npx playwright install
Add WebScout MCP to your MCP client configuration:
{
"mcpServers": {
"webscout-mcp": {
"command": "node",
"args": ["/absolute/path/to/webscout-mcp/src/index.js"]
}
}
}
# Start the MCP server directly
npm start
# Or run with node
node src/index.js
# Run with visible browser for debugging
node src/index.js # Set headless: false in session initialization
// Initialize session and analyze a chat interface
const session = await initializeSession("https://chat.example.com");
const analysis = await reverseEngineerChat("https://chat.example.com", "Hello", 8000);
console.log("Found endpoints:", analysis.length);
await closeSession(session.sessionId);
// Handle login and navigate to protected content
const session = await initializeSession("https://app.example.com/login");
await fillForm(session.sessionId, [
{ selector: 'input[name="email"]', value: "user@example.com" },
{ selector: 'input[name="password"]', value: "password123" }
], 'button[type="submit"]');
await waitForElement(session.sessionId, ".dashboard", 10000);
const screenshot = await takeScreenshot(session.sessionId);
await closeSession(session.sessionId);
// Monitor all network activity on a page
const session = await initializeSession("https://api.example.com");
await startNetworkCapture(session.sessionId, {
capturePostOnly: false,
captureStreaming: true,
maxCaptures: 100
});
// Perform actions that generate network traffic
await navigateToUrl(session.sessionId, "https://api.example.com/data");
const captureData = await stopNetworkCapture(session.sessionId);
console.log("Captured requests:", captureData.data.requests.length);
await closeSession(session.sessionId);
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Chat Interface │───▶│ Browser Automation│───▶│ Network Capture │
│ (Target URL) │ │ (Playwright) │ │ (CDP + Route) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Message Input │ │ DOM Interaction │ │ Request/Response│
│ Detection │ │ (Auto-fill) │ │ Analysis │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Structured Data │
│ Output (JSON) │
└─────────────────┘
The system detects multiple streaming response formats:
data: {"content": "..."}data: {"choices": [{"delta": {"content": "..."}}]}event: message\ndata: {...}token, delta, content fieldsf:{...}, 0:"...", e:{...} patternswebscout-mcp/
├── src/
│ ├── index.js # Main MCP server implementation
│ └── tools/ # Specialized tool modules
│ ├── reverseEngineer.js # Tool exports and coordination
│ ├── reverseEngineerChat.js # Automated chat analysis
│ ├── sessionManagement.js # Browser session lifecycle
│ ├── visualInspection.js # Screenshots and page info
│ ├── interaction.js # Clicking and form filling
│ ├── navigation.js # URL navigation and tab switching
│ └── networkCapture.js # Network traffic monitoring
│ └── utilities/ # Shared utility functions
│ ├── browser.js # Browser automation utilities
│ └── network.js # Network pattern detection
├── package.json # Dependencies and scripts
├── mcp-config.json # MCP client configuration example
└── README.md # This documentation
| Variable | Description | Default |
|---|---|---|
NODE_ENV | Environment mode | development |
DEBUG | Enable debug logging | false |
Update your MCP client's configuration file:
{
"mcpServers": {
"webscout-mcp": {
"command": "node",
"args": ["/path/to/webscout-mcp/src/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
Run the comprehensive test suite:
# Run all tests
npm test
# Run specific test suites
npm run test:utils # Utility function tests
npm run test:mcp # MCP server functionality
npm run test:interactive # Interactive browser tools
git checkout -b feature-namenpm testThis project is licensed under the ISC License - see the LICENSE file for details.
"Browser not found" error
# Install Playwright browsers
npx playwright install
"Connection timeout" error
captureWindowMs parameter"No streaming endpoints found"
MCP connection issues
mcp-config.jsonIf you encounter issues or have questions:
WebScout MCP - Your intelligent companion for web application reverse engineering and API discovery.
Made with ❤️ for developers, security researchers, and API enthusiasts
FAQs
Model Context Protocol server for reverse engineering chat interfaces - automatically discover streaming API endpoints, handle authentication flows, and capture network traffic with interactive browser automation
We found that webscout-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.