Skip to main content
Glama
SmartBear

SmartBear MCP server

Official
by SmartBear

Zephyr: Update Test Case

zephyr_update_test_case
Idempotent

Update an existing Zephyr test case by merging your changes, leaving unspecified fields untouched. Set a property to null to explicitly remove it.

Instructions

Update an existing Test Case in Zephyr. This operation fetches the current test case and merges your updates with it to prevent accidental property deletion. Properties which are not included in the tool call will be left unchanged. To remove a property, set it to null explicitly. For fields that accept multiple values, such as labels, if the field is provided, it will override the previous values. For example, if labels is provided with the values ["label1", "label2"], the Test Case will now only have those two labels, and any previous labels will be removed. If you want to add a label, you would need to specify in the prompt the intention to add a label.

Toolset: Test Cases

Parameters:

  • testCaseKey (string) required: The key of the test case. Test case keys are of the format [A-Z]+-T[0-9]+

  • id (number): The ID of the entity

  • key (string): The test case key

  • name (string)

  • project (object): ID and link relative to Zephyr project.

  • objective (string): A description of the objective.

  • precondition (string): Any conditions that need to be met.

  • estimatedTime (number): Estimated duration in milliseconds.

  • labels (array): Array of labels associated to this entity.

  • component (number): The ID of the Jira component to associate.

  • priority (object): ID and link to the priority resource.

  • status (object): ID and link to the status resource.

  • folder (number): The ID of the folder to move the test case into.

  • owner (string): Atlassian Account ID of the Jira user to set as owner.

  • customFields (record<string, any>): Multi-line text fields support HTML and should denote new lines with the <br> tag. Dates should be in the format 'yyyy-MM-dd'. Users should have values of Jira User Account IDs.

Examples:

  1. Update the name of the test case 'SA-T10' to 'Check axial pump' and objective to 'To ensure the axial pump can be enabled'

{
  "testCaseKey": "SA-T10",
  "name": "Check axial pump",
  "objective": "To ensure the axial pump can be enabled"
}

Expected Output: The test case should be updated, but no output is expected.

  1. Update the test case 'MM2-T1' by setting labels 'Regression','Performance' and 'Automated' and changing the priority to the one with id 2.

{
  "testCaseKey": "MM2-T1",
  "priority": {
    "id": 2
  },
  "labels": [
    "Regression",
    "Performance",
    "Automated"
  ]
}

Expected Output: The test case should be updated, but no output is expected.

  1. Update test case 'SA-T5', by setting the custom field 'Build Number' to 20, 'Release Date' to '2020-01-01' and setting the Test Cases's estimated time to 3600000 milliseconds.

{
  "testCaseKey": "SA-T5",
  "estimatedTime": 3600000,
  "customFields": {
    "Build Number": 20,
    "Release Date": "2020-01-01"
  }
}

Expected Output: The test case should be updated, but no output is expected.

  1. Remove the component from test case 'SA-T20'.

{
  "testCaseKey": "SA-T20",
  "component": null
}

Expected Output: The test case should be updated, but no output is expected.

  1. Remove a specific custom field 'Pre-Condition(s)' from test case 'SA-T15' while keeping other custom fields intact

{
  "testCaseKey": "SA-T15",
  "customFields": {
    "Pre-Condition(s)": null,
    "Implemented": false
  }
}

Expected Output: The test case should be updated, but no output is expected.

  1. Remove test case from folder

{
  "testCaseKey": "SA-T15",
  "folder": null
}

Expected Output: The test case should be updated, but no output is expected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe ID of the entity
keyNoThe test case key
nameNo
ownerNoAtlassian Account ID of the Jira user to set as owner.
folderNoThe ID of the folder to move the test case into.
labelsNoArray of labels associated to this entity.
statusNoID and link to the status resource.
projectNoID and link relative to Zephyr project.
priorityNoID and link to the priority resource.
componentNoThe ID of the Jira component to associate.
objectiveNoA description of the objective.
testCaseKeyYesThe key of the test case. Test case keys are of the format [A-Z]+-T[0-9]+
customFieldsNoMulti-line text fields support HTML and should denote new lines with the \<br\> tag. Dates should be in the format 'yyyy-MM-dd'. Users should have values of Jira User Account IDs.
preconditionNoAny conditions that need to be met.
estimatedTimeNoEstimated duration in milliseconds.
Install Server

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include idempotentHint=true, but the description adds critical behavior beyond that: it fetches the current entity and merges updates, requires explicit null to delete, and states that multi-value fields like labels replace previous values. No contradiction with annotations, and this behavior is essential for correct use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the most important merge semantics, which is good. However, it includes a lengthy parameter list that duplicates the input schema, making the description longer than necessary. The six examples are useful, but the redundant parameter section hurts conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters, nested objects, and no output schema, the description covers everything needed for correct invocation: merge behavior, null-to-remove, label override semantics, customFields format rules, and six illustrative examples. Expected outputs are even stated in the examples, so missing output schema is not a 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 93%, so the schema already documents most parameters well. The description's parameter list largely duplicates schema descriptions, though the main narrative adds helpful context like testCaseKey format and customFields value formats. The examples add practical meaning, but the description doesn't substantially augment parameter semantics beyond 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 opens with 'Update an existing Test Case in Zephyr,' a specific verb and resource that clearly distinguishes it from sibling create/get tools. It further clarifies the update model (fetch-and-merge) so an agent knows exactly what this tool does.

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?

The description gives clear context for when to use the tool: to update an already-existing test case, with explicit semantics for partial updates and property removal. It does not name alternatives or state when not to use it, but the context is strong enough without them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

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/SmartBear/smartbear-mcp'

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