โ† Browse

@modbender/selenium-automation

A

Teaches the agent how to perform advanced web automation using Python, Selenium WebDriver, and ChromeDriver.

skillclaude

Install

agr install @modbender/selenium-automation --target claude

Writes 1 file into .claude/skills/, pinned to git-c3ec3ad3.

  • .claude/skills/selenium-automation/SKILL.md

Document


name: selenium-automation description: "Teaches the agent how to perform advanced web automation using Python, Selenium WebDriver, and ChromeDriver." metadata: openclaw: emoji: "๐ŸŒ" requires: - exec - write dependencies: system: - python3 - chromedriver - google-chrome python: - selenium install: | pip install selenium

Selenium Automation Skill

You are an expert at web automation using Python and Selenium WebDriver. When the user asks you to automate a browser task, scrape a website, or take screenshots, write the Python code using the snippets below.

0. Security and Execution Rules

  • Never run the script automatically.
  • After you write the Python script (for example automation.py), you must stop and ask the user for explicit permission to run it.
  • Only use the exec tool after the user says "yes" or "approved".

1. Setup and ChromeDriver

Always configure Chrome to run in headless mode unless the user requests a visible browser.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

# Initialize the WebDriver
service = Service()
driver = webdriver.Chrome(service=service, options=chrome_options)

2. Navigation Commands

Use these commands to open web pages and navigate.

driver.get("[https://example.com](https://example.com)")
driver.refresh()
driver.back()
driver.forward()

current_url = driver.current_url
page_title = driver.title

3. Taking Screenshots

You can take a screenshot of the entire visible window or a specific HTML element.

driver.save_screenshot("full_page.png")

from selenium.webdriver.common.by import By
element = driver.find_element(By.ID, "main-content")
element.screenshot("element.png")

4. JavaScript Injections

Use execute_script to run custom JavaScript directly inside the browser.

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
page_height = driver.execute_script("return document.body.scrollHeight;")

element = driver.find_element(By.ID, "hidden-button")
driver.execute_script("arguments[0].click();", element)

driver.execute_script("document.getElementById('cookie-banner').remove();")

5. Finding and Interacting with Elements

Use these standard commands to find elements, click buttons, and type text.

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".submit-btn")))
button.click()

search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("OpenClaw documentation")
search_box.send_keys(Keys.RETURN)

header = driver.find_element(By.TAG_NAME, "h1")
print("Text:", header.text)
print("Class attribute:", header.get_attribute("class"))

6. Closing the Browser

Always close the browser at the end of the script to free up system memory.

driver.quit()

Repository README

Describes modbender/skill-library-mcp as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.

Skill Library MCP

15,000+ ready-to-use skills for AI coding assistants, served on demand via MCP.

npm version License: MIT Node.js

An MCP server that provides on-demand skill loading for AI coding assistants. Instead of stuffing your system prompt with every skill you might need, this server indexes 15,000+ skills and serves only the ones relevant to your current task โ€” keeping context windows lean and responses focused.

Documentation

Full documentation is at modbender.in/skill-library-mcp โ€” installation, the tools it exposes, configuration, and examples.

Why?

  • 15,000+ skills covering frontend, backend, DevOps, security, testing, databases, AI/ML, automation, and more
  • On-demand loading โ€” skills are fetched only when needed, not crammed into every conversation
  • IDF-weighted search โ€” finds the right skill even from natural language queries like "help me debug a memory leak"
  • Browse by category โ€” 13 categories to discover skills you didn't know existed
  • Works with any MCP-compatible tool โ€” Claude Code, Cursor, Windsurf, VS Code, Claude Desktop, and others
  • Claude Code plugin โ€” one-command install with claude plugin install
  • Zero config โ€” run with npx, no setup needed

Quick Start

Claude Code Plugin (Recommended)

Add the marketplace source, then install the plugin:

claude plugin marketplace add https://github.com/modbender/skill-library-mcp.git --scope user
claude plugin install skill-library --scope user

The MCP server starts automatically when Claude Code launches. No manual configuration needed.

Claude Code (MCP Server)

claude mcp add skill-library --scope user -- npx -y skill-library-mcp

MCP Server (Other Tools)

Add to your claude_desktop_config.json (location varies by OS):

{
  "mcpServers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}

Add to .vscode/mcp.json:

{
  "servers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}
git clone https://github.com/modbender/skill-library-mcp
cd skill-library-mcp
pnpm install
pnpm build

Then point your MCP config to the built binary:

{
  "mcpServers": {
    "skill-library": {
      "command": "node",
      "args": ["/path/to/skill-library-mcp/dist/index.js"]
    }
  }
}

Tools

search_skill

Search for skills by keyword. Returns a ranked list of matching skill names and descriptions.

search_skill({ query: "react patterns" })

load_skill

Load the full content of a skill by name. Optionally includes resource files.

load_skill({ name: "brainstorming", include_resources: true })

list_categories

Browse all skill categories with counts and examples. Use to discover skills before searching.

list_categories()

Skill Categories

The library includes 15,000+ skills across 13 categories:

CategoryExamples
FrontendReact patterns, Angular, Vue, Svelte, Next.js, Tailwind, accessibility
BackendNode.js, FastAPI, Django, NestJS, Express, GraphQL, REST API design
AI & LLMLLM app dev, RAG implementation, agent patterns, prompt engineering, embeddings
DevOps & InfraTerraform, Kubernetes, Docker, AWS, GCP, Azure, CI/CD
Data & DatabasesPostgreSQL, MongoDB, Redis, SQL optimization, ETL pipelines, analytics
SecurityPenetration testing, OWASP, threat modeling, vulnerability scanning, encryption
TestingTDD workflows, Playwright, Vitest, Jest, E2E testing patterns
MobileReact Native, Flutter, iOS, Android, Expo
AutomationWorkflow automation, n8n, Zapier, web scraping, bots
PythonDjango, Flask, FastAPI, pandas, Python tooling
TypeScript & JSTypeScript, JavaScript, Deno, Bun
ArchitectureMicroservices, system design, design patterns, monorepos
OtherHundreds of specialized and niche skills

Skill Format

Skills are directories containing a SKILL.md file with YAML frontmatter:

---
name: my-skill
description: What this skill does
---

# My Skill

Skill content here...

Skills can optionally include a resources/ directory with additional .md files that are appended when include_resources: true is set.

Contributing

Contributions are welcome! To add a new skill:

  1. Create a directory under data/ with your skill name
  2. Add a SKILL.md file with YAML frontmatter (name, description)
  3. Run pnpm dedup to check for duplicates
  4. Submit a PR

Development

pnpm install          # Install dependencies
pnpm test             # Run tests
pnpm build            # Build to dist/
pnpm dev              # Run server locally
pnpm dedup            # Check for duplicate skills
pnpm validate-skills  # Validate data/ directory structure
pnpm fix-skills       # Fix broken skills (dry run by default)
pnpm clean-skills     # Remove invalid skill dirs (dry run by default)
make ci               # Run test + validate + build

Third-Party Content

This project includes skills from openclaw/skills, licensed under the MIT License. See THIRD_PARTY_NOTICES.md for details.

License

MIT

Trustgrade A

  • passBody integrity

    Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.

  • passType matchnot applicable to this artifact type

    Whether the artifact is really the kind of thing its metadata claims it is.

  • passFreshness

    How long since the source repository was last pushed to.

  • passPrompt injection

    Scans the artifact's own text for instructions aimed at your agent rather than at you.

  • passLicense

    Whether the source repository declares an SPDX license permissive enough to redistribute.

How the grade is calculated

Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:

  • Aevery check passed
  • Bone warning
  • Ctwo warnings
  • Dprompt injection or body integrity failed, or three warnings
  • Fone of those failed, and something else is wrong

These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged โ€” not that the artifact is safe.

Versions

  • git-c3ec3ad364362026-07-31