playwright-min-network-mcp

A minimal network monitoring MCP tool for Playwright browser automation. **Just 3 simple tools** to capture, filter, and analyze network traffic during web automation.

GitHub Stars

5

User Rating

Not Rated

Favorites

0

Views

3

Forks

0

Issues

2

README
playwright-min-network-mcp

A minimal network monitoring MCP tool for Playwright browser automation. Just 5 simple tools to capture, filter, and analyze network traffic during web automation with MCP context efficiency.

graph LR
    A[Claude AI] --> B[๐Ÿ” Network MCP<br/>monitoring only]
    A --> C[๐ŸŽฎ Playwright MCP<br/>operation only]
    
    B --> D[Chrome Browser<br/>CDP: 9222]
    C --> D
    
    style B fill:#fff3e0
    style C fill:#f3e5f5
    style D fill:#e1f5fe
flowchart TD
    Start([Start]) --> A[๐Ÿ” Network MCP startup]
    A --> B[๐ŸŒ Launch browser<br/>CDP: 9222 waiting]
    B --> C[๐ŸŽฎ Playwright MCP startup]
    C --> D[๐ŸŽฎ Connect to existing browser via CDP]
    D --> E[Both MCPs sharing browser state]
    
    E -->|๐Ÿ” Network MCP| F[๐Ÿ” Start network monitoring]
    E -->|๐ŸŽฎ Playwright MCP| G[๐ŸŽฎ Execute browser operations]
    
    subgraph Browser["๐ŸŒ"]
        F --> H[๐Ÿ” Record requests/responses]
        G --> I[๐ŸŽฎ Page navigation & clicks]
    end
    
    H --> J[๐Ÿ” Get monitoring results]
    I --> K[๐ŸŽฎ Operation complete]
    J --> End([Complete])
    K --> End
    
    style A fill:#fff3e0
    style B fill:#f0f8ff,stroke:#4682b4,stroke-width:2px
    style C fill:#f3e5f5
    style D fill:#f3e5f5
    style E fill:#e8f5e8
    style Browser fill:#f0f8ff,stroke:#4682b4,stroke-width:3px
    style F fill:#fff3e0
    style G fill:#f3e5f5
    style H fill:#fff3e0
    style I fill:#f3e5f5
    style J fill:#fff3e0
    style K fill:#f3e5f5
Features
  • ๐Ÿ“ก Network Capture: Real-time request/response monitoring via Chrome DevTools Protocol
  • ๐Ÿ” Smart Filtering: Content-type, URL patterns, and HTTP method filtering
  • โšก MCP Context Safe: 512B previews + 50KB detail limits prevent token overflow
  • ๐Ÿ”„ Dynamic Updates: Change filters without browser restart
  • ๐Ÿค Playwright Integration: Works seamlessly with Playwright MCP
Prerequisites
1. Install Playwright

This tool requires Playwright to be installed for browser automation:

npm install playwright
# Install browser binaries
npx playwright install chromium
2. Install Network Monitor MCP
npm install playwright-min-network-mcp
Quick Start
Basic MCP Configuration

Add to your .mcp.json:

{
  "mcpServers": {
    "network-monitor": {
      "command": "npx",
      "args": ["playwright-min-network-mcp"]
    }
  }
}
Combined with Playwright MCP
{
  "mcpServers": {
    "network-monitor": {
      "command": "npx",
      "args": ["playwright-min-network-mcp"]
    },
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp", "--cdp-endpoint", "http://localhost:9222"]
    }
  }
}
Usage Examples
Basic Workflow
// 1. Start monitoring (launches visible Chrome browser)
{
  "tool": "start_monitor"
}

// 2. Use Playwright MCP to interact with web pages
// The browser will automatically connect to the same CDP endpoint

// 3. Retrieve captured network requests (compact overview with 512B previews)
{
  "tool": "get_recent_requests",
  "arguments": {
    "count": 50
  }
}

// 4. Get detailed request info by UUID (limited to 50KB, headers optional)
{
  "tool": "get_request_detail",
  "arguments": {
    "uuid": "123e4567-e89b-12d3-a456-426614174000",
    "include_headers": false
  }
}

// 5. Stop monitoring when done
{
  "tool": "stop_monitor"
}
Filtering Examples
// Include everything (CSS, JS, images, etc.)
{"tool": "start_monitor", "arguments": {"filter": {"content_types": "all"}}}

// Custom content types  
{"tool": "start_monitor", "arguments": {"filter": {"content_types": ["application/json", "text/css"]}}}

// Update filters without restarting browser
{"tool": "update_filter", "arguments": {"filter": {"content_types": ["application/json"], "url_include_patterns": ["api/"], "methods": ["POST"]}}}
API Reference
Tools
  • start_monitor: Launch browser and start monitoring
  • update_filter: Change filters without browser restart
  • stop_monitor: Stop monitoring
  • get_recent_requests: Get compact overview with 512B previews
  • get_request_detail: Get full details by UUID (50KB limit)
Default Filtering

Captures API and form data by default:

  • application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain
  • Excludes CSS, JS, images (use content_types: "all" to include)
Output Format

Compact overview (get_recent_requests) with 512B request/response body previews:

{
  "total_captured": 156,
  "showing": 30,
  "requests": [
    {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "method": "POST",
      "status": 200,
      "url": "https://api.github.com/graphql",
      "mimeType": "application/json",
      "requestBodyPreview": "{\"query\": \"query GetRepository...",
      "requestBodySize": 2048,
      "responseBodyPreview": "{\"data\": {\"repository\": {...",
      "responseBodySize": 4096,
      "timestamp": 1641472496000,
      "responseTimestamp": 1641472496123
    }
  ]
}

Full request details (via get_request_detail with UUID, limited to 50KB):

{
  "id": "request-123",
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "url": "https://api.github.com/graphql",
  "method": "POST",
  "headers": undefined,
  "timestamp": 1641472496000,
  "type": "request",
  "body": "{\"query\": \"query GetRepository($owner: String!, $name: String!) { ... }\"}",
  "response": {
    "status": 200,
    "headers": undefined,
    "mimeType": "application/json",
    "body": "{\"data\": {\"repository\": {...}}} \n... [truncated from 67647 bytes]"
  },
  "responseTimestamp": 1641472496123
}
Requirements
  • Node.js โ‰ฅ18.0.0
  • Playwright (npm install playwright && npx playwright install chromium)
Development
# Clone and install
git clone https://github.com/bun913/playwright-min-network-mcp.git
cd playwright-min-network-mcp
npm install

# Build
npm run build

# Test
npm run test:ci

# Development mode
npm run dev

# Debug with MCP Inspector
npm run debug
License

MIT License - see LICENSE file for details.

Author Information
bun

I'm a SDET and solution architect in Japan.

28

Followers

92

Repositories

0

Gists

0

Total Contributions