browser_launch
Launch and control web browsers programmatically for automated testing, web scraping, or browser-based workflows. Supports headless mode for background operations and session management.
Instructions
启动浏览器
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | 是否无头模式(可选,默认 false) | |
| sessionId | No | 会话 ID(可选) |
Input Schema (JSON Schema)
{
"properties": {
"headless": {
"description": "是否无头模式(可选,默认 false)",
"type": "boolean"
},
"sessionId": {
"description": "会话 ID(可选)",
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- src/tools/browser.js:146-167 (handler)The handler function for browser_launch that launches a Puppeteer browser instance, creates a new page, and stores them in maps keyed by sessionId.async launchBrowser(headless = false, sessionId = 'default') { try { if (this.browsers.has(sessionId)) { return { success: true, message: '浏览器已存在', sessionId }; } const browser = await this.puppeteer.launch({ headless, defaultViewport: null, args: ['--start-maximized'] }); const page = await browser.newPage(); this.browsers.set(sessionId, browser); this.pages.set(sessionId, page); return { success: true, message: '浏览器已启动', sessionId }; } catch (error) { return { success: false, error: error.message }; } }
- src/tools/browser.js:27-37 (schema)The tool schema definition for browser_launch, including name, description, and inputSchema for headless and sessionId parameters.{ name: 'browser_launch', description: '启动浏览器', inputSchema: { type: 'object', properties: { headless: { type: 'boolean', description: '是否无头模式(可选,默认 false)' }, sessionId: { type: 'string', description: '会话 ID(可选)' }, }, }, },
- src/tools/browser.js:126-144 (registration)The switch statement in executeTool that registers and routes browser_launch to its handler function.switch (name) { case 'browser_launch': return await this.launchBrowser(args.headless, args.sessionId); case 'browser_navigate': return await this.navigate(args.url, args.sessionId); case 'browser_click': return await this.click(args.selector, args.sessionId); case 'browser_type': return await this.type(args.selector, args.text, args.sessionId); case 'browser_screenshot': return await this.screenshot(args.path, args.fullPage, args.sessionId); case 'browser_get_text': return await this.getText(args.selector, args.sessionId); case 'browser_close': return await this.closeBrowser(args.sessionId); default: throw new Error(`未知工具: ${name}`); } }
- src/tools/browser.js:112-116 (registration)The canHandle method that checks if browser_launch is one of the supported tools.canHandle(toolName) { const tools = ['browser_launch', 'browser_navigate', 'browser_click', 'browser_type', 'browser_screenshot', 'browser_get_text', 'browser_close']; return tools.includes(toolName); }