Skip to main content
Glama

list-browsers

Discover active browser instances for Vite development. Filter by type or tags to manage connections and monitor usage during real-time code updates.

Instructions

Lists all active browser instances

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by browser type
tagsNoFilter by tags
includeStatsNoInclude usage statistics (default: false)

Implementation Reference

  • Handler function that lists active browser instances, filters by type/tags, optionally includes stats, formats as JSON, and handles errors.
    async ({ type, tags, includeStats = false }) => { try { const browsers = contextManager.listContexts({ type: type as BrowserType | undefined, tags }); if (browsers.length === 0) { return { content: [ { type: 'text', text: 'No active browsers found' } ] }; } const browserInfo = browsers.map(browser => { const info: any = { id: browser.id, type: browser.type, displayName: browser.displayName, targetUrl: browser.metadata.targetUrl, tags: browser.metadata.tags, purpose: browser.metadata.purpose, createdAt: browser.createdAt, lastUsedAt: browser.lastUsedAt }; return info; }); let stats = null; if (includeStats) { stats = contextManager.getContextStats(); } const result = { totalBrowsers: browsers.length, browsers: browserInfo, ...(stats && { statistics: stats }) }; return { content: [ { type: 'text', text: JSON.stringify(result, null, 2) } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); Logger.error('Failed to list browsers:', error); return { content: [ { type: 'text', text: `Failed to list browsers: ${errorMessage}` } ], isError: true }; } }
  • Zod input schema defining optional parameters: browser type filter, tags filter, and includeStats flag.
    { type: z.enum(['chromium', 'firefox', 'webkit']).optional().describe('Filter by browser type'), tags: z.array(z.string()).optional().describe('Filter by tags'), includeStats: z.boolean().optional().describe('Include usage statistics (default: false)') },
  • Direct registration of the 'list-browsers' tool on the MCP server within the registerBrowserManagerTools function, including inline schema and handler.
    server.tool( 'list-browsers', 'Lists all active browser instances', { type: z.enum(['chromium', 'firefox', 'webkit']).optional().describe('Filter by browser type'), tags: z.array(z.string()).optional().describe('Filter by tags'), includeStats: z.boolean().optional().describe('Include usage statistics (default: false)') }, async ({ type, tags, includeStats = false }) => { try { const browsers = contextManager.listContexts({ type: type as BrowserType | undefined, tags }); if (browsers.length === 0) { return { content: [ { type: 'text', text: 'No active browsers found' } ] }; } const browserInfo = browsers.map(browser => { const info: any = { id: browser.id, type: browser.type, displayName: browser.displayName, targetUrl: browser.metadata.targetUrl, tags: browser.metadata.tags, purpose: browser.metadata.purpose, createdAt: browser.createdAt, lastUsedAt: browser.lastUsedAt }; return info; }); let stats = null; if (includeStats) { stats = contextManager.getContextStats(); } const result = { totalBrowsers: browsers.length, browsers: browserInfo, ...(stats && { statistics: stats }) }; return { content: [ { type: 'text', text: JSON.stringify(result, null, 2) } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); Logger.error('Failed to list browsers:', error); return { content: [ { type: 'text', text: `Failed to list browsers: ${errorMessage}` } ], isError: true }; } } );
  • src/index.ts:82-82 (registration)
    Top-level call to registerBrowserManagerTools in main server initialization, which registers the 'list-browsers' tool among browser management tools.
    const contextManager = registerBrowserManagerTools(server);

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/ESnark/blowback'

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