Skip to main content
Glama

create_test_case

Create a new test case in a test suite, automatically generating the folder-suite hierarchy when needed. Returns the complete case object with a shareable link.

Instructions

Create a new test case in a test suite. Test cases MUST live inside a suite (not a bare folder). You can provide either: (A) a folderId pointing to an existing suite, or (B) a projectId with optional folderName/suiteName to auto-create the folder→suite hierarchy. If folderId points to a folder (not a suite), a suite is auto-created inside it. Returns the full created case object including shareUrl. Tags are auto-created if they do not exist. IMPORTANT: omit status and priority and the case takes whichever values THIS PROJECT marks as its defaults, which are Draft and Medium only until a project edits them. Call get_project to see what a given project uses.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to assign to the case. New tags are auto-created.
stepsNoArray of test steps with action and expected result
titleYesTest case title (required)
statusNoOptional. Omit it and the case takes whichever value the project marks as its default, which is what the UI does. The vocabulary is per-project and a project may have renamed it or added its own, so call get_project for this project list and send a value from it rather than guessing.
folderIdNoSuite (or folder) UUID where the case will be created. If this points to a folder, a suite is auto-created inside it. Alternative: use projectId + folderName + suiteName instead.
priorityNoOptional. Omit it and the case takes whichever value the project marks as its default. The vocabulary is per-project, so call get_project for this project list and send a value from it rather than guessing.
dependsOnNoNumeric case ID this case depends on
projectIdNoProject UUID. Required when folderId is not provided. Used to find or auto-create the folder→suite hierarchy.
suiteNameNoName of the suite to find or create inside the folder (default: "General"). Used with projectId when folderId is not provided.
folderNameNoName of the folder to find or create (default: "General"). Used with projectId when folderId is not provided.
descriptionNoDetailed description of the test case. Supports Markdown: **bold**, *italic*, ~~strikethrough~~, inline `code`, # / ## / ### headings, "- " bullet and "1. " numbered lists, [text](url) links, and "> " blockquotes. Plain text works too. Images and fenced code blocks are not supported.
customFieldsNoCustom field values as key-value pairs
externalLinksNoOptional list of external ticket links to attach to the created case. Each link is inserted atomically with the case - any failure rolls back the entire creation. For Jira, externalUrl is fetched from the Jira API (just pass the issue key or full /browse/ URL as externalId); for other providers, externalUrl is required.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed4 schema fields changedv1.5.3
    • removedInput schema / properties / priority / default
      Removed value: -"Medium"
    • changedInput schema / properties / priority / description
      Previous value: -"OPTIONAL - defaults to \"Medium\". Only specify if user explicitly requests a different priority. Valid values vary by project (typically: Low, Medium, High, Critical)."New value: +"Optional. Omit it and the case takes whichever value the project marks as its default. The vocabulary is per-project, so call get_project for this project list and send a value from it rather than guessing."
    • removedInput schema / properties / status / default
      Removed value: -"Draft"
    • changedInput schema / properties / status / description
      Previous value: -"OPTIONAL - defaults to \"Draft\". Only specify if user explicitly requests a different status. Valid values vary by project (typically: Draft, Ready, Approved, Deprecated)."New value: +"Optional. Omit it and the case takes whichever value the project marks as its default, which is what the UI does. The vocabulary is per-project and a project may have renamed it or added its own, so call get_project for this project list and send a value from it rather than guessing."
  2. First observedv1.5.0

TDQS

A4.6/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing side effects: tags are auto-created, folders/suites are auto-created when needed, and status/priority silently fall back to project defaults if omitted. It also states that the full created case object including shareUrl is returned. This gives the agent a strong model of what will happen at runtime.

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 long, but the tool is complex and almost every sentence earns its place: the suite constraint, the two creation paths, auto-creation behaviors, return value, tag behavior, and project defaults. It is organized with parenthetical labels and an 'IMPORTANT' callout, making the density digestible.

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?

Given 13 parameters, no output schema, and no behavioral annotations, the description is remarkably complete: it explains return shape, required placement, alternate creation modes, auto-creation side effects, default-value behavior, and tells the agent where to look for project-specific vocabulary. The external link rollback behavior is also covered in the schema's nested parameter description, so nothing critical is missing.

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?

The input schema already documents all parameters at 100% coverage, so the baseline is 3. The description adds decision-level meaning on top: which parameter branch to choose, what gets auto-created, and the important behavior of omitting status/priority. This is meaningful guidance beyond the schema, though the schema itself is already quite descriptive.

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 starts with a specific verb and resource: 'Create a new test case in a test suite.' It clearly distinguishes creation from related utilities like update_test_case, delete_test_case, and move_test_case. The nuance that test cases must live inside a suite is front and center.

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 explicitly explains the two mutually exclusive ways to call it: via folderId or via projectId with folderName/suiteName. It also tells the agent when to consult get_project for project-specific status/priority defaults. It does not explicitly contrast with update_test_case, but the create vs. update semantics are clear enough.

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

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/m00nreport/mcp-server'

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