qtm4j-mcp-server
Provides tools for managing test cases, test cycles, and execution results in QMetry Test Management for Jira (QTM4J).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@qtm4j-mcp-serverSearch for test case PE26-TC-2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
qtm4j-mcp-server
MCP server for QTM4J (QMetry Test Management for Jira) Open API at qtmcloud.qmetry.com/rest/api/latest.
Published package: @denis-platonov/qtm4j-mcp-server
MCP Registry name: io.github.denis-platonov/qtm4j
Supported Clients
Client | Status | Notes |
Cursor | Supported | Configure with |
JetBrains IDEs | Supported | Configure in AI Assistant MCP settings |
VS Code | Supported | Configure in |
Antigravity | Supported | Configure in |
Related MCP server: QTM4J MCP Server
Tools
Tool | Description |
| Create a new test cycle (run) |
| Search for a test case by key (e.g. PE26-TC-2) |
| Search test cases with pagination and optional summary filters |
| Fetch and merge paginated test case results across a project |
| Create a new test case, optionally placing it in folders |
| List all test cases in a cycle |
| Add a test case to a cycle |
| Update execution result (Pass/Fail) |
| Close a test cycle |
| Get presigned URL for attachment upload |
| Add one or more steps to a test case version |
| Add a test case version to one or more folders |
| Create a test case folder in a project |
| Fetch a test case by ID or key |
| Fetch full details for a specific test case version |
| List or search steps on a test case version |
| List project test case folders with flat paths |
| Remove a test case version from folders |
| Update a test case version description |
| Update an existing test step |
| Update a test case version summary |
The full set of tools (including search_test_cases with startAt, list_all_project_test_cases, folder and step helpers) is defined in src/tools.ts. After npm run build, run npm run list-tools to print every registered tool name — use this to confirm Cursor is using this build (you should see list_all_project_test_cases).
Cursor: use the local build for full functionality
npx @denis-platonov/qtm4j-mcp-server may be an older npm release. To guarantee tools such as list_all_project_test_cases and correct startAt handling:
In this directory:
npm install && npm run build.Merge
cursor-mcp.example.jsoninto your user Cursor config~/.cursor/mcp.json(Windows:%USERPROFILE%\.cursor\mcp.json). Adjust theargspath to your absolutedist/index.js.Run
npm run list-toolsand confirm the tool count matches expectations.Restart Cursor or toggle the MCP server off/on.
Cursor workspace tool descriptors
If you use Cursor’s workspace mcps/<server>/tools/*.json hints for the agent, keep those JSON schemas in sync with src/tools.ts (same parameter names as the Zod definitions). Rebuild and restart MCP after changing tools.
Setup
Prerequisites
Node.js 20+
QTM4J Open API key (generate from Jira: QMetry > Configuration > Open API)
Use with Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"qtm4j": {
"command": "npx",
"args": ["-y", "@denis-platonov/qtm4j-mcp-server"],
"env": {
"QTM4J_API_KEY": "your-api-key",
"QTM4J_BASE_URL": "https://qtmcloud.qmetry.com/rest/api/latest",
"QTM4J_PROJECT_ID": "10800"
}
}
}
}Use with JetBrains IDEs
In JetBrains AI Assistant, open Tools > AI Assistant > Model Context Protocol (MCP) and add:
{
"mcpServers": {
"qtm4j": {
"command": "npx",
"args": ["-y", "@denis-platonov/qtm4j-mcp-server"],
"env": {
"QTM4J_API_KEY": "your-api-key",
"QTM4J_BASE_URL": "https://qtmcloud.qmetry.com/rest/api/latest",
"QTM4J_PROJECT_ID": "10800"
}
}
}
}Restart AI Assistant after saving the configuration.
Use with VS Code
Add this to your user or workspace MCP configuration file, typically .vscode/mcp.json or your profile-level mcp.json:
{
"servers": {
"qtm4j": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@denis-platonov/qtm4j-mcp-server"],
"env": {
"QTM4J_API_KEY": "your-api-key",
"QTM4J_BASE_URL": "https://qtmcloud.qmetry.com/rest/api/latest",
"QTM4J_PROJECT_ID": "10800"
}
}
}
}Use with Antigravity
In Antigravity, open Manage MCP Servers and then View raw config, then add this to mcp_config.json:
{
"mcpServers": {
"qtm4j": {
"command": "npx",
"args": ["-y", "@denis-platonov/qtm4j-mcp-server"],
"env": {
"QTM4J_API_KEY": "your-api-key",
"QTM4J_BASE_URL": "https://qtmcloud.qmetry.com/rest/api/latest",
"QTM4J_PROJECT_ID": "10800"
}
}
}
}Build
npm install
npm run buildTesting
Run the hermetic test suite:
npm testRun once without watch mode:
npm run test:runGenerate a coverage report:
npm run test:coverageRun opt-in live integration tests against a real QTM4J environment:
npm run test:liveLive tests are skipped unless the required environment is present. The live suite currently supports:
Read-focused checks using
QTM4J_API_KEY,QTM4J_BASE_URL, andQTM4J_PROJECT_IDSearch coverage with
QTM4J_LIVE_TEST_CASE_KEYCycle listing coverage with
QTM4J_LIVE_TEST_CYCLE_IDAttachment URL coverage with
QTM4J_LIVE_TEST_EXECUTION_IDOptional mutation checks only when
QTM4J_LIVE_ENABLE_MUTATIONS=1
Example:
QTM4J_API_KEY=your-api-key \
QTM4J_PROJECT_ID=10800 \
QTM4J_LIVE_TEST_CASE_KEY=PE26-TC-2 \
QTM4J_LIVE_TEST_CYCLE_ID=PE26-R1 \
QTM4J_LIVE_TEST_EXECUTION_ID=12345 \
npm run test:liveLocal Development
Copy cursor-mcp.example.json into ~/.cursor/mcp.json (merge with existing mcpServers) and set args to the absolute path of dist/index.js, for example on Windows:
"args": ["C:/Users/you/projects/qa-all-in-one/tools/qtm4j-mcp-server/dist/index.js"]
Optional: NODE_TLS_REJECT_UNAUTHORIZED": "0" in env only if you must use self-signed TLS.
Publish
This repository uses a tag-driven GitHub Actions release workflow.
Align
package.jsonandserver.jsonto the release version.Build and verify locally:
npm run build
npm run test:runCommit the release-prep changes.
Create and push the release tag:
git tag v1.1.0
git push origin sync/desktop-qtm4j-source
git push origin v1.1.0GitHub Actions will verify the tag matches
package.jsonandserver.json, publish the npm package, and then publishserver.jsonto the MCP Registry.
You can then verify discovery with:
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.denis-platonov/qtm4j"GitHub Actions
This repo includes two workflows:
CI: runsnpm run build,npm run test:run, andnpm run test:coverageon pushes tomainand on pull requestsRelease: runs on tags matchingv*, verifies the tag matchespackage.jsonandserver.json, publishes to npm, and then publishesserver.jsonto the MCP Registry
To use the release workflow, add this repository secret:
NPM_TOKEN: npm access token with permission to publish@denis-platonov/qtm4j-mcp-server
Then cut a release like this:
git tag v1.1.0
git push origin v1.1.0Environment Variables
Variable | Required | Default | Description |
| Yes | — | QTM4J Open API key |
| No |
| API base URL |
| No | — | Default project ID (avoids passing it in every call) |
| No | — | Set to |
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/denis-platonov/qtm4j-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server