skills/emillindfors/browser-automation/SKILL.md
Enterprise-grade browser automation using WebDriver protocol. Use when the user needs to automate web browsers, perform web scraping, test web applications, fill forms, take screenshots, monitor performance, or execute multi-step browser workflows. Supports Chrome, Firefox, and Edge with connection pooling and health management.
npx skillsauth add aiskillstore/marketplace browser-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides guidance for using the rust-browser-mcp server to automate web browsers through the WebDriver protocol. It enables enterprise-grade browser control with performance monitoring, multi-session support, and health management.
The rust-browser-mcp server provides 45+ MCP tools for browser automation:
navigate, back, forward, refreshclick, send_keys, hover, find_element, find_elementsget_title, get_text, get_attribute, get_property, get_page_sourcefill_and_submit_form, login_form, scroll_to_element, wait_for_elementexecute_scriptscreenshot, resize_window, get_current_url, get_page_load_statusget_performance_metrics - Page load times, resource timing, navigation datamonitor_memory_usage - Heap monitoring, memory leak detectionget_console_logs - Error detection, log filteringrun_performance_test - Automated performance analysismonitor_resource_usage - Network, FPS, CPU trackingstart_driver, stop_driver, stop_all_driverslist_managed_driversget_healthy_endpoints, refresh_driver_healthforce_cleanup_orphaned_processescreate_recipe - Create reusable automation workflowsexecute_recipe - Run a saved recipelist_recipes - List all available recipesdelete_recipe - Remove a recipeEnsure you have at least one WebDriver installed:
Add to your claude_desktop_config.json:
{
"mcpServers": {
"browser": {
"command": "/path/to/rust-browser-mcp",
"args": ["--transport", "stdio", "--browser", "chrome"]
}
}
}
| Variable | Default | Description |
|----------|---------|-------------|
| WEBDRIVER_ENDPOINT | auto | WebDriver URL or "auto" for auto-discovery |
| WEBDRIVER_HEADLESS | true | Run browsers in headless mode |
| WEBDRIVER_PREFERRED_DRIVER | - | Preferred browser: chrome, firefox, edge |
| WEBDRIVER_CONCURRENT_DRIVERS | firefox,chrome | Browsers to start concurrently |
| WEBDRIVER_POOL_ENABLED | true | Enable connection pooling |
| WEBDRIVER_POOL_MAX_CONNECTIONS | 3 | Max connections per driver type |
1. Use `navigate` with URL to load a page
2. Use `wait_for_element` to ensure page loads
3. Use `get_title` or `get_text` to verify content
1. Navigate to the form page
2. Use `find_element` with CSS selector to locate fields
3. Use `send_keys` to input values
4. Use `click` on submit button, or use `fill_and_submit_form` for convenience
1. Navigate to target page
2. Use `find_elements` to get multiple matching elements
3. Use `get_text` or `get_attribute` to extract data
4. Use `execute_script` for complex DOM traversal
1. Navigate to page under test
2. Use `run_performance_test` for automated analysis
3. Use `get_performance_metrics` for detailed timing data
4. Use `monitor_memory_usage` to detect leaks
5. Use `get_console_logs` to capture errors
1. Define a recipe with `create_recipe` including steps array
2. Each step specifies: action (tool name), arguments, optional retry logic
3. Execute with `execute_recipe` and parameters
4. Recipes support conditions and browser-specific variants
Use session IDs prefixed with browser name for explicit browser control:
chrome_session1 - Uses Chromefirefox_work - Uses Firefoxedge_testing - Uses EdgeYou can run multiple browser sessions concurrently by using different session IDs:
Session: chrome_user1 -> Opens first Chrome tab
Session: chrome_user2 -> Opens second Chrome tab
Session: firefox_admin -> Opens Firefox for different workflow
wait_for_element before interacting with dynamic contentget_page_load_status for slow-loading pagesget_console_logs to debug JavaScript errorslist_managed_drivers to see statuswait_for_elementmonitor_memory_usage for leaksget_console_logs for JavaScript errorsSee companion files for detailed information:
reference/tools.md - Complete tool documentationreference/recipes.md - Recipe system guideexamples/ - Example automation scriptsdevelopment
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.