- Home
- MCP servers
- SHAFT
SHAFT
- other
8
GitHub Stars
other
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"shafthq-shaft_mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/shafthq/shaft-mcp:latest"
]
}
}
}SHAFT MCP Server enables Claude Desktop to drive web automation through the SHAFT Engine by exposing a robust set of browser control, element interaction, data extraction, and reporting tools via MCP. You can run the server locally or remotely, connect with Claude Desktop, and perform browser automation tasks across major browsers with AI-assisted element detection and detailed test reporting.
How to use
You use SHAFT MCP by configuring Claude Desktop to connect to the MCP server and then issuing natural language or scripted prompts that invoke the available tools. Start a browser session, navigate pages, interact with elements, extract data, and generate test reports all through Claude’s interface. Begin with initializing a browser session, then perform actions such as navigation, element interaction, data extraction, and report generation.
How to install
Prerequisites you need before installing SHAFT MCP include the Claude Desktop app, Java 21 or newer, and Docker if you choose the container route. Maven is required only if you build from source.
# Option A: Using Docker (Recommended)
# 1. Ensure Claude Desktop is not running
# 2. Pull the SHAFT MCP Docker image
docker pull ghcr.io/shafthq/shaft-mcp:latest
# 3. Edit Claude Desktop configuration to point to the MCP server
# Locate the Claude config file on your system and add the following mcpServers entry
{
"mcpServers": {
"shaft-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/shafthq/shaft-mcp:latest"
]
}
}
}
# 4. Start Claude Desktop and verify the server status in Settings > Developer
# 5. Use Claude to issue commands that reference shaft-mcp
# Option B: Using a JAR file
# Step 1: Build the MCP server (from source)
# (Navigate to the repository and run the following)
mvn clean package -DskipTests -Dgpg.skip
# This creates: target/SHAFT_MCP-<version>.jar
# Step 2: Configure Claude Desktop to use the JAR
{
"mcpServers": {
"shaft-mcp": {
"command": "java",
"args": [
"-jar",
"/FULL/PATH/TO/SHAFT_MCP/target/SHAFT_MCP-9.4.20251108.jar"
]
}
}
}
# Important: replace the full path with the actual path to the built JAR and ensure the version matches the built file
Additional setup notes
If you choose Docker, make sure Claude Desktop is closed while configuring the MCP and starting the container. If you choose the JAR route, ensure you reference the exact built JAR path in the configuration and restart Claude Desktop after changes.
Verification steps
After starting Claude Desktop with the shaft-mcp server configured, verify that the MCP server shows as running in the Developer settings. Then issue a test prompt like: Use shaft-mcp to launch Chrome, navigate to google.com, search for "selenium webdriver", and get the page title.
Troubleshooting
Common issues include an inactive browser session, MCP server not running, or build failures. Initialize a browser with driver_initialize before performing actions. If the server does not start, verify the CLI command and the absolute path to the JAR, confirm Java 21 is installed, and restart Claude Desktop after config changes.
Element interaction errors can often be resolved by using AI-based element detection or alternative locator strategies, and by confirming the element is visible with element_is_displayed.
Available tools
driver_initialize
Launch a browser session using Chrome, Firefox, Safari, or Edge to begin automation.
driver_quit
Close the active browser session and end the automation context.
browser_navigate
Navigate the current browser to a specified URL.
browser_refresh
Refresh the current page.
browser_navigate_back/forward
Move backward or forward in browser history.
browser_maximize_window
Maximize the browser window.
browser_set_window_size
Set a custom width and height for the browser window.
browser_fullscreen_window
Enter fullscreen mode for the browser.
element_click
Click a page element using a locator such as ID, CSS, or XPath.
element_click_ai
Click an element identified by AI-based natural language description.
element_click_js
Click an element using a JavaScript-based action.
element_double_click
Double-click a target element.
element_hover
Hover the cursor over an element.
element_type
Type text into an input element.
element_type_ai
Type text into an element detected by AI.
element_append_text
Append text to existing input content.
element_clear
Clear text from an input field.
element_drag_and_drop
Drag an element and drop it onto another element.
element_drop_file_to_upload
Upload a file by dropping it into a target area.
element_get_text
Retrieve the text content of a page element.
element_get_dom_attribute
Get a DOM attribute value from an element.
element_get_dom_property
Get a DOM property value from an element.
element_get_css_value
Get a CSS property value of an element.
element_is_displayed/enabled/selected
Check whether an element is displayed, enabled, or selected.
browser_get_page_source
Get the HTML source of the current page.
browser_get_current_url
Get the current URL of the browser.
browser_get_title
Get the title of the current page.
browser_add_cookie
Add a cookie to the browser session.
browser_get_cookie
Retrieve a specific cookie.
browser_get_all_cookies
Retrieve all cookies for the current session.
browser_delete_cookie
Delete a specific cookie.
browser_delete_all_cookies
Clear all cookies in the browser session.
generate_test_report
Generate an Allure test report with results and logs.