npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

locatorlabs-mcp

v1.0.1

Published

MCP server for intelligent Playwright locator generation - Get locators, analyze pages, generate POMs, and run tests

Readme

LocatorLabs MCP Server

🎯 Intelligent Playwright locator generation powered by AI

An MCP (Model Context Protocol) server that provides smart locator generation for Playwright test automation.

Works directly in VS Code (with GitHub Copilot), Cursor, Windsurf, Cline, and Claude Desktop. No extra apps needed - just your favorite IDE!

npm version

⚡ One-Click Install

✨ Features

| Feature | Description | |---------|-------------| | 🎯 Get Locators | Get all possible locators for any element (Playwright + Selenium formats) | | 📊 Analyze Page | Scan pages and identify all interactive elements | | 🏗️ Generate POM | Auto-generate Page Object classes for Playwright & Selenium | | ✅ Run Tests | Execute Playwright tests and get pass/fail results | | 📝 Generate Tests | Create executable test scripts |

🔧 Supported Frameworks

| Framework | Locators | Page Object Model | |-----------|----------|-------------------| | Playwright | ✅ getByRole, getByTestId, etc. | ✅ TypeScript, JavaScript, Python | | Selenium | ✅ By.id, By.xpath, By.cssSelector | ✅ Java, Python, C# |

🚀 Quick Start

For VS Code (v1.99+ with GitHub Copilot)

One-Line Install (Mac/Linux):

code --add-mcp '{"name":"locatorlabs","command":"npx","args":["-y","locatorlabs-mcp"]}'

One-Line Install (Windows PowerShell):

code --add-mcp '{\"name\":\"locatorlabs\",\"command\":\"npx\",\"args\":[\"-y\",\"locatorlabs-mcp\"]}'

Or Manual Setup:

  1. Open Command Palette (Cmd+Shift+P / Ctrl+Shift+P)
  2. Type: MCP: Add Server
  3. Select: Command (stdio)
  4. Command: npx
  5. Args: -y locatorlabs-mcp

Using with GitHub Copilot:

  1. Enable Agent Mode: Settings → Search chat.agent.enabled → Enable
  2. Open Copilot Chat (Ctrl+Cmd+I / Ctrl+Alt+I)
  3. Switch to Agent mode (dropdown at top)
  4. Chat: "Get locators for login button on https://saucedemo.com"

For Claude Desktop

Step 1: Open config file

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Step 2: Add this configuration:

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

Step 3: Restart Claude Desktop

For Cursor IDE

One-Line Install:

cursor --add-mcp '{"name":"locatorlabs","command":"npx","args":["-y","locatorlabs-mcp"]}'

Or Manual: Go to Cursor Settings → MCP → Add new MCP Server

  • Name: locatorlabs
  • Command: npx -y locatorlabs-mcp

For VS Code + Cline Extension

Add to Cline MCP settings:

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

📖 Usage Examples

Just chat naturally:

Get Locators for an Element

"Get me all locators for the login button on https://www.saucedemo.com"

Response:

| Type | Locator | Reliability | |------|---------|-------------| | testId | getByTestId('login-button') | 98% | | role | getByRole('button', { name: 'Login' }) | 95% | | id | locator('#login-button') | 90% |

Analyze Entire Page

"Analyze all form elements on https://www.saucedemo.com"

Generate Page Object Model

Playwright:

"Generate a TypeScript Page Object for https://www.saucedemo.com and call it LoginPage"

Selenium:

"Generate a Java Selenium Page Object for https://www.saucedemo.com and call it LoginPage"

"Generate a C# Selenium Page Object for https://www.saucedemo.com called LoginPage"

"Generate a Python Selenium POM for https://www.saucedemo.com named LoginPage"

Run a Test

"Run a test that logs into saucedemo.com with standard_user and secret_sauce, then verify Products page appears"

Response:

✅ Test PASSED (3.2s)
- Navigate to login page ✅
- Enter username ✅
- Enter password ✅
- Click login ✅
- Verify Products visible ✅

Generate Test Script

"Generate a Python test script for the saucedemo login flow"

🛠️ Available Tools

| Tool | Description | |------|-------------| | get_locators | Get all possible locators (Playwright + Selenium formats) | | analyze_page | List all interactive elements on a page | | generate_page_object | Create POM class (Playwright: TS/JS/Python, Selenium: Java/Python/C#) | | run_test | Execute tests in real browser, get pass/fail | | generate_test | Generate executable test scripts |

📦 Supported Languages for Page Objects

| Language | Framework | Example Output | |----------|-----------|----------------| | typescript | Playwright | page.getByRole('button') | | javascript | Playwright | page.getByRole('button') | | python | Playwright | page.get_by_role('button') | | java-selenium | Selenium | @FindBy(id = "btn") | | python-selenium | Selenium | By.ID, "btn" | | csharp-selenium | Selenium | [FindsBy(How = How.Id)] |

🎯 Supported Test Actions

| Action | Description | |--------|-------------| | navigate | Go to URL | | click | Click element | | fill | Enter text | | clear | Clear input field | | check / uncheck | Toggle checkbox | | select | Select dropdown option | | hover | Mouse hover | | press | Keyboard key press | | assert_visible | Verify element visible | | assert_hidden | Verify element hidden | | assert_text | Verify text content | | assert_value | Verify input value | | assert_url | Verify page URL | | assert_title | Verify page title | | wait | Wait for time | | wait_for_element | Wait for element | | screenshot | Capture screenshot |

🏆 Locator Priority

LocatorLabs ranks locators by reliability:

  1. data-testid (98%) - Best, explicitly for testing
  2. Role + Name (95%) - Playwright recommended
  3. Label (90%) - Accessible
  4. ID (90%) - Stable if meaningful
  5. Placeholder (85%) - Good for inputs
  6. Text (75%) - May change
  7. CSS (60%) - Can be brittle
  8. XPath (40%) - Avoid unless necessary

🔄 LocatorLabs vs Playwright MCP

| Feature | Playwright MCP | LocatorLabs MCP | |---------|----------------|-----------------| | Get all locators for element | ❌ | ✅ | | Locator reliability ranking | ❌ | ✅ | | Selenium locator format | ❌ | ✅ | | Generate Playwright POM | ❌ | ✅ | | Generate Selenium POM (Java/C#/Python) | ❌ | ✅ | | Run tests with pass/fail | ❌ | ✅ | | Browser automation | ✅ | ✅ | | Device emulation | ✅ | ❌ |

They work great together! Use Playwright MCP for navigation/scraping, LocatorLabs MCP for locators/POMs/tests.

📋 Requirements

  • Node.js 18+
  • Playwright browsers (auto-installed on first run)

🔧 Troubleshooting

Playwright browsers not installed

npx playwright install chromium

Permission issues on Mac

chmod +x ~/.npm/_npx/*/node_modules/.bin/locatorlabs-mcp

View logs (Claude Desktop)

tail -f ~/Library/Logs/Claude/mcp*.log

Auto-approve tools in VS Code

Add to settings.json:

{
  "chat.tools.autoApprove": true
}

🤝 Contributing

Contributions welcome! Please open an issue or PR on GitHub.

📺 Author

Naveen AutomationLabs

📄 License

MIT