selenide-mcp-server
v1.0.3
Published
MCP server for Selenide browser automation — pure Java, zero config
Downloads
24
Maintainers
Readme
Selenide MCP Server
A pure Java MCP server for Selenide browser automation. Runs directly in a single JVM — no bridges, no Node.js, no TypeScript.
Quick Install
Option A: npx (recommended — no download needed)
Just add this to your MCP config. No build, no JAR download.
VS Code — settings.json or .vscode/mcp.json:
{
"mcp": {
"servers": {
"selenide": {
"type": "stdio",
"command": "npx",
"args": ["-y", "selenide-mcp-server"]
}
}
}
}Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"selenide": {
"command": "npx",
"args": ["-y", "selenide-mcp-server"]
}
}
}Requires Node.js 16+ and Java 17+ on PATH.
Option B: Maven / Gradle dependency
Add the dependency to embed or extend the server in your own Java project.
Maven:
<dependency>
<groupId>io.github.aakash-automation-x</groupId>
<artifactId>selenide-mcp-server</artifactId>
<version>1.0.2</version>
</dependency>Gradle:
implementation 'io.github.aakash-automation-x:selenide-mcp-server:1.0.2'Option C: Download the JAR
Grab the latest uber-jar from GitHub Releases:
# Linux / macOS
curl -L -o selenide-mcp-server.jar \
"https://github.com/aakash-automation-x/selenide-mcp-server/releases/latest/download/selenide-mcp-server-1.0.2.jar"
# Windows (PowerShell)
Invoke-WebRequest -Uri "https://github.com/aakash-automation-x/selenide-mcp-server/releases/latest/download/selenide-mcp-server-1.0.2.jar" -OutFile selenide-mcp-server.jarThen configure your MCP client:
VS Code — add to settings.json or .vscode/mcp.json:
{
"mcp": {
"servers": {
"selenide": {
"type": "stdio",
"command": "java",
"args": ["-jar", "/absolute/path/to/selenide-mcp-server.jar"]
}
}
}
}Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"selenide": {
"command": "java",
"args": ["-jar", "/absolute/path/to/selenide-mcp-server.jar"]
}
}
}That's it — no build step required.
Prerequisites
- Java 17+
- A browser installed (Chrome by default)
Build from Source
mvn clean package -DskipTestsThis produces an uber-jar at target/selenide-mcp-server-1.0.2.jar.
Available Tools (32)
Browser Lifecycle
| Tool | Description |
| -------------------------- | --------------------------------------------------------------- |
| selenide_configure | Set browser, baseUrl, timeout, headless mode, window size, etc. |
| selenide_open | Open a URL (supports HTTP Basic Auth) |
| selenide_close | Close the browser session |
| selenide_navigate | Refresh, back, or forward |
| selenide_get_page_info | Get current URL and title |
| selenide_get_page_source | Get full HTML source |
Element Actions
| Tool | Description |
| ------------------------ | --------------------------------- |
| selenide_click | Click an element |
| selenide_double_click | Double-click an element |
| selenide_context_click | Right-click an element |
| selenide_hover | Hover over an element |
| selenide_set_value | Set an input value (clears first) |
| selenide_append_value | Append text to an input |
| selenide_clear | Clear an input field |
| selenide_press_key | Press Enter, Escape, or Tab |
| selenide_select_option | Select a dropdown option |
| selenide_select_radio | Select a radio button |
| selenide_drag_and_drop | Drag and drop between elements |
| selenide_upload_file | Upload a file |
Element Queries
| Tool | Description |
| ------------------------- | --------------------------------- |
| selenide_get_text | Get visible text |
| selenide_get_inner_text | Get inner text (including hidden) |
| selenide_get_attribute | Get an HTML attribute value |
| selenide_get_value | Get input/textarea value |
| selenide_get_css_value | Get computed CSS property |
| selenide_is_displayed | Check element visibility |
| selenide_exists | Check element existence in DOM |
Assertions
| Tool | Description |
| --------------------- | ----------------------------------------- |
| selenide_should | Assert element matches a condition |
| selenide_should_not | Assert element does NOT match a condition |
Collections
| Tool | Description |
| ---------------------------- | -------------------------------------- |
| selenide_find_elements | Find all matching elements |
| selenide_get_texts | Get text of all matching elements |
| selenide_get_element_count | Count matching elements |
| selenide_collection_should | Assert condition on element collection |
Utilities
| Tool | Description |
| ----------------------------- | --------------------------------- |
| selenide_execute_javascript | Execute JavaScript in the browser |
| selenide_screenshot | Take a screenshot |
Selector Types
All element tools support these selector strategies via the selectorType parameter:
css (default), xpath, id, name, className, tagName, text, withText, value, title
Conditions
For selenide_should and selenide_should_not:
- No value needed:
visible,hidden,exist,enabled,disabled,selected,focused,empty,readonly - Value required (
conditionValue):text,exactText,textCaseSensitive,exactTextCaseSensitive,value,cssClass,matchText,id,name,type - Two args (
conditionValue+conditionArg):attribute(attribute name in conditionValue, expected value in conditionArg)
Collection Conditions
For selenide_collection_should:
empty,size,sizeGreaterThan,sizeGreaterThanOrEqual,sizeLessThan,sizeLessThanOrEqual,sizeNotEqualtexts,exactTexts(pass expected values invaluesarray)
