Skip to main content
Glama
merajmehrabi

Puppeteer MCP Server

by merajmehrabi

puppeteer_navigate

Navigate web pages programmatically by directing a browser to specific URLs for automated browsing tasks.

Instructions

Navigate to a URL

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes

Implementation Reference

  • The switch case in handleToolCall that executes the puppeteer_navigate tool: navigates to the given URL using page.goto, waits for network idle, handles HTTP errors and timeouts, returns success or error message.
    case "puppeteer_navigate": try { logger.info('Navigating to URL', { url: args.url }); const response = await page.goto(args.url, { waitUntil: 'networkidle0', timeout: 30000 }); if (!response) { throw new Error('Navigation failed - no response received'); } const status = response.status(); if (status >= 400) { throw new Error(`HTTP error: ${status} ${response.statusText()}`); } logger.info('Navigation successful', { url: args.url, status }); return { content: [{ type: "text", text: `Successfully navigated to ${args.url} (Status: ${status})`, }], isError: false, }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); logger.error('Navigation failed', { url: args.url, error: errorMessage }); return { content: [{ type: "text", text: `Navigation failed: ${errorMessage}\nThis could be due to:\n- Network connectivity issues\n- Site blocking automated access\n- Page requiring authentication\n- Navigation timeout\n\nTry using a different URL or checking network connectivity.`, }], isError: true, }; }
  • Tool definition object specifying name 'puppeteer_navigate', description, and inputSchema requiring a 'url' string parameter.
    { name: "puppeteer_navigate", description: "Navigate to a URL", inputSchema: { type: "object", properties: { url: { type: "string" }, }, required: ["url"], }, },
  • src/server.ts:35-37 (registration)
    Registers the handler for listing available tools, returning the TOOLS array which includes puppeteer_navigate.
    server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS, }));
  • src/server.ts:39-41 (registration)
    Registers the general tool call handler which dispatches to handleToolCall, routing 'puppeteer_navigate' calls to its specific case.
    server.setRequestHandler(CallToolRequestSchema, async (request) => handleToolCall(request.params.name, request.params.arguments ?? {}, state, 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/merajmehrabi/puppeteer-mcp-server'

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