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 搜索并读取测试用例、详情、步骤和文件夹,支持分页的项目级列表与跨页合并,可按摘要筛选并查看文件夹路径。创建测试用例、文件夹和测试周期,并把测试用例加入文件夹或周期。新增、修改和移除测试用例步骤,更新测试用例版本的摘要或描述。更新执行结果(通过/失败)、关闭测试周期,并列出周期内的测试用例。获取用于上传附件的预签名 URL。
适用场景
适合团队使用 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 分