mcpField
Q
QTM4J

QTM4J

本地服务
github.com/denis-platonov开发工具028 周前更新

关于 QTM4J

QTM4J 是通过 QMetry Test Management for Jira Open API 管理测试用例和测试周期的 MCP 服务,面向 QA 工作流,支持搜索、编辑、整理用例及更新执行结果。

主要功能

  1. 01搜索和获取测试用例
  2. 02创建和更新测试用例
  3. 03管理测试步骤与文件夹
  4. 04创建和关闭测试周期
  5. 05将用例加入周期并更新结果

适用场景

  1. 01按键值或项目筛选查找用例
  2. 02将测试用例整理到项目文件夹
  3. 03记录通过或失败的执行结果

MCP 相关

该 MCP 服务将 QTM4J Open API 操作作为工具提供给 MCP 客户端,涵盖测试用例、文件夹、步骤和周期管理。使用时需要 QTM4J API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"denis-platonov-qtm4j": {
"command": "npx",
"args": [
"-y",
"@denis-platonov/qtm4j-mcp-server"
],
"env": {
"QTM4J_API_KEY": "<QTM4J_API_KEY>",
"QTM4J_BASE_URL": "<QTM4J_BASE_URL>",
"QTM4J_PROJECT_ID": "<QTM4J_PROJECT_ID>",
"NODE_TLS_REJECT_UNAUTHORIZED": "<NODE_TLS_REJECT_UNAUTHORIZED>"
}
}
}
}
启动命令npx -y @denis-platonov/qtm4j-mcp-server
需要配置的环境变量
QTM4J_API_KEY密钥QTM4J Open API key.
QTM4J_BASE_URLBase URL for the QTM4J Open API.
QTM4J_PROJECT_IDDefault QTM4J project ID used when tool calls omit projectId.
NODE_TLS_REJECT_UNAUTHORIZED密钥Set to 0 only when you must allow self-signed TLS certificates.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@denis-platonov/qtm4j-mcp-server1.1.0

工具

21

收录的工具列表 · 更新于 3 周前

参数类型必填说明
summarystring是测试周期名称/摘要
projectIdnumber否QMetry 项目 ID(默认:无)

详细介绍

qtm4j-mcp-server

CI npm version Release License: MIT

用于 QTM4J(QMetry Test Management for Jira)Open API 的 MCP 服务,地址为 qtmcloud.qmetry.com/rest/api/latest。

已发布的软件包:@denis-platonov/qtm4j-mcp-server

MCP Registry 名称:io.github.denis-platonov/qtm4j

支持的客户端

客户端状态说明
Cursor支持在 ~/.cursor/mcp.json 中使用 npx 配置
JetBrains IDEs支持在 AI Assistant MCP 设置中配置
VS Code支持在 .vscode/mcp.json 或用户配置文件 mcp.json 中配置
Antigravity支持通过原始配置在 mcp_config.json 中配置

工具

工具说明
create_test_cycle创建新的测试周期(运行)
search_test_case按键搜索测试用例(例如 PE26-TC-2)
search_test_cases分页搜索测试用例,并可选择按摘要筛选
list_all_project_test_cases获取并合并项目中分页返回的测试用例结果
create_test_case创建新的测试用例,可选择将其放入文件夹
list_cycle_test_cases列出测试周期中的所有测试用例
add_test_case_to_cycle将测试用例添加到测试周期
update_execution_status更新执行结果(通过/失败)
close_test_cycle关闭测试周期
get_attachment_url获取用于上传附件的预签名 URL
add_test_case_steps向测试用例版本添加一个或多个步骤
add_test_case_to_folders将测试用例版本添加到一个或多个文件夹
create_test_case_folder在项目中创建测试用例文件夹
get_test_case按 ID 或键获取测试用例
get_test_case_details获取特定测试用例版本的完整详情
get_test_case_steps列出或搜索测试用例版本中的步骤
list_test_case_folders列出项目测试用例文件夹,并显示扁平路径
remove_test_case_from_folders从文件夹中移除测试用例版本
update_test_case_description更新测试用例版本说明
update_test_case_step更新现有测试步骤
update_test_case_summary更新测试用例版本摘要

完整的工具集(包括带有 startAt 的 search_test_cases、list_all_project_test_cases、文件夹和步骤辅助工具)定义在 src/tools.ts 中。运行 npm run build 后,运行 npm run list-tools 可打印所有已注册的工具名称 — 用它确认 Cursor 使用的是此构建版本(你应该能看到 list_all_project_test_cases)。

Cursor:使用本地构建以获得完整功能

npx @denis-platonov/qtm4j-mcp-server 可能是较旧的 npm 版本。为确保可使用 list_all_project_test_cases 等工具并正确处理 startAt:

  1. 在此目录中运行:npm install && npm run build。
  2. 将 cursor-mcp.example.json 合并到你的 Cursor 用户配置 ~/.cursor/mcp.json 中(Windows:%USERPROFILE%\.cursor\mcp.json)。将 args 路径调整为 dist/index.js 的绝对路径。
  3. 运行 npm run list-tools,确认工具数量符合预期。
  4. 重启 Cursor,或关闭再开启 MCP 服务。
Cursor 工作区工具描述符

如果你使用 Cursor 工作区的 mcps/<server>/tools/*.json 提示来辅助 Agent,请确保这些 JSON schema 与 src/tools.ts 保持同步(参数名称与 Zod 定义一致)。更改工具后,请重新构建并重启 MCP。

设置

先决条件
  • Node.js 20+
  • QTM4J Open API 密钥(从 Jira 生成:QMetry > Configuration > Open API)
与 Cursor 配合使用

添加到 ~/.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"
      }
    }
  }
}
与 JetBrains IDE 配合使用

在 JetBrains AI Assistant 中,打开 Tools > AI Assistant > Model Context Protocol (MCP) 并添加:

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

保存配置后,重启 AI Assistant。

与 VS Code 配合使用

将此内容添加到用户或工作区 MCP 配置文件,通常是 .vscode/mcp.json 或配置文件级别的 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"
      }
    }
  }
}
与 Antigravity 配合使用

在 Antigravity 中,打开 Manage MCP Servers,然后选择 View raw config,再将此内容添加到 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"
      }
    }
  }
}
构建
npm install
npm run build
测试

运行独立测试套件:

npm test

运行一次,不启用监视模式:

npm run test:run

生成覆盖率报告:

npm run test:coverage

针对真实的 QTM4J 环境运行选择性实时集成测试:

npm run test:live

除非所需环境已就绪,否则会跳过实时测试。目前,实时测试套件支持:

  • 使用 QTM4J_API_KEY、QTM4J_BASE_URL 和 QTM4J_PROJECT_ID 进行以读取为主的检查
  • 使用 QTM4J_LIVE_TEST_CASE_KEY 覆盖搜索测试
  • 使用 QTM4J_LIVE_TEST_CYCLE_ID 覆盖周期列表测试
  • 使用 QTM4J_LIVE_TEST_EXECUTION_ID 覆盖附件 URL 测试
  • 仅当 QTM4J_LIVE_ENABLE_MUTATIONS=1 时运行可选的修改检查

示例:

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
本地开发

将 cursor-mcp.example.json 复制到 ~/.cursor/mcp.json(与现有的 mcpServers 合并),并将 args 设置为 dist/index.js 的绝对路径,例如在 Windows 上:

"args": ["C:/Users/you/projects/qa-all-in-one/tools/qtm4j-mcp-server/dist/index.js"]

可选:仅当必须使用自签名 TLS 时,才在 env 中设置 NODE_TLS_REJECT_UNAUTHORIZED": "0"。

发布

此仓库使用由标签驱动的 GitHub Actions 发布工作流。

  1. 将 package.json 和 server.json 调整为发布版本。
  2. 在本地构建并验证:
npm run build
npm run test:run
  1. 提交发布准备变更。
  2. 创建并推送发布标签:
git tag v1.1.0
git push origin sync/desktop-qtm4j-source
git push origin v1.1.0
  1. GitHub Actions 将验证标签与 package.json 和 server.json 中的版本一致,然后发布 npm 包,最后将 server.json 发布到 MCP Registry。

随后,你可以通过以下命令验证是否可发现:

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

此仓库包含两个工作流:

  • CI:在推送到 main 以及提交拉取请求时,运行 npm run build、npm run test:run 和 npm run test:coverage
  • Release:在匹配 v* 的标签上运行,验证标签与 package.json 和 server.json 中的版本一致,发布到 npm,然后将 server.json 发布到 MCP Registry

要使用发布工作流,请添加此仓库密钥:

  • NPM_TOKEN:具有发布 @denis-platonov/qtm4j-mcp-server 权限的 npm 访问令牌

然后按以下步骤发布:

git tag v1.1.0
git push origin v1.1.0
环境变量
变量必需默认值描述
QTM4J_API_KEY是—QTM4J Open API 密钥
QTM4J_BASE_URL否https://qtmcloud.qmetry.com/rest/api/latestAPI 基础 URL
QTM4J_PROJECT_ID否—默认项目 ID(避免每次调用时都传入)
NODE_TLS_REJECT_UNAUTHORIZED否—自签名证书设为 0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。