Skip to main content
Glama
TheQtCompanyRnD

squish-mcp

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SQUISH_PREFIXYesPath to Squish installation directory.
SQUISH_GLOBAL_SCRIPTSNoDirectory storing scripts available for all Squish test cases.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
analyze_bdd_contextB

Analyze how BDD is used in a specific test suite.

Args: test_suite_path: Path to a suite_* directory.

analyze_bdd_documentationA

Parse the local BDD-specific Squish documentation to find relevant information.

analyze_existing_patternsC

Analyze test suite to find common patterns that should be used for generating new test cases.

Args: test_suite_path: Path to a suite_* directory.

analyze_global_scriptsC

Analyze global scripts usage patterns that should be used for generating new test cases.

analyze_object_map_structureB

Analyze the current object map structure to understand existing patterns.

Args: test_suite_path: Path to a suite_* directory.

analyze_object_referencesB

Analyze object-reference patterns that should be used for generating new test cases. This includes where and how object maps are stored and how the objects are then accessed.

Args: test_suite_path: Path to a suite_* directory.

analyze_squish_api_documentationB

Parse the local Squish documentation to find relevant information like the available functions and code snippets.

analyze_squish_rulesB

Analyze project-specific Squish rules (explicitly defined patterns).

extract_object_referencesC

Extract object references from test content to understand what objects are being used.

Args: test_content: The test code to analyze

generate_bdd_templateB

Generate a BDD test template that can be used as a starting point for creating new BDD-style test cases.

Args: test_case_name: Name of the test case test_description: Description for the BDD feature (recommended)

generate_page_objects_from_snapshotA

Generate page object references from an XML object snapshot file.

This tool:

  1. Calls parse_object_snapshot.py to filter XML elements and generate basic definitions

  2. Analyzes object reference patterns to understand existing style and locations

  3. Determines output format (simple dicts vs classes/functions) based on existing patterns

  4. Writes the generated Python code to a local temporary file and returns its path

Args: xml_file_path: Absolute path to the XML object snapshot file page_name: Name of the page/component these objects belong to test_suite_path: Path to a suite_* directory. output_directory: Existing directory where the temporary output file should be created

Note: To generate the XML snapshot file, a testcase script has to call saveObjectSnapshot(some_object, "snapshot_name.xml"), where some_object is the root object of the component to capture. In case of an empty testcase, a variation of the following can be used: import object all_top_level_objects = object.topLevelObjects() top_level_object = all_top_level_objects[0] # change to a suitable index in case of multi-window apps. saveObjectSnapshot(top_level_object, "snapshot_name.xml") The snapshot will be placed next to the test script that is being executed, so the xml_file_path should be constructed accordingly.

generate_test_templateA

Generate a test template based on existing patterns and project conventions.

Args: test_suite_path: Path to a suite_* directory. test_case_name: Name of the test case test_description: Optional description of what the test should do

suggest_code_improvementsB

Analyze test content and suggest improvements based on project patterns.

Args: test_content: The test code to analyze test_suite_path: Path to a suite_* directory.

create_test_caseA

Create a new Squish test case within an existing test suite.

Args: suite_path: Absolute path to the test suite directory (must start with 'suite_') test_case_name: Name of the test case (will be prefixed with 'tst_' if not already) test_content: Python code content for the test.py file (optional) is_bdd: Whether to create a BDD test with proper QtCare Squish BDD structure (default: False) test_description: Description for BDD feature file (optional, recommended for BDD tests)

create_test_suiteA

Create a new Squish test suite with the standard directory structure.

Creates suite.conf and shared/names.py inside the given directory. The suite directory must not already exist.

Args: suite_path: Absolute path to the test suite directory to create (must start with 'suite_') wrapper: Name of the wrapper to use (default 'Qt'). Written as WRAPPERS in suite.conf.

get_suite_configurationB

Read the suite configuration from a suite.conf file.

Args: suite_path: Absolute path to the test suite directory

get_global_script_dirsA

Get the global script directories configured in the active Squish test suite. This uses the squishrunner --config getGlobalScriptDirs command.

Returns: List of global script directory paths.

run_testA

Run a Squish test suite or test case.

You need to figure out the test suite and test case absolute paths on your own. You may be asked to either run a full test suite or a single test case within a test suite.

This is a wrapper around the squishrunner command line tool.

IMPORTANT PATH HANDLING AND SQUISH TEST NAMING CONVENTIONS:

  • All paths are absolute paths, but you should infer missing ones from context.

  • Test suites are named like suite_<test_suite_name> - these are folders under the root path

  • Test cases are named like tst_<test_name> - these are folders under the test suite path

  • Test files are under the test case folders and are named like test.py

Args: test_suite_path: Absolute path to the test suite which you should figure out on your own Example: "/Users/yourname/projects/addressbook/suite_py" context: Dictionary variables of options to pass to Squish Format: {"VAR_NAME": "value"} test_case_name: Name of the test case to run. Example: "tst_general"

Returns: Test run results with squishrunner output.

set_global_script_dirsA

Set the global script directories for Squish test execution.

Args: directories: List of directory paths to set as global script directories

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheQtCompanyRnD/squish-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server