Update the product details for this workspace
product.updateChanges dataCreates, updates or deletes something in your workspace.What it does
Edits the product description stored on the connected workspace (the "product" is the workspace itself). Pass only the fields you want to change; anything you leave out stays as it is. Typical use: after reading the repo or talking to the user, record the vision, the problem the app solves, who it is for and where it stands (lifecycleStage). Call project.whoami first to confirm you are editing the right workspace, and product.get to see the current values. Setting name renames the workspace for everyone; if that name is already taken nothing is saved and you get success: false with a message. Setting launchedAt or sunsetAt to an empty string clears the date. Returns {success, message, data: the saved workspace, uri}.
Ask your agent
You don’t call product.update yourself. Say something like this to Claude Code, Cursor or another MCP-connected agent:
- “Save this product vision and target audience to Test Maze”
- “Mark the app as in beta”
- “Set the repo URL and default branch for this project”
Inputs
| Name | Type | Description |
|---|---|---|
nameoptional | string | New workspace name, shown to everyone in the workspace. Example: "Recipe Box". Must not already be in use. |
descriptionoptional | string | One or two sentences on what the app is. Example: "A web app for saving and sharing family recipes." |
visionoptional | string | Where the product is heading, in a sentence or two. Example: "Every family cookbook, online and searchable." |
problemStatementoptional | string | The user problem the app solves. Example: "Handwritten recipes get lost and are hard to share." |
targetUsersoptional | string | Who the app is for, as free text. Example: "Home cooks and families who share recipes across generations." |
productOwnerIdoptional | string | User id of the person who owns product decisions. Your own id is user.id from project.whoami. |
lifecycleStageoptional | enum | Where the whole product stands. discovery = still exploring the idea, not built for real users yet; beta = usable by early users, still changing; live = generally available (the default for new workspaces); sunset = being wound down. Allowed: discoverybetalivesunset |
launchedAtoptional | string | When the product launched, as an ISO 8601 date or date-time. Example: "2026-03-01". Empty string clears it. |
sunsetAtoptional | string | When the product was or will be retired, as an ISO 8601 date or date-time. Example: "2027-01-31". Empty string clears it. |
defaultBranchoptional | string | Main git branch of the app repository. Example: "main". |
repoUrloptional | string | Git repository URL of the app. Example: "https://github.com/acme/recipe-box" or "git@github.com:acme/recipe-box.git". |
The MCP call
What the agent’s MCP client sends (placeholders in angle brackets):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "product.update",
"arguments": {
"name": "<name>"
}
}
}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.
More product & connection tools
- Check which workspace this connection uses
project.whoami - Get the product details for this workspace
product.get