QTM4J

io.github.denis-platonov由 GitHub 帳號 denis-platonov 發布v1.1.0更新於 Oct 24, 2026

MCP server for QMetry Test Management for Jira (QTM4J) Open API.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

針對 QTM4J(Jira 的 QMetry 測試管理)的在地 MCP 伺服器,讓助理搜尋、建立與更新測試案例、測試週期與執行結果。

可以做什麼
依關鍵字或 ID 搜尋並讀取測試案例、詳細資料、步驟與資料夾,支援分頁的專案層級清單與跨頁合併,可依摘要篩選並查看資料夾路徑。建立測試案例、資料夾與測試週期,並把測試案例加入資料夾或週期。新增、修改與移除測試案例步驟,更新測試案例版本的摘要或描述。更新執行結果(通過/失敗)、關閉測試週期,並列出週期內的測試案例。取得用於上傳附件的預簽章網址。
適用情境
適合團隊以 QTM4J 管理測試的情況:希望助理查詢測試案例、草擬或修改案例與步驟、整理資料夾,或記錄與更新執行結果,而不必切換到 Jira/QMetry 介面。
執行需求
透過 npm 套件以 stdio 在本機執行,需要 Node.js 20 以上。需要 QTM4J Open API 金鑰,放在 QTM4J_API_KEY 中,可於 Jira 的 QMetry > Configuration > Open API 產生。QTM4J_BASE_URL(預設為 QMetry 雲端 API)與 QTM4J_PROJECT_ID(預設專案)為選用。需要能連線至 QTM4J API 的網路。
安裝前請注意
QTM4J_API_KEY 中的 API 金鑰可存取你的 QTM4J 專案資料,請勿寫入共用設定。多個工具會寫入 QTM4J:建立測試案例、資料夾與週期,將案例加入或移出資料夾與週期,編輯步驟、摘要與描述,更新執行狀態以及關閉週期。將 NODE_TLS_REJECT_UNAUTHORIZED 設為 0 會關閉 TLS 憑證檢查,應避免使用。README 提醒 npx 套件可能比本機建置版本舊。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 QTM4J,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

qtm4j-mcp-server

[CI] [npm version] [Release] [License: MIT]

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

ClientStatusNotes
CursorSupportedConfigure with npx in ~/.cursor/mcp.json
JetBrains IDEsSupportedConfigure in AI Assistant MCP settings
VS CodeSupportedConfigure in .vscode/mcp.json or user profile mcp.json
AntigravitySupportedConfigure in mcp_config.json via raw config

Tools

ToolDescription
create_test_cycleCreate a new test cycle (run)
search_test_caseSearch for a test case by key (e.g. PE26-TC-2)
search_test_casesSearch test cases with pagination and optional summary filters
list_all_project_test_casesFetch and merge paginated test case results across a project
create_test_caseCreate a new test case, optionally placing it in folders
list_cycle_test_casesList all test cases in a cycle
add_test_case_to_cycleAdd a test case to a cycle
update_execution_statusUpdate execution result (Pass/Fail)
close_test_cycleClose a test cycle
get_attachment_urlGet presigned URL for attachment upload
add_test_case_stepsAdd one or more steps to a test case version
add_test_case_to_foldersAdd a test case version to one or more folders
create_test_case_folderCreate a test case folder in a project
get_test_caseFetch a test case by ID or key
get_test_case_detailsFetch full details for a specific test case version
get_test_case_stepsList or search steps on a test case version
list_test_case_foldersList project test case folders with flat paths
remove_test_case_from_foldersRemove a test case version from folders
update_test_case_descriptionUpdate a test case version description
update_test_case_stepUpdate an existing test step
update_test_case_summaryUpdate 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:

  1. In this directory: npm install && npm run build.
  2. Merge cursor-mcp.example.json into your user Cursor config ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json). Adjust the args path to your absolute dist/index.js.
  3. Run npm run list-tools and confirm the tool count matches expectations.
  4. 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:

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:

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"      }    }  }}

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:

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:

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

bash
npm installnpm run build

Testing

Run the hermetic test suite:

bash
npm test

Run once without watch mode:

bash
npm run test:run

Generate a coverage report:

bash
npm run test:coverage

Run opt-in live integration tests against a real QTM4J environment:

bash
npm run test:live

Live tests are skipped unless the required environment is present. The live suite currently supports:

  • Read-focused checks using QTM4J_API_KEY, QTM4J_BASE_URL, and QTM4J_PROJECT_ID
  • Search coverage with QTM4J_LIVE_TEST_CASE_KEY
  • Cycle listing coverage with QTM4J_LIVE_TEST_CYCLE_ID
  • Attachment URL coverage with QTM4J_LIVE_TEST_EXECUTION_ID
  • Optional mutation checks only when QTM4J_LIVE_ENABLE_MUTATIONS=1

Example:

bash
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:live

Local 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.

  1. Align package.json and server.json to the release version.
  2. Build and verify locally:
bash
npm run buildnpm run test:run
  1. Commit the release-prep changes.
  2. Create and push the release tag:
bash
git tag v1.1.0git push origin sync/desktop-qtm4j-sourcegit push origin v1.1.0
  1. GitHub Actions will verify the tag matches package.json and server.json, publish the npm package, and then publish server.json to the MCP Registry.

You can then verify discovery with:

bash
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.denis-platonov/qtm4j"

GitHub Actions

This repo includes two workflows:

  • CI: runs npm run build, npm run test:run, and npm run test:coverage on pushes to main and on pull requests
  • Release: runs on tags matching v*, verifies the tag matches package.json and server.json, publishes to npm, and then publishes server.json to 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:

bash
git tag v1.1.0git push origin v1.1.0

Environment Variables

VariableRequiredDefaultDescription
QTM4J_API_KEYYes—QTM4J Open API key
QTM4J_BASE_URLNohttps://qtmcloud.qmetry.com/rest/api/latestAPI base URL
QTM4J_PROJECT_IDNo—Default project ID (avoids passing it in every call)
NODE_TLS_REJECT_UNAUTHORIZEDNo—Set to 0 for self-signed certs

來源:README.md,提交 e865400

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分