Update a test case

case.updateChanges dataCreates, updates or deletes something in your workspace.

What it does

Changes an existing test case, for example to fill in the steps and expected result of a draft, or to archive it with status INACTIVE. Get the internal id from case.list (read the case with testcase.get if you need its current content). Send only what you want to change: every field you leave out keeps its stored value, including the steps, the human caseId label (e.g. "GenTC-0001"), the owner and the creator. If you send steps, that list replaces all existing steps, so include the unchanged ones too. Returns { success, message, data } with the updated fields.

Ask your agent

You don’t call case.update yourself. Say something like this to Claude Code, Cursor or another MCP-connected agent:

  • “Fill in the missing steps for the checkout test”
  • “Change the expected result of the login test to show the dashboard”
  • “Archive the old coupon test, we removed that feature”

Inputs

NameTypeDescription
caseId
required
stringInternal test case id: the id field from case.list (e.g. "AAtc-kzqd-mwpe-rtya-hbnc-xufo-lgsi"). Despite the parameter name, this is NOT the human caseId like "GenTC-0001".
title
optional
stringNew title, e.g. "Guest can check out without an account". Omit to keep the current title.
description
optional
stringNew longer explanation of the scenario. Omit to keep the current one.
priority
optional
enumHow important the case is. P0 = must never break (core flow), P1 = high, P2 = normal, P3 = trivial. Omit to keep.
Allowed: P0P1P2P3
preCondition
optional
stringSame as on case.create. System state required BEFORE the test runs. Omit to keep.
expectedResult
optional
stringSame as on case.create. The observable assertion at the end of the steps. Omit to keep.
postCondition
optional
stringSame as on case.create. System state AFTER completion — persistence + side-effects. Required for CI hygiene; declare "No persistent state change." for read-only cases.
steps
optional
string[]The COMPLETE step list in order, one instruction per string, e.g. ["Open /login", "Enter email and password", "Click Sign in"]. It replaces all existing steps. Omitting it deletes the current steps, so resend them (from testcase.get) even when you only change another field.
status
optional
enumACTIVE = in the library and usable in suites and runs. INACTIVE = archived: hidden from pickers but not deleted. The safe alternative to case.delete. Omit to keep.
Allowed: ACTIVEINACTIVE
severity
optional
enumHow bad a failure would be: blocker, critical, major, minor, trivial (see case.create). Omit to keep.
Allowed: blockercriticalmajorminortrivial
automationStatus
optional
enumAutomation label: manual, planned, automated, flaky, deprecated (see case.create). Omit to keep.
Allowed: manualplannedautomatedflakydeprecated

The MCP call

What the agent’s MCP client sends (placeholders in angle brackets):

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "case.update",
    "arguments": {
      "caseId": "<caseId>"
    }
  }
}

Connect your agent

npx -y @testmaze/mcp init tmt_xxx
claude mcp add tm --scope project -- npx -y @testmaze/mcp

Create the token in your Test Maze workspace under Settings → MCP. Setup for Cursor, Cline, Gemini CLI and Codex CLI is shown there too.