Skip to main content
Glama
jomon003

PlayMCP Browser Automation Server

by jomon003

type

Simulate keyboard input to type text into specific web elements using a CSS selector, enabling automated form filling and interaction for testing or web scraping tasks.

Instructions

Type text into an element

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
selectorYes
textYes

Implementation Reference

  • Core implementation of the 'type' tool: types text into the specified selector using Playwright's page.type() method.
    async type(selector: string, text: string): Promise<void> { try { if (!this.isInitialized()) { throw new Error('Browser not initialized'); } this.log('Typing into element', { selector, text }); await this.state.page?.type(selector, text); this.log('Type complete'); } catch (error: any) { console.error('Type error:', error); throw new BrowserError('Failed to type text', 'Check if the input element exists and is editable'); } }
  • MCP tool dispatch handler for 'type' tool: validates input and delegates to playwrightController.type()
    case 'type': { if (!args.selector || !args.text) { return { content: [{ type: "text", text: "Selector and text are required" }], isError: true }; } await playwrightController.type(args.selector as string, args.text as string); return { content: [{ type: "text", text: "Text entered successfully" }] }; }
  • Tool definition including name, description, and input schema (selector and text required).
    const TYPE_TOOL: Tool = { name: "type", description: "Type text into an element", inputSchema: { type: "object", properties: { selector: { type: "string" }, text: { type: "string" } }, required: ["selector", "text"] } };
  • src/server.ts:514-552 (registration)
    Registration of all tools including 'type' in the tools dictionary passed to MCP Server capabilities.
    const tools = { openBrowser: OPEN_BROWSER_TOOL, navigate: NAVIGATE_TOOL, type: TYPE_TOOL, click: CLICK_TOOL, moveMouse: MOVE_MOUSE_TOOL, scroll: SCROLL_TOOL, screenshot: SCREENSHOT_TOOL, getPageSource: GET_PAGE_SOURCE_TOOL, getPageText: GET_PAGE_TEXT_TOOL, getPageTitle: GET_PAGE_TITLE_TOOL, getPageUrl: GET_PAGE_URL_TOOL, getScripts: GET_SCRIPTS_TOOL, getStylesheets: GET_STYLESHEETS_TOOL, getMetaTags: GET_META_TAGS_TOOL, getLinks: GET_LINKS_TOOL, getImages: GET_IMAGES_TOOL, getForms: GET_FORMS_TOOL, getElementContent: GET_ELEMENT_CONTENT_TOOL, getElementHierarchy: GET_ELEMENT_HIERARCHY_TOOL, executeJavaScript: EXECUTE_JAVASCRIPT_TOOL, goForward: GO_FORWARD_TOOL, hover: HOVER_TOOL, dragAndDrop: DRAG_AND_DROP_TOOL, selectOption: SELECT_OPTION_TOOL, pressKey: PRESS_KEY_TOOL, waitForText: WAIT_FOR_TEXT_TOOL, waitForSelector: WAIT_FOR_SELECTOR_TOOL, resize: RESIZE_TOOL, handleDialog: HANDLE_DIALOG_TOOL, getConsoleMessages: GET_CONSOLE_MESSAGES_TOOL, getNetworkRequests: GET_NETWORK_REQUESTS_TOOL, uploadFiles: UPLOAD_FILES_TOOL, evaluateWithReturn: EVALUATE_WITH_RETURN_TOOL, takeScreenshot: TAKE_SCREENSHOT_TOOL, mouseMove: MOUSE_MOVE_TOOL, mouseClick: MOUSE_CLICK_TOOL, mouseDrag: MOUSE_DRAG_TOOL, closeBrowser: CLOSE_BROWSER_TOOL
  • src/server.ts:555-565 (registration)
    MCP Server initialization with tools capability including the 'type' tool.
    const server = new Server( { name: "playmcp-browser", version: "1.0.0", }, { capabilities: { tools, }, } );

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/jomon003/PlayMCP'

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