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 |
Available Tools
21 toolsadd_test_case_stepsB
Create test steps on a test case version (POST …/teststeps). steps[].stepDetails is required.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal test case id (or key if API accepts) | |
| versionNo | No | Test case version number | |
| steps | Yes | Steps to create | |
| aiGenerated | No | If true, sends aiGenerated=true query flag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only notes that 'stepDetails' is required but omits critical traits such as whether steps are appended or replaced, side effects, authorization needs, or validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action and a key requirement. It is concise and free of extraneous information, though it may be too terse for full understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema), the description is not complete. It lacks information on return values, error conditions, idempotency, and whether steps are appended or replaced. The tool modifies data but provides no behavioral context beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond the schema: it reiterates that 'steps[].stepDetails is required', which is already in the schema. No explanation of parameters like aiGenerated, versionNo, or projectId is provided beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create test steps') and the resource ('on a test case version'), using a specific verb and noun. It distinguishes from siblings like 'update_test_case_step' and 'get_test_case_steps' by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding steps to a test case version but provides no explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned, leaving the context of use inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_test_case_to_cycleB
Add a test case to a test cycle. Returns the execution ID.
| Name | Required | Description | Default |
|---|---|---|---|
| testCycleId | Yes | Test cycle ID | |
| testCaseId | Yes | Test case ID | |
| versionNo | No | Test case version number (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility. It discloses the return of execution ID but omits behavioral traits like idempotency, error states (e.g., adding a duplicate), or permission requirements. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences with each sentence adding value. The first sentence states the action, the second notes the return value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and return value, but lacks contextual details about prerequisites, error scenarios, and behavior for duplicate additions. Given the tool's simplicity, a moderately complete description would include these, so a score of 3 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description in the schema. The tool description does not add extra meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'test case to a test cycle', making the action unambiguous. It also mentions the return value (execution ID), distinguishing it from siblings like add_test_case_steps or create_test_cycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate prerequisites (e.g., cycle must exist, test case must exist) or when to prefer this tool over alternatives like add_test_case_to_folders. An agent lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_test_case_to_foldersB
Add a test case version to folders (PUT …/versions/{no} with folders.add). Use folder ids from list_test_case_folders.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key PE26-TC-… | |
| versionNo | No | ||
| addFolderIds | Yes | Folder ids to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the PUT method, implying mutation, but does not disclose side effects, error conditions, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads key information. It is efficient, though could benefit from more structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal for a tool with 4 parameters and no output schema. It lacks details on behavior, prerequisites, and error cases, leaving the agent with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so baseline is 3. The description does not add significant meaning beyond the schema; it only relates addFolderIds to folder IDs from another tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add) and resource (test case version to folders), includes the API endpoint and method, and distinguishes itself from sibling tools like remove_test_case_from_folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises using folder IDs from list_test_case_folders, but does not explicitly state when to use this tool vs alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_test_cycleB
Close a test cycle by setting its status to Done.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCycleId | Yes | Test cycle ID | |
| statusId | Yes | Status ID for Done (project-specific, e.g. 621499) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states that the status is set to Done, but does not disclose side effects, permissions needed, whether it's reversible, or what happens to associated test cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is direct and front-loaded, with no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a low parameter count and no output schema, but the description is minimal. While it conveys the basic action, it lacks detail on return value or behavioral context, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains the parameters. The description adds no extra meaning beyond what 'Close a test cycle' implies. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Close a test cycle by setting its status to Done' clearly states the verb (close) and resource (test cycle), distinguishing it from sibling tools like create_test_cycle or add_test_case_to_cycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_execution_status. There is no mention of prerequisites, when not to use it, or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_caseB
Create a new test case in QTM4J. Returns testCaseId, versionNo, and optional folderId / pickedFolder / folderWarning. Use folderId, or autoPickFolder with optional folderKeywords.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| summary | Yes | Test case summary/title | |
| folderId | No | Place the new case in this folder (from list_test_case_folders flatFolders.id) | |
| autoPickFolder | No | If true, score folders using built-in Web/LEX-style keywords plus folderKeywords | |
| folderKeywords | No | Extra keywords matched against folder path (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions return values but does not disclose permissions, rate limits, side effects (e.g., does it modify any existing data?), or whether the operation is reversible. A creation tool typically needs more safety-related context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and key return values. Every sentence adds value, and there is no redundant or verbose language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and 20 siblings, the description covers the core action and folder options adequately. However, it lacks guidance on prerequisites (e.g., project context) and does not mention how to handle errors or what the folderWarning means. Without an output schema, more detail on return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds marginal value beyond the schema. It clarifies the return fields and explains the folder parameters (folderId vs autoPickFolder), but does not provide additional constraints or examples. Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new test case in QTM4J', which is a specific verb+resource combination. It also mentions return values, but does not explicitly differentiate from sibling tools like update_test_case_summary or add_test_case_steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some guidance on using folderId vs autoPickFolder with folderKeywords, implying usage context. However, it lacks explicit when-to-use or when-not-to-use instructions compared to alternative tools, such as create_test_case_folder.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_case_folderB
Create a testcase folder (POST /projects/{projectId}/testcase-folders). parentId -1 = root.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| folderName | Yes | New folder name | |
| parentId | No | Parent folder id from list_test_case_folders; omit for -1 (root) | |
| description | No | Optional folder description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits. It mentions the POST method (destructive) and a special value for parentId, but lacks information on permissions, error scenarios, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence plus a note) and front-loads the purpose. It could be more structured but is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should provide more context about return values, error handling, and typical usage flow. It omits critical operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the tool description adds no new parameter meaning beyond what the schema already provides. The note about parentId being -1 for root is already in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'testcase folder', with the API path providing additional context. It distinguishes from sibling tools that deal with adding test cases to folders or listing folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives (e.g., list_test_case_folders, add_test_case_to_folders). It does not mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_cycleB
Create a new test cycle (run) in QTM4J. Returns the cycle ID.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| summary | Yes | Test cycle name/summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states creation and return of cycle ID. No disclosure of side effects, permissions, or limitations like duplicate names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the action. Efficient but could include a bit more context without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (2 params, no output schema), the description is fairly complete but lacks usage guidelines and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add any extra meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new test cycle (run) in QTM4J' with a specific verb and resource, and distinguishes from sibling tools by mentioning 'cycle ID' return.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'close_test_cycle' or 'add_test_case_to_cycle'. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachment_urlB
Get a presigned URL for uploading an attachment to a test case execution.
| Name | Required | Description | Default |
|---|---|---|---|
| testCycleId | Yes | Test cycle ID | |
| projectId | No | QMetry project ID (default: none) | |
| fileName | Yes | Name of the file to attach | |
| testCaseExecutionId | Yes | Test case execution ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It states 'Get a presigned URL for uploading' but does not disclose that the URL grants temporary write access, typical expiration, or any side effects. The description implies a read operation (getting a URL) but the URL enables a write (upload), which is not clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, highly concise, and front-loaded with the key action. It contains no superfluous words, but could include brief context without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is insufficient. It does not explain what a presigned URL is, how to use it, expiration, allowed file types, or return format. This is a significant gap for an upload URL tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described in the schema. The description adds no additional meaning beyond 'presigned URL for uploading'. Baseline 3 is appropriate as the schema already documents parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and resource 'presigned URL for uploading an attachment to a test case execution', clearly distinguishing it from sibling tools like 'remove_test_case_from_folders' or 'create_test_case'. The purpose is unambiguous and action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as other attachment-related tools or when to use the returned URL. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_caseA
GET /testcases/{id}; on failure resolves by key via search. Optional versionNo returns version details instead of slim record.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key | |
| versionNo | No | If set, fetch that version details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the fallback behavior (resolves by key via search) and the versionNo switch. This adds meaningful behavioral context beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no wasted words. Every part is informative and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET tool, the description covers the fallback logic and mode switch. No output schema exists, but the description sufficiently sets expectations for the response (slim record or version details).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds meaning: testCaseId can be internal id or key, and versionNo returns version details instead of slim record. This enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a test case by ID, with fallback to key search. It distinguishes from siblings like 'search_test_case' by specifying the direct lookup and optional version detail mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you have an ID or key and want a single test case, optionally with version details. However, it does not explicitly guide when to use this vs. search_test_case for broader queries or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_detailsB
GET /testcases/{id}/versions/{no} full version payload. Optional fields= comma-separated.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key | |
| versionNo | No | ||
| scope | No | Ignored; kept for compatibility | |
| fields | No | Optional comma-separated API fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the HTTP method and endpoint, omitting details like authentication needs, error handling, side effects, or that it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key information (HTTP method and purpose). However, it could be better structured to separate endpoint details from usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (5 parameters, 1 required), the description lacks completeness. It does not describe the return value, behavior for missing versions, or how scope is ignored. The tool name suggests detailed information, but the description is too brief.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes 80% of parameters. The description adds minimal value by noting that 'fields' is optional and comma-separated, but does not explain the meaning of other parameters beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the full version payload of a test case, with the HTTP method and endpoint pattern. This differentiates it from sibling tools like get_test_case (which likely returns the base test case) and get_test_case_steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_test_case or search_test_cases. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_stepsB
POST …/teststeps/search (QTM4J GetTestStepRequest). Pagination: query startAt & maxResults (max 100). Body is {} to list all steps, or { filter: { stepDetails?, testData?, expectedResult? } } — no projectId in the filter. Optional sort is a query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal test case id | |
| versionNo | No | ||
| startAt | No | ||
| maxResults | No | ||
| sort | No | e.g. seqNo:asc | |
| stepDetailsContains | No | ||
| testDataContains | No | ||
| expectedResultContains | No | ||
| useLatestVersion | No | Use /versions/latest/… path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It mentions pagination and constraints like max 100 results and no projectId in the filter, but fails to disclose if the operation is read-only, what permissions are needed, or whether there are any side effects. This is a significant gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short and front-loaded with the endpoint and purpose. It uses concise fragments to convey key information (pagination, body options, filter constraints). Some technical jargon (QTM4J GetTestStepRequest) may be confusing, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, no output schema, and no annotations, the description should be comprehensive. It covers pagination, body options, and sort, but omits the required testCaseId explanation, versionNo default behavior, useLatestVersion purpose, and what the response contains. This leaves significant gaps for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, and the description adds value by explaining the body structure and how to use the filter fields (stepDetailsContains, testDataContains, expectedResultContains). However, it does not explain the meaning of projectId, testCaseId, versionNo, or useLatestVersion beyond what the schema already provides. The description helps but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving test steps via a POST request to a search endpoint. It specifies the resource (test steps) and action (list/search), and distinguishes from siblings like add_test_case_steps or update_test_case_step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context, such as pagination parameters and the option to filter by stepDetails, testData, or expectedResult. However, it does not explicitly state when to prefer this tool over others, nor does it mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_project_test_casesA
Fetches all pages of /testcases/search for a project until a short page or maxPages. Merges rows and dedupes by test case key when present. Use for exporting or counting beyond a single page.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| key | No | Optional exact key filter | |
| summaryContains | No | Optional summary contains filter (~ prefix applied like search_test_cases) | |
| maxResultsPerPage | No | Page size per request | |
| maxPages | No | Safety cap: max pages to fetch (default 100 → up to 10k rows at page size 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses pagination strategy, merging, and deduplication logic. With no annotations, this adequately informs the agent of key behaviors. Could mention read-only nature or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose and behavior. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main purpose and behavior. With 5 parameters and no output schema, description is mostly complete but could mention edge cases like empty results or behavior when dedup key is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 applies. Description adds no parameter-specific details beyond the schema; it only contextualizes the overall behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Fetches all pages' and specifies merging and deduplication. Distinguishes from sibling tools like search_test_cases (single page) and list_cycle_test_cases (cycle-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use for exporting or counting beyond a single page', providing clear context. Mentions stop condition (short page or maxPages) but lacks explicit when-not or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cycle_test_casesB
List all test cases in a test cycle with their execution IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| testCycleId | Yes | Test cycle ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only mentions the output includes execution IDs. It does not disclose pagination, ordering, or any side effects. Minimal behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no unnecessary words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param, no nested objects) and clear output description, the description is mostly complete. However, no output schema means the agent lacks exact field details for the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no meaning beyond the schema. The parameter 'testCycleId' is described in both, but the description just restates the schema content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (test cases in a test cycle), and the specific output (with execution IDs). This distinguishes it from sibling tools like 'list_all_project_test_cases' which lacks the cycle filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'get_test_case' or 'search_test_case'. The description does not include any context about prerequisites or conditions for using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_test_case_foldersC
GET /projects/{id}/testcase-folders plus flatFolders (id, name, path).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| withCount | No | Request withCount=true when supported |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It implies a read-only GET operation but does not explicitly state safety, authentication needs, or side effects. The mention of 'flatFolders' provides minimal output context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It front-loads key information (HTTP method and endpoint), though the meaning of 'plus flatFolders' could be clarified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the description is minimal. It lacks details on pagination, ordering, hierarchy, or the full scope of the returned data. More context is needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds little beyond the schema except hinting at output structure (flatFolders). The baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates that the tool lists test case folders, mentioning the HTTP method and the returned fields (id, name, path). It distinguishes from sibling tools like create_test_case_folder, but could be more explicit about being a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_test_case_folder or add_test_case_to_folders. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_test_case_from_foldersB
Remove a test case version from folders (PUT …/versions/{no} with folders.delete).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key | |
| versionNo | No | ||
| removeFolderIds | Yes | Folder ids to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral traits such as side effects, permissions, or error conditions. However, it only mentions the HTTP method and basic action, leaving out important context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that mentions the API endpoint, but it could be slightly more structured. It is not verbose or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 4 parameters, the description is minimal. It does not explain return values, error handling, or prerequisites, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (3 of 4 parameters have descriptions). The tool description does not add any additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'remove', the resource 'test case version from folders', and includes the API endpoint. This distinguishes it from sibling tools like 'add_test_case_to_folders'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'add_test_case_to_folders' or other sibling tools. The description only states the operation without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_test_caseB
Search for a test case by key (e.g. PE26-TC-2). Returns test case ID and version.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| key | Yes | Test case key, e.g. PE26-TC-2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions it returns ID and version, but lacks details on behavior such as whether it searches across projects, case sensitivity, or error handling. No annotations are provided, so the description carries full burden but does not sufficiently disclose behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that convey the essential purpose and return information. No redundant words or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description is incomplete. It does not specify what happens when the key is not found, whether the search is exact, or the role of the optional projectId parameter. The tool is simple but the description could be more thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema by providing an example key and mentioning return fields, but does not elaborate on parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches for a test case by key and returns ID and version. It uses specific verb 'search' and resource 'test case' and distinguishes from sibling 'search_test_cases' which likely returns multiple results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific test case key, but it does not provide explicit guidance on when to use this tool versus alternatives like 'search_test_cases' or 'get_test_case'. There is no mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_test_casesA
Paginated POST /testcases/search. Returns the raw API JSON (includes data, total, startAt, maxResults when provided). Use startAt/maxResults for paging; summaryContains adds a leading ~ for contains-style summary filter when not already present.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| key | No | Exact test case key filter (optional) | |
| summaryContains | No | Summary substring filter; sent as filter.summary with ~ prefix unless value already starts with ~ | |
| summary | No | Raw filter.summary value (advanced; overrides summaryContains when both set) | |
| startAt | No | Zero-based offset for this page | |
| maxResults | No | Page size (1–500, default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions the HTTP method, that results are raw API JSON, and explains the summaryContains prefix behavior. However, it does not state whether the operation is read-only or if any side effects occur, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that efficiently cover purpose, return type, pagination, and a specific filter behavior. Every sentence adds necessary information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description partially explains the return value (raw JSON with fields like data, total, startAt, maxResults). It lacks detail on the structure of 'data' and potential errors, but for a search endpoint, the coverage is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions (100% coverage), baseline 3. The description adds value by explaining the prefix logic for summaryContains and that startAt/maxResults control paging, which is not obvious from schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a paginated POST endpoint for searching test cases, returning raw API JSON. It specifies the HTTP method and resource path, and distinguishes itself from siblings by emphasizing pagination and raw output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like search_test_case or list_all_project_test_cases. The description focuses on mechanics (paging, summary filter) but does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_execution_statusC
Update execution result (Pass/Fail) for a test case execution in a cycle.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCycleId | Yes | Test cycle ID | |
| testCaseExecutionId | Yes | Test case execution ID | |
| executionResultId | Yes | Execution result ID (project-specific, e.g. 279279=Pass, 279276=Fail) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a mutation but does not disclose side effects, idempotency, permission requirements, or what happens if the result is already set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Efficiently conveys core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is too brief. It lacks information about return values, error scenarios, or how to map executionResultId to actual results. Siblings do not fill this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with existing descriptions for each parameter. The description adds minimal value beyond the schema, only reinforcing that executionResultId corresponds to Pass/Fail. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (update) and resource (execution result for a test case execution in a cycle). It distinguishes from siblings as no other tool modifies execution status. However, it could be more precise by noting that it sets Pass/Fail status, which is hinted in schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not state prerequisites, such as needing an existing execution or how to obtain the executionResultId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_test_case_descriptionB
Update the description field on a test case version (PUT …/testcases/{id}/versions/{no} with description).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key | |
| versionNo | No | ||
| description | Yes | New description text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral burden. It only states the HTTP method and field updated, omitting details on permissions, idempotency, side effects, or what happens if the version doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence clearly stating the action and endpoint, with no wasted words. Front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks guidance on error conditions, return values, or prerequisites for version existence. A more complete description would mention these aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 75% of parameters with descriptions. The description adds the endpoint pattern but does not clarify parameter semantics beyond what's in the schema, such as the role of projectId or versionNo.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates the 'description field on a test case version' with a specific PUT endpoint, distinguishing it from siblings like update_test_case_summary which handle other fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as update_test_case_summary, nor prerequisites like version existence. The name and description imply the use case but lack explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_test_case_stepA
Edit an existing test step (PUT …/versions/{v}/teststeps with a JSON array). stepId is the numeric id from get_test_case_steps. Provide at least one of stepDetails, expectedResult, testData.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key | |
| versionNo | No | ||
| stepId | Yes | Step id from test step search/list | |
| stepDetails | No | Action / step text | |
| expectedResult | No | ||
| testData | No | ||
| useLatestVersion | No | If true, use /versions/latest/… in the path instead of versionNo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies mutation (PUT) and requires stepId from a search/list tool, indicating a prerequisite. Does not disclose any destructive effects beyond editing, which is acceptable for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. Front-loads the primary action and then provides critical usage details. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: where to get stepId, what parameters are optional/required, and the useLatestVersion flag. Lacks return value details, but output schema is absent, and the tool is a simple update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaningful context beyond schema: explains stepId origin, documents the 'at least one' constraint for stepDetails/expectedResult/testData, and clarifies useLatestVersion behavior. Schema coverage is 63%, but description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Edit an existing test step', specifies HTTP method (PUT) and endpoint pattern. Distinguishes from sibling tool 'add_test_case_steps' (add vs update).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit source for stepId ('from get_test_case_steps') and gives guidance on required fields ('Provide at least one of stepDetails, expectedResult, testData'). Could mention when to use this versus other update tools like 'update_test_case_description'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_test_case_summaryA
Update the summary (title) on a test case version (PUT …/testcases/{id}/versions/{no} with summary).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | QMetry project ID (default: none) | |
| testCaseId | Yes | Internal id or key | |
| versionNo | No | ||
| summary | Yes | New summary / title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It indicates a PUT operation (idempotent) and mentions the summary field, but does not disclose permissions, error states (e.g., missing version), or side effects beyond updating the field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that includes the HTTP method and path. Every element adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple field update, the description is adequate but lacks details on return values, error handling, or version existence. With no output schema, more contextual completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds little beyond what the schema provides. It confirms 'summary' as new title but does not elaborate on format or constraints (e.g., max length) for other parameters like versionNo.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action: 'Update the summary (title) on a test case version'. It specifies the HTTP method and path, and the resource is distinct from sibling tools like update_test_case_description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating summary on a version, but does not explicitly state when to use this tool over alternatives (e.g., update_test_case_description for descriptions). No guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
21 tool updates
v1.1.0- First observed
add_test_case_steps - First observed
add_test_case_to_cycle - First observed
add_test_case_to_folders - First observed
close_test_cycle - First observed
create_test_case - First observed
create_test_case_folder - First observed
create_test_cycle - First observed
get_attachment_url - First observed
get_test_case - First observed
get_test_case_details - First observed
get_test_case_steps - First observed
list_all_project_test_cases - First observed
list_cycle_test_cases - First observed
list_test_case_folders - First observed
remove_test_case_from_folders - First observed
search_test_case - First observed
search_test_cases - First observed
update_execution_status - First observed
update_test_case_description - First observed
update_test_case_step - First observed
update_test_case_summary
TDQS
Each tool has a clearly distinct purpose. Even similar operations like 'get_test_case' vs 'get_test_case_details' are differentiated by their descriptions and the level of detail returned. The three 'add_' tools target different entities (steps, cycle, folders), so no ambiguity.
All tool names follow a consistent 'verb_noun' pattern with snake_case. Verbs like 'add_', 'create_', 'get_', 'list_', 'update_' are used appropriately, making the tool set predictable and easy to navigate.
21 tools is well-scoped for a test management server. Each tool serves a specific function without overloading the user. The count is large enough to cover essential operations but not excessive.
The tool set lacks several obvious operations: no 'list_test_cycles' (only list test cases within a cycle), no delete tools for test cases, cycles, or folders, no 'remove_test_case_from_cycle'. These gaps could hinder agents from completing full workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
An MCP server that provides access to Testiny projects, test cases and test runs
MCP server for AI access to Swagger by SmartBear.
Related MCP Servers
- AlicenseAqualityFmaintenanceQA Sphere MCP server that enables Large Language Models to interact directly with test management system test cases, supporting AI-powered development workflows and test case discovery.1532023MIT
- AlicenseAqualityDmaintenanceAn MCP server that exposes the QMetry Test Management for Jira Cloud REST API as tools for MCP-compatible clients. It enables users to manage test cases, test cycles, test executions, test plans, folders, and automation rules through natural language interactions.3072MIT
- AlicenseBqualityCmaintenanceMCP server to interact with the QMetry for Jira API, enabling management of test cases, test cycles, test plans, and more through well-defined tools.9328Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for Zephyr Scale test management enabling test case, test run, folder, and assignment operations via natural language.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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