Skip to main content
Glama

Playwright MCP Server

by alexrwilliam
list_tools.py5.85 kB
#!/usr/bin/env python3 """List available tools in the Playwright MCP server.""" import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) def list_tools(): """List all available tools following MCP patterns.""" print("🛠️ Playwright MCP Server - Available Tools") print("=" * 50) tools = [ ("navigate", "Navigate to a URL"), ("reload", "Reload the current page"), ("go_back", "Go back in browser history"), ("go_forward", "Go forward in browser history"), ("get_current_url", "Get current page URL with parsed components and query parameters"), ("list_pages", "List all open browser pages/tabs"), ("switch_page", "Switch to a different page/tab by ID"), ("close_page", "Close a specific page/tab"), ("wait_for_popup", "Wait for and capture new popup/tab"), ("switch_to_latest_page", "Switch to most recently opened page"), ("click", "Click an element using any Playwright selector"), ("type_text", "Type text into an element"), ("fill", "Fill an input field"), ("select_option", "Select an option from a dropdown"), ("hover", "Hover over an element"), ("scroll", "Scroll an element or the page"), ("query_selector", "Query for a single element"), ("query_selector_all", "Query for all matching elements"), ("get_html", "Get the full HTML of the current page"), ("get_accessibility_snapshot", "Get the accessibility tree snapshot"), ("screenshot", "Take a screenshot of the page or element"), ("pdf", "Generate a PDF of the current page"), ("evaluate", "Execute JavaScript in the page context"), ("is_visible", "Check if element is visible"), ("is_enabled", "Check if element is enabled"), ("wait_for_element", "Wait for element to appear"), ("wait_for_load_state", "Wait for page load states"), ("clear_text", "Clear text from input field"), ("check_checkbox", "Check a checkbox"), ("uncheck_checkbox", "Uncheck a checkbox"), ("upload_file", "Upload file to input"), ("press_key", "Press keyboard key"), ("wait_for_url", "Wait for URL to match pattern"), ("set_viewport_size", "Set viewport dimensions"), ("get_element_bounding_box", "Get element position and size"), ("get_element_attributes", "Get all element attributes"), ("get_computed_style", "Get CSS computed style"), ("wait_for_network_idle", "Wait for network activity to settle"), ("get_page_errors", "Get JavaScript errors from page"), ("get_console_logs", "Get console output from page"), ("get_network_requests", "Get captured network requests"), ("get_network_responses", "Get captured network responses"), ("clear_network_logs", "Clear network monitoring logs"), ("intercept_route", "Intercept and handle network requests"), ("unroute_all", "Remove all route interceptors"), ("wait_for_response", "Wait for specific network response"), ("get_response_body", "Get response body for URL pattern"), ("get_cookies", "Retrieve cookies from browser"), ("add_cookies", "Add cookies to browser"), ("clear_cookies", "Clear cookies from browser"), ("get_local_storage", "Get localStorage data"), ("set_local_storage", "Set localStorage item"), ("get_session_storage", "Get sessionStorage data"), ("set_session_storage", "Set sessionStorage item"), ("clear_storage", "Clear localStorage and/or sessionStorage"), ("set_extra_headers", "Set additional HTTP headers"), ("set_user_agent", "Set User-Agent header"), ] print(f"📊 Total: {len(tools)} tools\n") categories = { "Navigation & URL": ["navigate", "reload", "go_back", "go_forward", "get_current_url", "wait_for_url"], "Multi-Page Management": ["list_pages", "switch_page", "close_page", "wait_for_popup", "switch_to_latest_page"], "DOM Interaction": ["click", "type_text", "fill", "select_option", "hover", "scroll", "press_key"], "Form Handling": ["clear_text", "check_checkbox", "uncheck_checkbox", "upload_file"], "Element Discovery": ["query_selector", "query_selector_all", "is_visible", "is_enabled", "wait_for_element"], "Element Analysis": ["get_element_bounding_box", "get_element_attributes", "get_computed_style"], "Content Extraction": ["get_html", "get_accessibility_snapshot", "screenshot", "pdf"], "JavaScript & Debugging": ["evaluate", "get_page_errors", "get_console_logs"], "Network Monitoring": ["get_network_requests", "get_network_responses", "clear_network_logs", "wait_for_response", "get_response_body"], "Network Interception": ["intercept_route", "unroute_all"], "Page State": ["wait_for_load_state", "wait_for_network_idle", "set_viewport_size"], "Cookie Management": ["get_cookies", "add_cookies", "clear_cookies"], "Storage Management": ["get_local_storage", "set_local_storage", "get_session_storage", "set_session_storage", "clear_storage"], "Request Headers": ["set_extra_headers", "set_user_agent"] } for category, tool_names in categories.items(): print(f"📋 {category}:") for tool_name, description in tools: if tool_name in tool_names: print(f" • {tool_name:25} - {description}") print() print("🚀 Usage:") print(" playwright-mcp # Start MCP server (stdio)") print(" playwright-mcp --headed # Start with visible browser") print(" uv run mcp dev playwright-mcp # Test with MCP Inspector") if __name__ == "__main__": list_tools()

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/alexrwilliam/playwright-mcp-server'

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