Skip to main content
Glama
nzjami

Playwright MCP

by nzjami

browser_close

Destructive

Close the current browser page in Playwright MCP to manage browser automation sessions and free system resources.

Instructions

Close the page

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler implementation for the browser_close tool. Closes the browser context and instructs to include tabs in response with a code snippet to close the page.
    handle: async (context, params, response) => {
      await context.closeBrowserContext();
      response.setIncludeTabs();
      response.addCode(`await page.close()`);
    },
  • Input/output schema definition for the browser_close tool. No input parameters required, marked as readOnly.
      name: 'browser_close',
      title: 'Close browser',
      description: 'Close the page',
      inputSchema: z.object({}),
      type: 'readOnly',
    },
  • src/tools.ts:17-37 (registration)
    Imports the common tools module (containing browser_close) and registers it by spreading into the allTools export array used by the MCP server backend.
    import common from './tools/common.js';
    import console from './tools/console.js';
    import dialogs from './tools/dialogs.js';
    import evaluate from './tools/evaluate.js';
    import files from './tools/files.js';
    import install from './tools/install.js';
    import keyboard from './tools/keyboard.js';
    import navigate from './tools/navigate.js';
    import network from './tools/network.js';
    import pdf from './tools/pdf.js';
    import snapshot from './tools/snapshot.js';
    import tabs from './tools/tabs.js';
    import screenshot from './tools/screenshot.js';
    import wait from './tools/wait.js';
    import mouse from './tools/mouse.js';
    
    import type { Tool } from './tools/tool.js';
    import type { FullConfig } from './config.js';
    
    export const allTools: Tool<any>[] = [
      ...common,

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, which the description aligns with by implying a destructive close operation. The description adds value by specifying 'the page' as the target, clarifying scope beyond what annotations provide. However, it doesn't mention potential side effects like data loss or confirmation dialogs, which would enhance transparency for a destructive tool.

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 a single, clear sentence with zero wasted words. It's front-loaded with the core action ('Close') and immediately specifies the target ('the page'), making it highly efficient. Every word earns its place in conveying the tool's function.

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

Completeness3/5

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

Given the tool's destructive nature (per annotations) and lack of output schema, the description is minimally adequate. It covers the basic action but doesn't address implications like what happens after closing (e.g., browser state, return values) or error conditions. For a destructive tool with no output schema, more context would improve completeness.

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

Parameters4/5

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

With 0 parameters and 100% schema description coverage, the baseline is 4. The description doesn't need to explain parameters, and it efficiently states the action without redundancy. No additional parameter context is required or provided, which is appropriate for a parameterless tool.

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

Purpose4/5

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

The description 'Close the page' clearly states the action (close) and target (the page), making the purpose immediately understandable. It distinguishes from siblings like browser_navigate or browser_tabs by focusing on termination rather than navigation or tab management. However, it doesn't specify if it closes the current tab or entire browser, which prevents a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., requires an open page), exclusions (e.g., don't use if unsaved changes exist), or sibling tools that might be relevant (like browser_tabs for tab management). This leaves the agent with minimal context for decision-making.

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