MCP.so
Sign In
M

Mcp Selenium Haskell

@albertov

About Mcp Selenium Haskell

A Haskell implementation of MCP Selenium Server using WebDriver, enabling browser automation through standardized MCP clients like Claude.

Basic information

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "selenium": {
      "command": "mcp-selenium-hs",
      "args": [],
      "env": {
        "SELENIUM_HOST": "some.tailscale.host",
        "SELENIUM_PORT": "1234"
      }
    }
  }
}

Tools

No tools detected

We auto-extract tools from the README. The maintainer can list them under a ## Tools heading to populate this section.

Overview

What is Mcp Selenium Haskell?

Mcp Selenium Haskell is a Haskell implementation of an MCP (Model Context Protocol) Selenium server that uses WebDriver to enable browser automation through standardized MCP clients like Claude. It provides multi-session browser management with UUID-based session isolation and connects to a Selenium Grid.

How to use Mcp Selenium Haskell?

Run the statically-linked executable mcp-selenium-hs after setting environment variables SELENIUM_HOST (default 127.0.0.1) and SELENIUM_PORT (default 4444) to point to a Selenium server. Configure Claude Desktop by adding a JSON entry with the command and environment variables, or expose the server over HTTP/SSE using mcp-proxy for remote access.

Key features of Mcp Selenium Haskell

  • Multi-session browser management with UUID-based session IDs
  • Element interaction: click, type, hover, drag and drop
  • Element location via CSS, XPath, ID, name, class, tag
  • JavaScript console logging with injection and monitoring
  • Screenshot capture and page source retrieval
  • File upload and keyboard input simulation
  • Chrome and Firefox support with headless mode
  • Statically-linked executable with zero runtime dependencies

Use cases of Mcp Selenium Haskell

  • Automate browser tasks through MCP clients like Claude
  • Run multiple concurrent browser sessions for parallel testing
  • Integrate with existing Selenium Grid infrastructure
  • Perform headless browser automation without a graphical display

FAQ from Mcp Selenium Haskell

How does Mcp Selenium Haskell differ from the Node.js mcp-selenium?

This Haskell version supports multiple concurrent sessions (Node.js uses a single implicit session), connects to Selenium Grid, provides additional tools (console logging, page source), and is delivered as a static binary. It requires a separate Selenium server whereas the Node.js version includes browser management.

What environment variables are required?

Set SELENIUM_HOST (default 127.0.0.1) and SELENIUM_PORT (default 4444) to point to your Selenium WebDriver server. For local use no configuration is needed if using defaults.

How do I configure Claude Desktop to use this server?

Add a JSON entry to claude_desktop_config.json with "command": "mcp-selenium-hs" and the required environment variables under "env". The configuration file location varies by OS.

Can I run multiple browser sessions at once?

Yes, Mcp Selenium Haskell explicitly manages multiple concurrent sessions using UUID-based session IDs, unlike the single-session model of the Node.js version.

How can I expose the server remotely?

Use mcp-proxy to serve the MCP server over SSE (e.g., mcp-proxy --port=8080 mcp-selenium-hs). Bind to a specific private interface (Tailscale IP, localhost with SSH forwarding) and never use 0.0.0.0 in production.

Comments

More Browser Automation MCP servers