Skip to main content
Glama
epi-builder
by epi-builder

browser_type

Enter text into web page elements during browser automation by specifying the target element and text content.

Instructions

Type text into an element

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
elementYesHuman-readable element description
refYesExact target element reference from page snapshot
textYesText to type into the element

Implementation Reference

  • The handler function that executes the browser_type tool. It ensures the browser and page are ready, then types the provided text into the current page using Playwright's keyboard.type method, and returns a success message.
    private async handleType(element: string, ref: string, text: string) { await this.ensureBrowser(); // Simple type implementation await this.browserState.page!.keyboard.type(text); return { content: [ { type: 'text', text: `Typed "${text}" into ${element}`, }, ], }; }
  • The schema definition for the browser_type tool, including name, description, and input schema specifying element, ref, and text parameters.
    name: 'browser_type', description: 'Type text into an element', inputSchema: { type: 'object', properties: { element: { type: 'string', description: 'Human-readable element description', }, ref: { type: 'string', description: 'Exact target element reference from page snapshot', }, text: { type: 'string', description: 'Text to type into the element', }, }, required: ['element', 'ref', 'text'], }, },
  • src/server.ts:166-168 (registration)
    The switch case registration that dispatches calls to the browser_type tool to the handleType handler function.
    case 'browser_type': return await this.handleType(args?.element as string, args?.ref as string, args?.text as string);
  • src/server.ts:57-149 (registration)
    The tool list registration in the ListToolsRequestSchema handler that includes the browser_type tool in the available tools list.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: 'browser_navigate', description: 'Navigate to a URL', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The URL to navigate to', }, }, required: ['url'], }, }, { name: 'browser_snapshot', description: 'Capture accessibility snapshot of the current page', inputSchema: { type: 'object', properties: {}, }, }, { name: 'browser_click', description: 'Click on an element', inputSchema: { type: 'object', properties: { element: { type: 'string', description: 'Human-readable element description', }, ref: { type: 'string', description: 'Exact target element reference from page snapshot', }, }, required: ['element', 'ref'], }, }, { name: 'browser_type', description: 'Type text into an element', inputSchema: { type: 'object', properties: { element: { type: 'string', description: 'Human-readable element description', }, ref: { type: 'string', description: 'Exact target element reference from page snapshot', }, text: { type: 'string', description: 'Text to type into the element', }, }, required: ['element', 'ref', 'text'], }, }, { name: 'browser_take_screenshot', description: 'Take a screenshot of the current page', inputSchema: { type: 'object', properties: { filename: { type: 'string', description: 'File name to save the screenshot to', }, fullPage: { type: 'boolean', description: 'Take screenshot of full page', }, }, }, }, { name: 'browser_close', description: 'Close the browser', inputSchema: { type: 'object', properties: {}, }, }, ] as Tool[], }; });

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/epi-builder/mcp-test'

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