Playwright MCP (@playwright/mcp) provides a powerful way for developers to integrate Playwright-driven browser automation into LLM-driven workflows through the Model Context Protocol (MCP). Often, you'll need to use a proxy with your automation tasks—whether to access region-restricted content, secure internal networks, or for debugging purposes. This guide explains clearly how you can configure and run Playwright MCP with a proxy.
🤔 What Exactly is Playwright MCP?
Before diving into the proxy setup, let's briefly discuss what MCP (Model Context Protocol) is:
MCP is an open-source, HTTP-like protocol designed to standardize two-way communication between LLM-powered assistants and external tools like browsers, databases, APIs, CRMs, and messaging services. MCP defines discovery, request/response schemas, and robust security mechanisms to simplify integrations, allowing your AI-driven workflow to perform data fetching or trigger actions without building bespoke integrations from scratch.
Playwright MCP integrates Playwright, a popular browser automation tool, into your MCP-based workflows—unlocking powerful browser automation capabilities directly within your LLM-driven applications.
🔐 Why Use a Proxy with Playwright MCP?
You might want proxy integration for several reasons, such as:
- Accessing geo-specific content: Proxy servers enable IP-based geo-location changes.
- Security & Privacy: Proxies can avoid exposing your real IP address.
- Debugging & testing network scenarios: Simulate certain network constraints or behaviors through proxies.
- Security compliance: Certain enterprise setups require mandatory proxy usage.
- Setting up a proxy with Playwright MCP is straightforward—you just specify proxy options within the MCP's built-in configuration.
🛠 Minimal Configuration: Use a Proxy with MCP
Below is a minimal config.json example for configuring MCP to use Playwright with a proxy:
{ "browser": { "browserName": "chromium", "launchOptions": { "proxy": { "server": "https://random.instill.network:8080", "username": "user", "password": "pass" }, "headless": true } }, "server": { "port": 8931, "host": "0.0.0.0" } }
You can add this to your project and run MCP to use Playwright automation with your specified proxy setup.
✅ Advanced Example (Full-Featured Configuration)
Here's a more elaborate example illustrating additional useful settings, like the ability to bypass proxies for certain sites (internal sites) and browser viewport fine-tuning:
proxy-mcp.config.json
{ "browser": { "launchOptions": { "proxy": { "server": "https://random.instill.network:8080", "bypass": "*.internal.example.com", "username": "user", "password": "pass" }, "headless": true }, "contextOptions": { "viewport": { "width": 1280, "height": 720 } } }, "server": { "host": "0.0.0.0", "port": 8931 }, "capabilities": [ "core", "tabs", "pdf", "wait" ] }
🏃 Running The MCP Server With Your Proxy Configuration
After creating your configuration file, simply start Playwright MCP:
npx @playwright/mcp@latest --config=proxy-mcp.config.json
The MCP server will now use your defined proxy settings during all Playwright browser automation tasks—super convenient!
🚀 Programmatic Usage (Node.js)
You might want to integrate MCP server proxy configuration directly into your Node.js workflow for custom integrations. Playwright MCP supports this seamlessly:
import http from 'http'; import { createServer } from '@playwright/mcp'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; (async () => { const mcpServer = await createServer({ browser: { launchOptions: { proxy: { server: 'https://random.instill.network:8080', bypass: '*.internal.example.com', username: 'user', password: 'pass' }, headless: true }, contextOptions: { viewport: { width: 1280, height: 720 } } }, server: { host: '0.0.0.0', port: 8931 }, capabilities: [ 'core', 'tabs', 'pdf', 'wait' ] }); const server = http.createServer((req, res) => { if (req.url === '/messages') { const transport = new SSEServerTransport('/messages', res); transport.bind(res); } else { res.writeHead(404); res.end(); } }); server.listen(8931, () => console.log('🚀 MCP server running at http://0.0.0.0:8931')); })();
🧑💻 VSCode Integration Example (Optional)
If you're working directly within Visual Studio Code, you might find it handy to configure MCP integration directly through VSCode settings:
// settings.json snippet { "mcpServers": { "playwright": { "name": "playwright", "command": "npx", "args": [ "@playwright/mcp@latest", "--config=proxy-mcp.config.json" ] } } }
Now, simply run or integrate MCP from within VSCode for convenient browser-fueled workflows.
🌟 Wrapping Up & Next Steps
Configuring Playwright MCP to use a proxy is simple and blends neatly into existing workflows. Utilize the provided examples to streamline your browser automation tasks with ease.
🔥 Ready to Build Powerful AI-Powered Workflows?
Bring your ideas to life and supercharge your AI-driven workflows with Instill AI. Instill provides robust tooling for AI integration, allowing you to seamlessly orchestrate automation tasks, interact with LLM-powered agents, and build next-gen AI infrastructure.
Top comments (0)