Squish Model Context Protocol (MCP) server enables AI assistants to execute Squish (documentation) test scripts and test suites and analyze the results. Squish is a professional testing tool for automated GUI testing of desktop, embedded, and mobile applications.
Demo video of Squish MCP running the Addressbook example in Claude Desktop
The Squish MCP server integrates Squish testing capabilities with AI workflows:
- Execute individual Squish tests or complete test suites
- Obtain test results and use the results in AI-assisted debugging and test maintenance
- Test script development through direct AI access to test outcomes
-
"Run tst_general"
- For running individual test scripts
-
“Execute /projects/addressbook/suite_py”
- For running a full test suite and all test scripts in it
-
“Analyze and explain the error, see from git logs if there was a change explaining. Suggest changes to the test script and rerun the test script with the proposed changes”
- After receiving error from running a test script
-
“Create a new test case based on tst_adding and add there 10 names with hangul characters and run it in the end”
- Assist in sample data generation
- Python 3.13 or newer
- uv - Python package installer and environment manager
- MCP Python SDK - Model Context Protocol implementation
- Squish - GUI test automation tool
- A compatible MCP client:
- Claude Desktop
- Cursor
- Or use the
mcp devcommand
- Clone or download this repository
- Configure the
squishrunnerpath insquishrunnermcp.pyor set environment variableSQUISH_RUNNER="/path/to/squishrunner" - Start the Squish server:
- Run
squishserver(default port: 4322) - Or use the
localoption when prompting the AI assistant
- Run
- Configure the MCP server in your MCP client (see Claude Desktop or Cursor documentation):
{
"mcpServers": {
"SquishMCP": {
"command": "<PATH TO PYTHON ENV/BIN>/.venv/bin/python",
"args": [
"<PATH TO THE REPOSITORY CLONE>/squish-mcp/squishrunnermcp.py"
]
}
}
}- The AI assistant (e.g. Claude Desktop) runs both the MCP client and the MCP Server
- Command line tool
squishrunneris wrapped bysquishrunnermcp.py - Application under test (AUT) is invoked by
squishserver
Common issues and solutions:
-
squishrunner not found
- Verify the path configuration in
squishrunnermcp.py - Ensure Squish is correctly installed and available in PATH
- Verify the path configuration in
-
Connection refused errors
- Check if
squishserveris running - Verify the port number (default: 4322)
- Check if
See the LICENSE file for details.
For questions and support:
- Open an issue in the repository
- Contact the author
