qtm4j-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QTM4J_API_KEY | Yes | QTM4J Open API key | |
| QTM4J_BASE_URL | No | API base URL | https://qtmcloud.qmetry.com/rest/api/latest |
| QTM4J_PROJECT_ID | No | Default project ID (avoids passing it in every call) | |
| NODE_TLS_REJECT_UNAUTHORIZED | No | Set to '0' for self-signed certs |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_test_cycleB | Create a new test cycle (run) in QTM4J. Returns the cycle ID. |
| search_test_caseB | Search for a test case by key (e.g. PE26-TC-2). Returns test case ID and version. |
| search_test_casesA | Paginated POST /testcases/search. Returns the raw API JSON (includes data, total, startAt, maxResults when provided). Use startAt/maxResults for paging; summaryContains adds a leading ~ for contains-style summary filter when not already present. |
| list_all_project_test_casesA | Fetches all pages of /testcases/search for a project until a short page or maxPages. Merges rows and dedupes by test case key when present. Use for exporting or counting beyond a single page. |
| create_test_caseB | Create a new test case in QTM4J. Returns testCaseId, versionNo, and optional folderId / pickedFolder / folderWarning. Use folderId, or autoPickFolder with optional folderKeywords. |
| list_cycle_test_casesB | List all test cases in a test cycle with their execution IDs. |
| add_test_case_to_cycleB | Add a test case to a test cycle. Returns the execution ID. |
| update_execution_statusC | Update execution result (Pass/Fail) for a test case execution in a cycle. |
| close_test_cycleB | Close a test cycle by setting its status to Done. |
| get_attachment_urlB | Get a presigned URL for uploading an attachment to a test case execution. |
| add_test_case_stepsB | Create test steps on a test case version (POST …/teststeps). steps[].stepDetails is required. |
| add_test_case_to_foldersB | Add a test case version to folders (PUT …/versions/{no} with folders.add). Use folder ids from list_test_case_folders. |
| create_test_case_folderB | Create a testcase folder (POST /projects/{projectId}/testcase-folders). parentId -1 = root. |
| get_test_caseA | GET /testcases/{id}; on failure resolves by key via search. Optional versionNo returns version details instead of slim record. |
| get_test_case_detailsB | GET /testcases/{id}/versions/{no} full version payload. Optional fields= comma-separated. |
| get_test_case_stepsB | POST …/teststeps/search (QTM4J GetTestStepRequest). Pagination: query startAt & maxResults (max 100). Body is {} to list all steps, or { filter: { stepDetails?, testData?, expectedResult? } } — no projectId in the filter. Optional sort is a query parameter. |
| list_test_case_foldersC | GET /projects/{id}/testcase-folders plus flatFolders (id, name, path). |
| remove_test_case_from_foldersB | Remove a test case version from folders (PUT …/versions/{no} with folders.delete). |
| update_test_case_descriptionB | Update the description field on a test case version (PUT …/testcases/{id}/versions/{no} with description). |
| update_test_case_stepA | Edit an existing test step (PUT …/versions/{v}/teststeps with a JSON array). stepId is the numeric id from get_test_case_steps. Provide at least one of stepDetails, expectedResult, testData. |
| update_test_case_summaryA | Update the summary (title) on a test case version (PUT …/testcases/{id}/versions/{no} with summary). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/denis-platonov/qtm4j-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server