Skip to main content
Glama
pranavkakde

mcp-selenium-python

by pranavkakde

MCP Selenium Server & Client

This project provides a Model Context Protocol (MCP) server and client implementation for Selenium-based browser automation. It allows LLMs or external tools to interact with a browser through a standardized protocol, supporting actions like navigation, input, and clicks.


šŸš€ Features

  • MCP Server: Exposes Selenium browser automation as tools.

  • MCP Client: Sends tool calls (e.g., navigate, click, input) and receives structured results.

  • Extensible Actions: Modular design for actions (navigate, click, input). More actions to be added.

  • Driver Management: Abstraction for Selenium sessions and locator strategies.

  • Tool Facade: Unified interface for tools (mcp_tools, webtools).

  • Logging & Context: Centralized log writer and execution context.


Related MCP server: openmcp

šŸ“‚ Project Structure

.
ā”œā”€ā”€ client/
│   ā”œā”€ā”€ client.py              # MCP client implementation
│   ā”œā”€ā”€ llm_client.py          # Example LLM client integration (currently set to use Gemini)
│
ā”œā”€ā”€ server/
│   ā”œā”€ā”€ mcp_selenium_server.py # MCP server entry point
│   ā”œā”€ā”€ custom_context.py      # Execution context handling
│   ā”œā”€ā”€ log_writer.py          # Logging utilities
│   ā”œā”€ā”€ actions/               # Browser actions (navigate, click, input)
│   ā”œā”€ā”€ engine/                # Driver/session/locator management
│   └── tools/                 # Tool definitions (MCP tools, web tools)
│
ā”œā”€ā”€ .env                       # Environment variables
ā”œā”€ā”€ pyproject.toml             # Project dependencies & configuration
ā”œā”€ā”€ uv.lock                    # Dependency lock file
ā”œā”€ā”€ LICENSE                    # License file
└── README.md                  # (this file)

āš™ļø Installation

  1. Clone the repo:

    git clone <repo-url>
    cd mcp-selenium
  2. Install dependencies (using uv or poetry):

    uv sync
  3. Set environment variables in .env if needed (e.g., LLM API Key).


ā–¶ļø Usage

Start the MCP Server

python server/mcp_selenium_server.py

Run the Client

python client/client.py

Example JSON-RPC Request

{
  "action": "launch_page",
  "args": {
    "url": "https://google.com",
    "browser": "edge",
    "headless": false
  }
}

Example Actions

  • launch_page → Open a URL

  • click → Click an element

  • enter_text → Type text into a field At present only these actions are added but can be extended for more actions.


šŸ›  Development

  • Python 3.10+

  • Selenium WebDriver

  • MCP protocol integration

Lint & format before committing:

uv run black .
uv run flake8 .

šŸ“œ License

This project is licensed under the terms of the MIT License.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to automate web tasks such as browsing, clicking, typing, and taking screenshots via the Model Context Protocol.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI-powered browser automation controlled through natural language, integrating Playwright with the Model Context Protocol to perform web interactions like navigation, form filling, and screenshots.
    10
    -