Create a feature
feature.createChanges dataCreates, updates or deletes something in your workspace.What it does
Creates a feature: a named capability of the product, such as "Checkout" or "Password reset". It is stored as a test suite with type=feature, so test cases can be attached to it later. Call project.whoami first to confirm the workspace, and feature.list with a title filter to make sure it does not already exist: titles must be unique across all suites in the workspace (exact match), and a duplicate returns an error. A new feature starts in lifecycle stage "authoring". Returns the saved suite plus suiteId (also as id), uri and nextSteps. Next: add test cases with case.create_batch using that suiteId (cases created without it are not attached to the feature), add user stories with userstory.create, or track success with featuremetric.create. Note: passing parentFeatureId records the parent but the new suite is still type=feature, not sub-feature.
Ask your agent
You don’t call feature.create yourself. Say something like this to Claude Code, Cursor or another MCP-connected agent:
- “Add a feature for guest checkout”
- “Create a Password reset feature and write its tests”
- “Set up a feature for the new search page, planned for the June release”
Inputs
| Name | Type | Description |
|---|---|---|
titlerequired | string | Feature name, short and unique in the workspace. Example: "Guest checkout". |
descriptionoptional | string | What the feature does and why, in plain words. Example: "Lets shoppers pay without creating an account." Defaults to empty. |
priorityoptional | enum | How important it is. P0 = critical, must ship; P1 = high; P2 = normal (default); P3 = nice to have. Allowed: P0P1P2P3 |
parentFeatureIdoptional | string | Optional id of a bigger feature this one belongs to (the id from feature.list). Stored as a link only; the type stays feature. |
featureOwnerIdoptional | string | User id of the person responsible for the feature. Your own id is user.id from project.whoami. |
releaseIdoptional | string | Id of the release, sprint or milestone this feature is planned for (the id from release.list). Not checked for existence. |
targetReleaseDateoptional | string | Date the feature should ship, as YYYY-MM-DD. Example: "2026-06-30". |
rolloutPercentageoptional | number | Share of users who get the feature, 0 to 100. Example: 25 for a gradual rollout to a quarter of users. Informational only. |
featureFlagKeyoptional | string | Key of the feature flag that switches this feature on in your app, if you use one. Example: "guest-checkout". Informational only. |
The MCP call
What the agent’s MCP client sends (placeholders in angle brackets):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "feature.create",
"arguments": {
"title": "<title>"
}
}
}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 features & user stories tools
- List features and user stories
feature.list - Create a user story under a feature
userstory.create - Move a feature or story to a new stage
feature.set_lifecycle - Plan a feature into a release
feature.set_release