mcp-server-webdriver
Provides integration with the Firefox browser using geckodriver, allowing AI agents to perform browser automation tasks like opening URLs, taking screenshots, and executing JavaScript.
Allows AI agents to control a web browser via Selenium WebDriver, enabling automated browser interactions such as navigation, clicking, filling forms, and extracting page information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-webdrivergo to example.com and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-webdriver
MCP Server that lets AI agents control a real web browser via Selenium WebDriver (Firefox + geckodriver).
Built with FastMCP.
Requirements
Dependency | Version |
Python | ≥ 3.11 |
≥ 2.10 | |
≥ 4.0 | |
Firefox | any recent |
≥ 0.34 |
Related MCP server: MCP Browser Use
Installation
Recommended — gecko-driver .deb from VitexSoftware repository
echo "deb http://repo.vitexsoftware.com trixie main" \
| sudo tee /etc/apt/sources.list.d/vitexsoftware.list
sudo apt update
sudo apt install gecko-driver python3-selenium python3-fastmcpThis installs gecko-driver 0.36.0 (and compatible Firefox) from
repo.vitexsoftware.com.
Alternative — system package manager
# Debian/Ubuntu (official repos — may be older version):
sudo apt install firefox-geckodriver
# macOS:
brew install geckodriver
# Rust / cargo (build from source):
cargo install geckodriver
# Manual download from GitHub releases:
# https://github.com/mozilla/geckodriver/releasesFallback — webdriver-manager (auto-download)
pip install fastmcp selenium webdriver-manager
# geckodriver will be downloaded automatically on first browser_opengeckodriver resolution order
The server resolves geckodriver in this priority order (first match wins):
# | Source | Configure via |
1 |
| Absolute path to the binary |
2 | System PATH (default) |
|
3 | webdriver-manager auto-download | Fallback; disable with |
Running
# stdio transport (Claude Desktop / Claude Code)
python server.py
# HTTP transport (remote access)
fastmcp run server.py --transport streamable-http --port 8000
# Development mode (auto-reload)
fastmcp dev server.pyAvailable Tools
Session & driver management
Tool | Description |
| Open URL — starts Firefox+geckodriver if not running |
| Quit the browser session |
| Show session state, geckodriver source/version, env config |
| Download geckodriver via webdriver-manager (fallback) |
Page inspection
Tool | Description |
| Full-page PNG screenshot |
| Current page |
| Current URL |
| Raw HTML source |
| Visible text (whole page or CSS selector) |
| Value of an HTML attribute on an element |
Interaction
Tool | Description |
| Click element (CSS selector) |
| Type text into an input field |
| Select |
| Run JavaScript and return the result |
Navigation & frames
Tool | Description |
| Wait for an element to become visible |
| Navigate back |
| Navigate forward |
| Reload the page |
| Switch into |
Environment variables
Variable | Default | Description |
| (unset) | Absolute path to geckodriver binary (highest priority) |
|
| Set to |
| (unset) | Path to a custom Firefox executable |
Claude Desktop / Claude Code config
{
"mcpServers": {
"webdriver": {
"command": "python3",
"args": ["/path/to/server.py"]
}
}
}With explicit geckodriver path:
{
"mcpServers": {
"webdriver": {
"command": "python3",
"args": ["/path/to/server.py"],
"env": {
"GECKODRIVER_PATH": "/usr/bin/geckodriver"
}
}
}
}Packaging plan for Debian
To build a python3-mcp-server-webdriver .deb package, the following dependency
chain must be packaged first (all from PyPI → .deb via VitexSoftware build infrastructure):
Layer 0 (no new deps): python-dotenv, jsonref, pathable, python-multipart,
httpx-sse, typing-inspection, uncalled-for, pyperclip, cronsim,
burner-redis, python-json-logger, griffelib, taskgroup, joserfc,
opentelemetry-api, openapi-pydantic
Layer 1: pydantic-settings, rich-rst, griffecli, py-key-value-aio
Layer 2: jsonschema-path, sse-starlette, cyclopts, griffe
Layer 3: mcp, pydocket
Layer 4: prefab-ui
Layer 5: fastmcp-slim
Layer 6: fastmcp
Layer 7: mcp-server-webdriver (depends on gecko-driver ✅ already in repo)
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vitexus/mcp-server-webdriver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server