proxy_start_server
Start an HTTP/HTTPS proxy server to monitor and analyze traffic, with optional SSL bumping for HTTPS interception. Configure host, port, and SSL settings as needed.
Instructions
Start the proxy server with optional SSL bumping
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| enableSSLBumping | No | Enable SSL bumping for HTTPS traffic interception | |
| host | No | Host to bind proxy server to | localhost |
| port | No | Port to run proxy server on |
Implementation Reference
- src/tools/tool-handlers.js:223-243 (handler)Handler logic for 'proxy_start_server' tool: checks if running, starts proxyServer with options, returns formatted status message.case 'proxy_start_server': if (this.proxyServer.isRunning()) { return { content: [{ type: "text", text: `Proxy server is already running on ${this.proxyServer.getAddress()}` }] }; } await this.proxyServer.start(args.port, args.host, { enableSSLBumping: args.enableSSLBumping }); const serverStatus = this.proxyServer.getStatus(); return { content: [{ type: "text", text: `🚀 Proxy server started!\n\nAddress: ${this.proxyServer.getAddress()}\nPAC URL: ${this.proxyServer.getAddress()}/proxy.pac\nCA Certificate: ${this.proxyServer.getAddress()}/ca.crt\nSSL Bumping: ${serverStatus.sslBumpingEnabled ? 'ENABLED' : 'DISABLED'}\nMonitoring: ${this.targetManager.getStats().enabled} domains${serverStatus.sslBumpingEnabled ? '\n\n⚠️ SSL Bumping is active - install CA certificate for HTTPS interception!' : ''}` }] };
- Tool schema definition: name, description, inputSchema with port (default 8080), host (default localhost), enableSSLBumping (default false).proxy_start_server: { name: "proxy_start_server", description: "Start the proxy server with optional SSL bumping", inputSchema: { type: "object", properties: { port: { type: "number", description: "Port to run proxy server on", default: 8080 }, host: { type: "string", description: "Host to bind proxy server to", default: "localhost" }, enableSSLBumping: { type: "boolean", description: "Enable SSL bumping for HTTPS traffic interception", default: false } } } },
- src/proxy/proxy-server.js:38-78 (helper)Core ProxyServer.start() method implementation: creates HTTP server, sets up request/connect/PAC handlers, listens on port/host.async start(port = 8080, host = 'localhost') { if (this.running) { throw new Error('Proxy server is already running'); } this.port = port; this.host = host; this.metrics.startTime = new Date(); this.server = http.createServer(); // Handle HTTP requests this.server.on('request', (req, res) => { this._handleHttpRequest(req, res); }); // Handle HTTPS CONNECT method for tunneling this.server.on('connect', (req, clientSocket, head) => { this._handleHttpsConnect(req, clientSocket, head); }); // Serve PAC file this.server.on('request', (req, res) => { if (req.url === '/proxy.pac') { this._servePacFile(req, res); return; } }); return new Promise((resolve, reject) => { this.server.listen(port, host, (error) => { if (error) { reject(error); } else { this.running = true; console.log(`🚀 Proxy server started on ${host}:${port}`); resolve(); } }); }); }