Skip to main content
Glama
eva-wanxin-git

Windows Automation MCP Server

browser_launch

Launch and control web browsers on Windows systems for automated testing, data extraction, or web interaction tasks. Supports headless mode and session management.

Instructions

启动浏览器

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
headlessNo是否无头模式(可选,默认 false)
sessionIdNo会话 ID(可选)

Implementation Reference

  • The main handler function that implements the logic for launching a Puppeteer browser instance and page for a given session.
    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 };
      }
    }
  • Registers the browser_launch tool including its name, description, and input schema in the getToolDefinitions() method.
    {
      name: 'browser_launch',
      description: '启动浏览器',
      inputSchema: {
        type: 'object',
        properties: {
          headless: { type: 'boolean', description: '是否无头模式(可选,默认 false)' },
          sessionId: { type: 'string', description: '会话 ID(可选)' },
        },
      },
    },
  • Defines the input schema for the browser_launch tool, specifying optional headless and sessionId parameters.
    inputSchema: {
      type: 'object',
      properties: {
        headless: { type: 'boolean', description: '是否无头模式(可选,默认 false)' },
        sessionId: { type: 'string', description: '会话 ID(可选)' },
      },
    },
  • Dispatch handler in executeTool switch statement that calls the launchBrowser method.
    case 'browser_launch':
      return await this.launchBrowser(args.headless, args.sessionId);
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. '启动浏览器' (launch browser) implies a creation/initialization action, but it doesn't specify what happens after launch (e.g., whether it opens a new window, returns a session ID, or has side effects like consuming system resources). It also doesn't mention potential failures, permissions needed, or interaction with other tools like 'sessionId' parameter usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two Chinese characters ('启动浏览器'), which directly translates to the tool's purpose. There is no wasted verbiage, and it's front-loaded with the core action, making it efficient despite its simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a browser launch operation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a session handle or success status), how it integrates with other browser tools, or any behavioral nuances, leaving significant gaps for an AI agent to understand its full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with both parameters ('headless' and 'sessionId') well-documented in the schema itself. The description adds no additional meaning about parameters beyond what's already in the schema, so it meets the baseline score of 3 for high schema coverage without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '启动浏览器' (launch browser) is a tautology that essentially restates the tool name 'browser_launch' in Chinese. While it does specify the verb ('launch') and resource ('browser'), it doesn't distinguish this tool from other browser-related siblings like 'browser_navigate' or 'browser_close', nor does it provide any additional context about what launching entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that interact with browsers (e.g., 'browser_navigate', 'browser_close'), but the description doesn't indicate that this is specifically for initializing a browser instance, nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eva-wanxin-git/windows-automation-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server