Skip to main content
Glama

Create Manual Test Run

create_manual_run

Creates a manual test run in a project, optionally scoping included cases by suite or test case IDs and attaching release, tags, notes, links, and environment details.

Instructions

Create a new manual test run. Requires write permission. selectionMode controls which test cases are included: "all" (default — every case in the project) or "selected" (use testCaseIds and/or suiteIds to scope). releaseId attaches the run to a release. note accepts rich HTML. IMPORTANT: tags must be a JSON array of strings here — e.g. ["smoke","regression"] — NOT the comma-separated form that list_manual_runs accepts as a filter.

Input Schema

NameRequiredDescriptionDefault
nameYesRun name
noteNoRich HTML note
tagsNoArray of tag strings, e.g. ["smoke","regression"]. NOT a comma-separated string.
linksNoArray of link objects.
stateNoWorkflow state (default "new"). Either canonical ("in_progress") or display ("In Progress") form — server normalizes to lowercase+underscored so UI colors render correctly.
forecastNoNumeric forecast/target for the run (model stores this as a number).
suiteIdsNoSuite IDs whose cases are included when selectionMode="selected"
projectIdYesProject ID
releaseIdNoAttach run to this release
attachmentsNoNot supported over MCP: any value is refused with a 400. Tell the user to upload files in the TestDino UI.
environmentNoEnvironment label, e.g. "Staging"
testCaseIdsNoCase IDs to include when selectionMode="selected"
linkedIssuesNoArray of linked-issue objects (use the same shape returned by list_manual_runs).
selectionModeNoDefault "all"
includeUnsortedNoAlso include cases with no suite when selectionMode="selected"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv2.2.3
    • changedInput schema / properties / attachments / description
      Previous value: -"Array of attachment objects or URLs. Suggestion: attaching files via the hosted MCP can be token-expensive (the base64 payload flows through the LLM context). For lower token usage, consider the TestDino UI or the local `testdino-mcp` npm package."New value: +"Not supported over MCP: any value is refused with a 400. Tell the user to upload files in the TestDino UI."
    • removedInput schema / properties / attachments / items
      Removed value: -{
      -  "additionalProperties": true,
      -  "properties": {
      -    "_id": {
      -      "type": "string"
      -    },
      -    "blobUrl": {
      -      "type": "string"
      -    },
      -    "containerName": {
      -      "type": "string"
      -    },
      -    "fileContent": {
      -      "type": "string"
      -    },
      -    "fileName": {
      -      "type": "string"
      -    },
      -    "fileSize": {
      -      "type": "number"
      -    },
      -    "mimeType": {
      -      "type": "string"
      -    },
      -    "originalFileName": {
      -      "type": "string"
      -    },
      -    "uploadedAt": {
      -      "type": "string"
      -    },
      -    "uploadedBy": {
      -      "type": "string"
      -    },
      -    "url": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedInput schema / properties / attachments / type
      Removed value: -"array"
    • addedInput schema / properties / links / maxItems
      Added value: +50
  2. Changed25 schema fields changedv2.2.0
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / attachments / description
      Previous value: -"Array of attachment objects or URLs."New value: +"Array of attachment objects or URLs. Suggestion: attaching files via the hosted MCP can be token-expensive (the base64 payload flows through the LLM context). For lower token usage, consider the TestDino UI or the local `testdino-mcp` npm package."
    • addedInput schema / properties / attachments / items / additionalProperties
      Added value: +true
    • addedInput schema / properties / attachments / items / properties
      Added value: +{
      +  "_id": {
      +    "type": "string"
      +  },
      +  "blobUrl": {
      +    "type": "string"
      +  },
      +  "containerName": {
      +    "type": "string"
      +  },
      +  "fileContent": {
      +    "type": "string"
      +  },
      +  "fileName": {
      +    "type": "string"
      +  },
      +  "fileSize": {
      +    "type": "number"
      +  },
      +  "mimeType": {
      +    "type": "string"
      +  },
      +  "originalFileName": {
      +    "type": "string"
      +  },
      +  "uploadedAt": {
      +    "type": "string"
      +  },
      +  "uploadedBy": {
      +    "type": "string"
      +  },
      +  "url": {
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / attachments / items / type
      Added value: +"object"
    • changedInput schema / properties / environment / description
      Previous value: -"Environment label, e.g. 'Staging'."New value: +"Environment label, e.g. \"Staging\""
    • addedInput schema / properties / forecast / description
      Added value: +"Numeric forecast/target for the run (model stores this as a number)."
    • addedInput schema / properties / forecast / type
      Added value: +"number"
    • addedInput schema / properties / includeUnsorted / description
      Added value: +"Also include cases with no suite when selectionMode=\"selected\""
    • changedInput schema / properties / linkedIssues / description
      Previous value: -"Array of linked-issue objects (same shape list_manual_runs returns)."New value: +"Array of linked-issue objects (use the same shape returned by list_manual_runs)."
    • addedInput schema / properties / linkedIssues / items / additionalProperties
      Added value: +true
    • addedInput schema / properties / linkedIssues / items / properties
      Added value: +{
      +  "displayId": {
      +    "type": "string"
      +  },
      +  "issueType": {
      +    "type": "string"
      +  },
      +  "source": {
      +    "type": "string"
      +  },
      +  "status": {
      +    "type": "string"
      +  },
      +  "title": {
      +    "type": "string"
      +  },
      +  "url": {
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / linkedIssues / items / type
      Added value: +"object"
    • addedInput schema / properties / links / items / additionalProperties
      Added value: +true
    • addedInput schema / properties / links / items / properties
      Added value: +{
      +  "title": {
      +    "type": "string"
      +  },
      +  "url": {
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / links / items / type
      Added value: +"object"
    • changedInput schema / properties / name / description
      Previous value: -"Run name (required)."New value: +"Run name"
    • changedInput schema / properties / note / description
      Previous value: -"Rich HTML note."New value: +"Rich HTML note"
    • changedInput schema / properties / projectId / description
      Previous value: -"Project ID (required)."New value: +"Project ID"
    • changedInput schema / properties / releaseId / description
      Previous value: -"Attach run to this release."New value: +"Attach run to this release"
    • changedInput schema / properties / selectionMode / description
      Previous value: -"Default 'all'."New value: +"Default \"all\""
    • changedInput schema / properties / state / description
      Previous value: -"Workflow state (default 'new'). Either canonical ('in_progress') or display ('In Progress') form — server normalizes to lowercase+underscored so UI colors render correctly."New value: +"Workflow state (default \"new\"). Either canonical (\"in_progress\") or display (\"In Progress\") form — server normalizes to lowercase+underscored so UI colors render correctly."
    • addedInput schema / properties / suiteIds / description
      Added value: +"Suite IDs whose cases are included when selectionMode=\"selected\""
    • addedInput schema / properties / testCaseIds / description
      Added value: +"Case IDs to include when selectionMode=\"selected\""
  3. Addedv1.0.10

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is known; the description adds the write-permission requirement and the important asymmetry that tags here must be a JSON array rather than the comma-separated filter form used elsewhere. It does not say what happens on duplicate names or whether creation is idempotent, so it falls short of a 5.

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?

Front-loads the action and the permission requirement, then groups the selectionMode, releaseId, note and tags details in short clauses. The IMPORTANT tags sentence is slightly redundant with the schema but is deliberately emphasized, so it earns its place.

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

Completeness4/5

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

For a 15-parameter creation tool with no output schema, the description covers the decision-relevant params (selectionMode, releaseId, tags, note) and leaves structural ones like links, linkedIssues, forecast and includeUnsorted to the fully-documented schema. Nothing critical is missing, though the description never indicates what is returned on success.

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 description coverage is 100%, so the schema already documents every parameter including the tags array constraint and the selectionMode default. The description restates selectionMode, releaseId and note, and its tags warning duplicates the schema text almost verbatim, so it adds little genuinely new parameter meaning beyond the cross-tool format contrast.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: "Create a new manual test run." The create-vs-update split against update_manual_run is implicit in the verb, and the closing contrast with list_manual_runs reinforces which sibling it is not, but no sibling is named as an alternative for the create action itself.

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?

Gives the key prerequisite ("Requires write permission") and explains when each selectionMode applies, including which params pair with "selected". The tags sentence explicitly contrasts this tool's input form with list_manual_runs' filter form, which is a real cross-tool usage rule, though no explicit "do not use this when…" guidance is offered.

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