Skip to main content
Glama

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

Client

Status

Notes

Cursor

Supported

Configure with npx in ~/.cursor/mcp.json

JetBrains IDEs

Supported

Configure in AI Assistant MCP settings

VS Code

Supported

Configure in .vscode/mcp.json or user profile mcp.json

Antigravity

Supported

Configure in mcp_config.json via raw config

Related MCP server: QTM4J MCP Server

Tools

Tool

Description

create_test_cycle

Create a new test cycle (run)

search_test_case

Search for a test case by key (e.g. PE26-TC-2)

search_test_cases

Search test cases with pagination and optional summary filters

list_all_project_test_cases

Fetch and merge paginated test case results across a project

create_test_case

Create a new test case, optionally placing it in folders

list_cycle_test_cases

List all test cases in a cycle

add_test_case_to_cycle

Add a test case to a cycle

update_execution_status

Update execution result (Pass/Fail)

close_test_cycle

Close a test cycle

get_attachment_url

Get presigned URL for attachment upload

add_test_case_steps

Add one or more steps to a test case version

add_test_case_to_folders

Add a test case version to one or more folders

create_test_case_folder

Create a test case folder in a project

get_test_case

Fetch a test case by ID or key

get_test_case_details

Fetch full details for a specific test case version

get_test_case_steps

List or search steps on a test case version

list_test_case_folders

List project test case folders with flat paths

remove_test_case_from_folders

Remove a test case version from folders

update_test_case_description

Update a test case version description

update_test_case_step

Update an existing test step

update_test_case_summary

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:

  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:

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

Testing

Run the hermetic test suite:

npm test

Run once without watch mode:

npm run test:run

Generate a coverage report:

npm run test:coverage

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

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:

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:

npm run build
npm run test:run
  1. Commit the release-prep changes.

  2. Create and push the release tag:

git tag v1.1.0
git push origin sync/desktop-qtm4j-source
git 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:

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:

git tag v1.1.0
git push origin v1.1.0

Environment Variables

Variable

Required

Default

Description

QTM4J_API_KEY

Yes

QTM4J Open API key

QTM4J_BASE_URL

No

https://qtmcloud.qmetry.com/rest/api/latest

API base URL

QTM4J_PROJECT_ID

No

Default project ID (avoids passing it in every call)

NODE_TLS_REJECT_UNAUTHORIZED

No

Set to 0 for self-signed certs

Available Tools

21 tools
add_test_case_stepsB

Create test steps on a test case version (POST …/teststeps). steps[].stepDetails is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal test case id (or key if API accepts)
versionNoNoTest case version number
stepsYesSteps to create
aiGeneratedNoIf true, sends aiGenerated=true query flag

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
testCycleIdYesTest cycle ID
testCaseIdYesTest case ID
versionNoNoTest case version number (default 1)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key PE26-TC-…
versionNoNo
addFolderIdsYesFolder ids to add

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCycleIdYesTest cycle ID
statusIdYesStatus ID for Done (project-specific, e.g. 621499)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
summaryYesTest case summary/title
folderIdNoPlace the new case in this folder (from list_test_case_folders flatFolders.id)
autoPickFolderNoIf true, score folders using built-in Web/LEX-style keywords plus folderKeywords
folderKeywordsNoExtra keywords matched against folder path (case-insensitive)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
folderNameYesNew folder name
parentIdNoParent folder id from list_test_case_folders; omit for -1 (root)
descriptionNoOptional folder description

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
summaryYesTest cycle name/summary

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
testCycleIdYesTest cycle ID
projectIdNoQMetry project ID (default: none)
fileNameYesName of the file to attach
testCaseExecutionIdYesTest case execution ID

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key
versionNoNoIf set, fetch that version details

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key
versionNoNo
scopeNoIgnored; kept for compatibility
fieldsNoOptional comma-separated API fields

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal test case id
versionNoNo
startAtNo
maxResultsNo
sortNoe.g. seqNo:asc
stepDetailsContainsNo
testDataContainsNo
expectedResultContainsNo
useLatestVersionNoUse /versions/latest/… path

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
keyNoOptional exact key filter
summaryContainsNoOptional summary contains filter (~ prefix applied like search_test_cases)
maxResultsPerPageNoPage size per request
maxPagesNoSafety cap: max pages to fetch (default 100 → up to 10k rows at page size 100)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
testCycleIdYesTest cycle ID

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
withCountNoRequest withCount=true when supported

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key
versionNoNo
removeFolderIdsYesFolder ids to remove

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
keyYesTest case key, e.g. PE26-TC-2

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
keyNoExact test case key filter (optional)
summaryContainsNoSummary substring filter; sent as filter.summary with ~ prefix unless value already starts with ~
summaryNoRaw filter.summary value (advanced; overrides summaryContains when both set)
startAtNoZero-based offset for this page
maxResultsNoPage size (1–500, default 100)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCycleIdYesTest cycle ID
testCaseExecutionIdYesTest case execution ID
executionResultIdYesExecution result ID (project-specific, e.g. 279279=Pass, 279276=Fail)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key
versionNoNo
descriptionYesNew description text

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key
versionNoNo
stepIdYesStep id from test step search/list
stepDetailsNoAction / step text
expectedResultNo
testDataNo
useLatestVersionNoIf true, use /versions/latest/… in the path instead of versionNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoQMetry project ID (default: none)
testCaseIdYesInternal id or key
versionNoNo
summaryYesNew summary / title

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 21 tool updatesv1.1.0
    • First observedadd_test_case_steps
    • First observedadd_test_case_to_cycle
    • First observedadd_test_case_to_folders
    • First observedclose_test_cycle
    • First observedcreate_test_case
    • First observedcreate_test_case_folder
    • First observedcreate_test_cycle
    • First observedget_attachment_url
    • First observedget_test_case
    • First observedget_test_case_details
    • First observedget_test_case_steps
    • First observedlist_all_project_test_cases
    • First observedlist_cycle_test_cases
    • First observedlist_test_case_folders
    • First observedremove_test_case_from_folders
    • First observedsearch_test_case
    • First observedsearch_test_cases
    • First observedupdate_execution_status
    • First observedupdate_test_case_description
    • First observedupdate_test_case_step
    • First observedupdate_test_case_summary

TDQS

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/denis-platonov/qtm4j-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server