SHAFT

Exposes SHAFT-driven web automation tools to Claude Desktop for browser control, element interaction, data extraction, and reporting.
  • 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.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational