SHAFT MCP is a Model Context Protocol (MCP) server that enables Claude Desktop to perform web automation tasks using the SHAFT Engine (a Selenium-based test automation framework). This gives Claude powerful browser automation capabilities including:
- Browser Control: Launch Chrome, Firefox, Safari, or Edge browsers
- Element Interaction: Click, hover, type, clear, drag-and-drop elements
- AI-Enhanced Element Detection: Find elements by natural language descriptions
- Advanced Actions: JavaScript-based clicks, file uploads, cookie management
- Browser Navigation: URL navigation, back/forward, refresh
- Data Extraction: Get page source, element text, attributes, CSS values
- Test Reporting: Generate detailed Allure test reports
The server provides 25+ tools for web automation:
Browser Management:
driver_initialize- Launch browser (Chrome/Firefox/Safari/Edge)driver_quit- Close browserbrowser_navigate- Navigate to URLbrowser_refresh- Refresh pagebrowser_navigate_back/forward- Browser history navigationbrowser_maximize_window- Maximize browser windowbrowser_set_window_size- Set custom window sizebrowser_fullscreen_window- Set fullscreen mode
Element Interaction:
element_click- Click elements using locators (ID, CSS, XPath, etc.)element_click_ai- Click elements using AI (natural language)element_click_js- JavaScript-based clickingelement_double_click- Double-click elementselement_hover- Hover over elementselement_type- Type text into elementselement_type_ai- Type using AI element detectionelement_append_text- Append text to existing contentelement_clear- Clear text from input fieldselement_drag_and_drop- Drag and drop between elementselement_drop_file_to_upload- File upload functionality
Data Extraction:
element_get_text- Get element text contentelement_get_dom_attribute- Get DOM attributeselement_get_dom_property- Get DOM propertieselement_get_css_value- Get CSS property valueselement_is_displayed/enabled/selected- Check element statesbrowser_get_page_source- Get page HTML sourcebrowser_get_current_url- Get current URLbrowser_get_title- Get page title
Session Management:
browser_add_cookie- Add cookiesbrowser_get_cookie- Get specific cookiebrowser_get_all_cookies- Get all cookiesbrowser_delete_cookie- Delete specific cookiebrowser_delete_all_cookies- Clear all cookiesgenerate_test_report- Generate Allure test reports
SHAFT MCP is available through multiple channels:
- GitHub MCP Registry: Officially listed in the Model Context Protocol Registry as
io.github.ShaftHQ/shaft-mcp - Maven Central: Available as a Java JAR at
io.github.shafthq:SHAFT_MCP - GitHub Container Registry: Docker images available at
ghcr.io/shafthq/shaft-mcp - Smithery.ai: Deploy via Smithery for hosted MCP server (see SMITHERY_DEPLOYMENT.md)
SHAFT MCP supports two deployment modes:
Uses STDIO transport for direct integration with Claude Desktop application. See setup instructions below.
Uses HTTP/SSE transport for web-based access and remote hosting platforms like Smithery.ai, Railway, Render, etc.
📖 For Smithery and remote deployment instructions, see the comprehensive Smithery Deployment Guide which includes:
- Step-by-step Smithery deployment
- Local testing with Docker
- 10+ alternative hosting platforms comparison
- Configuration options and best practices
- Claude Desktop App (latest version)
- Java 21 (OpenJDK 21.0.2 LTS or newer) - for JAR-based installation
- OR Docker - for Docker-based installation
- Maven (only if building from source)
You can install SHAFT MCP using either the JAR file or Docker container:
-
Close Claude Desktop completely if it's running
-
Pull the Docker image:
docker pull ghcr.io/shafthq/shaft-mcp:latest-
Locate your Claude config file:
- Windows:
C:\Users\{USERNAME}\AppData\Roaming\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- Windows:
-
Edit the config file and add the SHAFT MCP server configuration:
{
"mcpServers": {
"shaft-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/shafthq/shaft-mcp:latest"
]
}
}
}- Navigate to your SHAFT_MCP repository directory:
cd /path/to/ShaftHQ/SHAFT_MCP- Build the project (this creates the JAR file):
mvn clean package -DskipTests -Dgpg.skipThis will create: target/SHAFT_MCP-9.4.20251108.jar
-
Close Claude Desktop completely if it's running
-
Locate your Claude config file:
- Windows:
C:\Users\{USERNAME}\AppData\Roaming\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- Windows:
-
Edit the config file and add the SHAFT MCP server configuration:
{
"mcpServers": {
"shaft-mcp": {
"command": "java",
"args": [
"-jar",
"/FULL/PATH/TO/SHAFT_MCP/target/SHAFT_MCP-9.4.20251108.jar"
]
}
}
}Important Notes:
- Replace
/FULL/PATH/TO/SHAFT_MCP/with the actual absolute path to your repository - Ensure the JAR file version matches what was built (check the
target/directory) - Use forward slashes
/even on Windows, or double backslashes\\\\for Windows paths
-
Start Claude Desktop
-
Check MCP Server Status:
- Go to
File > Settings > Developer - Look for
shaft-mcpin the MCP servers list - Confirm the status shows as
running
- Go to
-
Test the server with this prompt in Claude:
Use shaft-mcp to launch Chrome, navigate to google.com, search for "selenium webdriver", and get the page title.
Once configured, you can use Claude to perform complex web automation tasks:
Use shaft-mcp to:
1. Launch Firefox browser
2. Navigate to https://example.com
3. Get the page title and current URL
Use shaft-mcp to:
1. Launch Chrome
2. Go to a login page
3. Find the username field and type "testuser"
4. Find the password field and type "testpass"
5. Click the login button
Use shaft-mcp to:
1. Open a browser and go to amazon.com
2. Click on the search box using AI
3. Type "laptop" in the search field
4. Click the search button using AI
Use shaft-mcp to:
1. Navigate to a news website
2. Get all the article headlines
3. Extract the main content text
4. Generate a test report
-
"No active browser session found"
- Always initialize a browser first using
driver_initialize
- Always initialize a browser first using
-
MCP Server not running
- Verify the JAR file path is correct and absolute
- Check that Java 21 is installed and accessible
- Ensure Claude Desktop was restarted after config changes
-
Build failures
- Verify Java 21 is installed:
java -version - Ensure Maven is available:
mvn -version - Try cleaning first:
mvn clean
- Verify Java 21 is installed:
-
Element not found errors
- Use AI-based element detection (
element_click_ai,element_type_ai) - Try different locator strategies (CSS, XPath, ID, etc.)
- Check if the element is visible with
element_is_displayed
- Use AI-based element detection (
You can add additional MCP servers alongside SHAFT MCP:
{
"mcpServers": {
"shaft-mcp": {
"command": "java",
"args": ["-jar", "/path/to/SHAFT_MCP-9.4.20251108.jar"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}With SHAFT MCP configured, Claude can:
- Automate web testing - Run comprehensive test suites on web applications
- Perform web scraping - Extract data from websites with complex interactions
- Automate repetitive tasks - Fill forms, upload files, navigate workflows
- Generate test reports - Create detailed Allure reports with screenshots and logs
- Cross-browser testing - Test across Chrome, Firefox, Safari, and Edge
- AI-powered element detection - Find elements by description instead of technical locators
This essentially turns Claude into a powerful web automation assistant that can handle complex browser-based tasks that would normally require manual effort or custom scripting.