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.
More Browser Automation MCP servers
mcp-browser-use: MCP server for browser-use
vinayak-mehtaMCP server for browser-use

Puppeteer
modelcontextprotocolModel Context Protocol Servers
MCP server w/ Browser Use
JovaniPinkFastAPI server implementing MCP protocol Browser automation via browser-use library.
Scrapling Fetch MCP
cyberchittaHelps AI assistants access text content from bot-protected websites. MCP server that fetches HTML/markdown from sites with anti-automation measures using Scrapling.
Playwright MCP Server 🎭
executeautomationPlaywright Model Context Protocol Server - Tool to automate Browsers and APIs in Claude Desktop, Cline, Cursor IDE and More 🔌
Comments