close_page
Close a specific browser tab by its index number to manage open pages during automation tasks.
Instructions
Close tab by index.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pageIdx | Yes | Tab index to close |
Implementation Reference
- src/tools/pages.ts:222-248 (handler)Main handler function executing the close_page tool: validates pageIdx, refreshes tabs, verifies page exists, closes tab via FirefoxDevTools, returns formatted success/error response.export async function handleClosePage(args: unknown): Promise<McpToolResponse> { try { const { pageIdx } = args as { pageIdx: number }; if (typeof pageIdx !== 'number') { throw new Error('pageIdx parameter is required and must be a number'); } const { getFirefox } = await import('../index.js'); const firefox = await getFirefox(); // Refresh tabs to get latest list await firefox.refreshTabs(); const tabs = firefox.getTabs(); const pageToClose = tabs[pageIdx]; if (!pageToClose) { throw new Error(`Page with index ${pageIdx} not found`); } await firefox.closeTab(pageIdx); return successResponse(`✅ closed [${pageIdx}]`); } catch (error) { return errorResponse(error as Error); } }
- src/tools/pages.ts:71-84 (schema)Tool schema defining name 'close_page', description, and inputSchema requiring 'pageIdx' number.export const closePageTool = { name: 'close_page', description: 'Close tab by index.', inputSchema: { type: 'object', properties: { pageIdx: { type: 'number', description: 'Tab index to close', }, }, required: ['pageIdx'], }, };
- src/index.ts:112-112 (registration)Registration of the close_page handler in the central toolHandlers Map.['close_page', tools.handleClosePage],
- src/index.ts:156-156 (registration)Inclusion of closePageTool schema in the allTools array for listing.tools.closePageTool,
- src/tools/index.ts:6-17 (registration)Re-export of closePageTool schema and handleClosePage handler from pages.ts for use in index.ts.export { listPagesTool, newPageTool, navigatePageTool, selectPageTool, closePageTool, handleListPages, handleNewPage, handleNavigatePage, handleSelectPage, handleClosePage, } from './pages.js';