Skip to main content
Glama
JustasMonkev

MCP Accessibility Scanner

browser_navigate

Direct the browser to a specified URL to initiate automated web accessibility scans, enabling WCAG compliance checks with visual and JSON reports for remediation.

Instructions

Navigate to a URL

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to navigate to

Implementation Reference

  • Handler function that executes the browser_navigate tool: ensures an active tab, navigates to the specified URL, includes a snapshot in the response, and adds the equivalent Playwright code.
    handle: async (context, params, response) => {
      const tab = await context.ensureTab();
      await tab.navigate(params.url);
    
      response.setIncludeSnapshot();
      response.addCode(`await page.goto('${params.url}');`);
    },
  • Input schema definition for the browser_navigate tool, specifying the required 'url' parameter.
    schema: {
      name: 'browser_navigate',
      title: 'Navigate to a URL',
      description: 'Navigate to a URL',
      inputSchema: z.object({
        url: z.string().describe('The URL to navigate to'),
      }),
      type: 'destructive',
    },
  • src/tools.ts:38-56 (registration)
    Registration of all tools, including browser_navigate from the navigate module, into the allTools array used by the backend.
    export const allTools: Tool<any>[] = [
      ...common,
      ...console,
      ...dialogs,
      ...evaluate,
      ...files,
      ...form,
      ...install,
      ...keyboard,
      ...navigate,
      ...network,
      ...mouse,
      ...pdf,
      ...screenshot,
      ...snapshot,
      ...tabs,
      ...wait,
      ...verify,
    ];
  • MCP backend callTool method that dispatches to the specific tool handler by name, including browser_navigate.
    async callTool(name: string, rawArguments: mcpServer.CallToolRequest['params']['arguments']) {
      const tool = this._tools.find(tool => tool.schema.name === name)!;
      if (!tool)
        throw new Error(`Tool "${name}" not found`);
      const parsedArguments = tool.schema.inputSchema.parse(rawArguments || {});
      const context = this._context!;
      const response = new Response(context, name, parsedArguments);
      context.setRunningTool(name);
      try {
        await tool.handle(context, parsedArguments, response);
        await response.finish();
        this._sessionLog?.logResponse(response);
      } catch (error: any) {
        response.addError(String(error));
      } finally {
        context.setRunningTool(undefined);
      }
      return response.serialize();
    }
  • BrowserServerBackend constructor initializes _tools using filteredTools, which includes browser_navigate.
    constructor(config: FullConfig, factory: BrowserContextFactory) {
      this._config = config;
      this._browserContextFactory = factory;
      this._tools = filteredTools(config);

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/JustasMonkev/mcp-accessibility-scanner'

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