qTest On-Premise MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QTEST_TOKEN | No | Static bearer/API token. Generate in qTest under Profile → API & SDK. | |
| QTEST_BASE_URL | Yes | Base URL of your on-prem qTest, e.g. https://qtest.mycompany.internal. A trailing /api/v3 is tolerated and stripped. | |
| QTEST_PASSWORD | No | Password for password-grant login. | |
| QTEST_USERNAME | No | Username for password-grant login (used only when QTEST_TOKEN is empty). | |
| QTEST_LOG_LEVEL | No | error | warn | info | debug. All logs go to stderr. | info |
| QTEST_TIMEOUT_MS | No | Per-request timeout in milliseconds. | 30000 |
| QTEST_INSECURE_TLS | No | When true, disables TLS certificate verification (for internal self-signed certs only). | false |
| QTEST_LOGIN_CLIENT | No | Basic-auth seed used on the /oauth/token request. Override if your admin configured a specific client id. | qtest |
| QTEST_ENABLE_DESTRUCTIVE | No | When true, registers the delete-* tools. | false |
| QTEST_ENABLE_RAW_REQUEST | No | When true, registers the generic qtest_request tool. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| qtest_list_projectsA | List all qTest projects the authenticated user can access. Returns id, name and status for each. Use this first to discover the projectId required by most other tools. |
| qtest_get_projectA | Fetch a single qTest project by its numeric ID. |
| qtest_list_modulesA | List Test Design modules (folders). With no parentId, returns root modules. Provide parentId to list child modules. Provide search to filter by name (case-insensitive substring). |
| qtest_create_moduleA | Create a Test Design module (folder). Omit parentId to create at the root, or supply parentId to nest it under an existing module. |
| qtest_update_moduleA | Update a module's name, description, or custom fields. Provide fields as a map of fieldId -> value. |
| qtest_list_test_casesA | List test cases in a project, optionally scoped to a module via parentId. Supports client-side filtering by name substring. |
| qtest_get_test_caseA | Fetch a single test case by ID, including its test steps and properties. |
| qtest_create_test_caseA | Create a test case inside a module. You can include ordered test steps and custom field values (fieldId -> value map). |
| qtest_update_test_caseA | Update a test case's name, description, precondition, or custom fields. Creates a new version in qTest. |
| qtest_add_test_stepA | Append a single test step (action + expected result) to an existing test case. |
| qtest_list_requirementsA | List requirements in a project, optionally scoped to a parent module. Supports client-side filtering by name substring. |
| qtest_get_requirementA | Fetch a single requirement by ID. |
| qtest_create_requirementA | Create a requirement under a module. Supply parentId for the containing module and optional custom fields (fieldId -> value). |
| qtest_update_requirementA | Update a requirement's name, description, or custom fields. Optionally move it to a different parent module. |
| qtest_link_test_cases_to_requirementA | Create coverage links between a requirement and one or more test cases. This is the primary traceability action: it marks the listed test cases as covering the requirement. IDs are numeric test case IDs (use qtest_list_test_cases to find them). |
| qtest_unlink_test_cases_from_requirementB | Remove coverage links between a requirement and one or more test cases. |
| qtest_get_requirement_coverageA | List the test cases currently linked to (covering) a requirement. |
| qtest_link_artifactsA | Generic object-linking between any two qTest artifact types. Link the source object (objectType/objectId) to the given target IDs of linkType. Example: link a 'test-cases' object to 'defects'. Supported types: test-cases, requirements, defects, test-runs. |
| qtest_get_traceability_matrixA | Retrieve the requirement traceability matrix report: requirements with their covering test cases. Useful for coverage audits. |
| qtest_list_test_cyclesA | List test cycles. With no parentId, returns root-level cycles. Provide parentId (and the matching parentType) to list children. Supports name filtering. |
| qtest_create_test_cycleA | Create a test cycle. Omit parentId for a root cycle, or nest under a release or another cycle by supplying parentId and parentType. |
| qtest_list_test_suitesA | List test suites under a test cycle (or release). Provide parentId and parentType. |
| qtest_create_test_suiteA | Create a test suite under a test cycle (or release). Test runs are added to suites. |
| qtest_add_test_runsA | Create test runs inside a test suite from a list of test case IDs. Each run represents one executable instance of a test case. Use qtest_list_test_cases to find test case IDs. |
| qtest_list_test_runsA | List test runs under a parent (test suite or test cycle). Provide parentId and parentType. |
| qtest_get_test_runA | Fetch a single test run by ID, including its latest status. |
| qtest_submit_test_logA | Record an execution result (test log) against a test run. Provide a status such as 'Passed', 'Failed', 'Blocked', or 'Incomplete'. Optionally include a note and execution start/end timestamps (ISO 8601). |
| qtest_searchA | Search a project's artifacts using qTest Query Language (QQL). Example queries: "Name ~ 'login'", "Status = 'Approved'", "'Automation' = 'Yes' and Priority = 'High'". Specify the artifact type to search. |
| qtest_list_fieldsA | List the system and custom fields (with their numeric IDs and allowed values) for an artifact type in a project. Use this to discover field IDs needed by the 'fields' parameter on create/update tools. |
| qtest_get_current_userA | Return the profile of the authenticated qTest user. Useful for verifying connectivity and permissions. |
| qtest_add_attachmentA | Attach a file (provided as base64 content) to a qTest artifact such as a test case, requirement, defect, or test log. |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/VaniTTC/soco-qtest-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server