QTM4J MCP Server
Mentions that the Swagger spec does not currently document a framework-style automation import-result endpoint for Cucumber ingestion, indicating awareness of but not direct integration with Cucumber test automation framework.
Provides tools for interacting with QMetry Test Management for Jira Cloud (QTM4J) REST API, enabling AI agents to manage test cases, test cycles, test executions, test plans, folders, and automation rules within QMetry's test management platform.
Integrates with QMetry Test Management for Jira Cloud (QTM4J), providing tools to manage test cases, test cycles, test executions, test plans, and automation rules that are linked to Jira projects. Note: projectId must be the numeric Jira project ID, not the project key.
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 cases in project 10011 with status Approved"
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
An MCP server that exposes the QMetry Test Management for Jira Cloud (QTM4J) REST API as tools Claude (or any MCP-compatible client) can call.
Features
Tools cover the most common CRUD flows across the major QTM4J entities:
Area | Tools |
Test Cases |
|
Test Cycles |
|
Test Executions |
|
Test Plans |
|
Folders |
|
Automation |
|
All tools validate inputs with Zod, paginate list endpoints via startAt / maxResults, and automatically retry rate-limited (HTTP 429) responses with exponential back-off up to 3 attempts.
Requirements
Node.js 18+ (uses native
fetch)A QMetry API key (from QMetry → API Keys)
Install
git clone https://github.com/salehrifai42/qmetrymcp.git
cd qmetrymcp
npm install
npm run buildConfiguration
The server is configured entirely through environment variables:
Variable | Required | Default | Description |
| yes | — | QMetry API key, sent on every request as the |
| no |
|
|
Running
QTM4J_API_KEY=your-key npm startThe server speaks MCP over stdio — you don't normally run it directly; your MCP client (Claude Desktop, Claude Code, etc.) spawns it.
MCP client configuration
All clients run the server directly with node. Replace /path/to/qmetrymcp with the absolute path to where you cloned the repo.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (or the platform equivalent) and restart Claude Desktop:
{
"mcpServers": {
"qtm4j": {
"command": "node",
"args": ["/path/to/qmetrymcp/dist/index.js"],
"env": {
"QTM4J_API_KEY": "your-api-key-here",
"QTM4J_REGION": "US"
}
}
}
}Claude Code (CLI)
Use the claude mcp add command:
claude mcp add qtm4j \
-e QTM4J_API_KEY=your-api-key-here \
-e QTM4J_REGION=US \
-- node /path/to/qmetrymcp/dist/index.jsThis writes to your user-scoped config (~/.claude.json). To scope it to a single repo instead, drop a .mcp.json at the project root with the same mcpServers shape as the Claude Desktop example above — Claude Code will pick it up automatically.
Verify it's registered:
claude mcp listIn a session you can also run /mcp to see connected servers and their tools.
GitHub Copilot (VS Code)
Copilot's agent mode supports MCP via a .vscode/mcp.json file in your workspace (or the equivalent block in user settings.json under github.copilot.chat.mcp.servers). Note: Copilot's schema uses servers (not mcpServers) and expects an explicit type:
// .vscode/mcp.json
{
"servers": {
"qtm4j": {
"type": "stdio",
"command": "node",
"args": ["/path/to/qmetrymcp/dist/index.js"],
"env": {
"QTM4J_API_KEY": "your-api-key-here",
"QTM4J_REGION": "US"
}
}
}
}After saving, open the Copilot Chat panel, switch to Agent mode, and the qtm4j tools will appear in the tool picker. If you don't want to commit your API key, use VS Code's secret input:
{
"inputs": [
{ "id": "qtm4jKey", "type": "promptString", "description": "QTM4J API Key", "password": true }
],
"servers": {
"qtm4j": {
"type": "stdio",
"command": "node",
"args": ["/path/to/qmetrymcp/dist/index.js"],
"env": {
"QTM4J_API_KEY": "${input:qtm4jKey}",
"QTM4J_REGION": "US"
}
}
}
}Trying it out
Once connected, ask the assistant something like:
Search QMetry project 10011 for test cases with status "Approved" and show me the first 5.
The client will call search_test_cases with { projectId: 10011, status: ["Approved"], maxResults: 5 } and render the response.
Example tool calls
// Search test cases in project with numeric ID 10011
{
"name": "search_test_cases",
"arguments": {
"projectId": 10011,
"status": ["Approved"],
"maxResults": 20
}
}
// Update an execution result
{
"name": "update_test_execution",
"arguments": {
"cycleId": 1234,
"testCaseExecutionId": 56789,
"executionResultId": 2,
"comment": "Verified on staging"
}
}Error handling
Non-2xx responses return a tool error with the HTTP status and parsed API body.
Network errors return a descriptive error message.
429 responses are retried automatically with exponential back-off (up to 3 total attempts).
Notes
projectIdmust be the numeric Jira project ID (e.g.10011), not the project key (e.g."FS"). You can find it in the Jira project URL:…?projectId=10011&projectKey=FS.Search endpoints use
POST /…/search— filters go in the body underfilter, pagination/sort on the query string. The MCP handlers wrap this for you automatically."Update" endpoints that return
204 No Contentresolve with a simple{ message: "…" }payload.The Swagger spec does not currently document a framework-style automation import-result endpoint (e.g. JUnit/TestNG/Cucumber ingestion); the automation tools here cover the rules-run and rule-link flows exposed in the spec.
This server cannot be installed
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
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/salehrifai42/qmetrymcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server