Skip to main content
Glama

Submit Manual Test Results

submit_manual_test_results

Submit manual execution results for a manual test session by resolving existing launch results or creating standalone results, with optional attachments and status details.

Instructions

Submit manual execution results for a manual session.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYesManual result payloads. When an item includes result_id from list_launch_test_results, the service resolves that existing launch result in place through TestOps' test-result run controller. After rerun_test_results_manually, re-list launch results and submit against the newly visible active result for that test case. The returned result_ids are the resolved result IDs to use for follow-up attachments and reads. As a lower-level fallback, you may still provide launch_id + test_case_id + name/full_name explicitly to create a standalone manual result. Optional fields include status/start/stop/duration/message/trace/description/precondition/expected_result/steps. For result_id submissions, a body step can contain expected and attachment children. Prefer attachment_id from add_test_result_attachment. An attachment by exact uploaded name is also supported; alternatively, provide {name, content_type, content|url} for Lucius to upload before the single final resolve.
project_idNoOptional override for the default Project ID.
output_formatNoOutput format: 'json' (default) or 'plain'.
test_session_idYesManual test session ID (required).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
result_idsNo
submitted_countNo
test_session_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.16.1
    • changedInput schema / properties / results / description
      Previous value: -"Manual result payloads. When an item includes result_id from list_launch_test_results, the service resolves that existing launch result in place through TestOps' test-result run controller. After rerun_test_results_manually, re-list launch results and submit against the newly visible active result for that test case. The returned result_ids are the resolved result IDs to use for follow-up attachments and reads. As a lower-level fallback, you may still provide launch_id + test_case_id + name/full_name explicitly to create a standalone manual result. Optional fields include status/start/stop/duration/message/trace/description/precondition/expected_result/steps."New value: +"Manual result payloads. When an item includes result_id from list_launch_test_results, the service resolves that existing launch result in place through TestOps' test-result run controller. After rerun_test_results_manually, re-list launch results and submit against the newly visible active result for that test case. The returned result_ids are the resolved result IDs to use for follow-up attachments and reads. As a lower-level fallback, you may still provide launch_id + test_case_id + name/full_name explicitly to create a standalone manual result. Optional fields include status/start/stop/duration/message/trace/description/precondition/expected_result/steps. For result_id submissions, a body step can contain expected and attachment children. Prefer attachment_id from add_test_result_attachment. An attachment by exact uploaded name is also supported; alternatively, provide {name, content_type, content|url} for Lucius to upload before the single final resolve."
  2. Changed1 schema field changedv0.14.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "result_ids": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "integer"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Result Ids"
      +    },
      +    "submitted_count": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Submitted Count"
      +    },
      +    "test_session_id": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Test Session Id"
      +    }
      +  },
      +  "title": "SubmitManualTestResultsOutput",
      +  "type": "object"
      +}
  3. First observedv0.11.0

TDQS

B3.2/5.0
Behavior2/5

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

The one-sentence description discloses no behavioral traits beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false). The non-trivial behavior — that the service resolves existing launch results in place and can fall back to creating standalone results — lives inside the parameter documentation rather than the tool description, so an agent scanning the description alone gets no transparency into this complexity.

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 main description is one tight sentence that is front-loaded and zero-waste. The results parameter copy is dense but each clause earns its place by explaining resolution rules, fallback behavior, and attachment semantics. Minor deduction for the parameter block being a wall of text that could benefit from light structuring.

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?

Given the tool has an output schema, return values need not be explained, and the parameter documentation is unusually complete (resolution semantics, follow-up result_ids, attachment handling). The main gap is contextual: no mention of the manual-testing workflow positioning or which sibling to prefer under which circumstances.

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?

Schema coverage is 100%, establishing a baseline of 3. The results parameter description adds substantial meaning beyond the schema: it explains the two submission modes (result_id resolution vs. launch_id + test_case_id fallback), warns to re-list after rerun_test_results_manually, lists optional fields, and details attachment handling. This compensates well and elevates the score.

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?

The description states a specific verb ('Submit') and resource ('manual execution results for a manual session'), clearly conveying what the tool does. It is specific enough to distinguish from most siblings, though it does not explicitly contrast with upload_test_results or rerun_test_results_manually, which are adjacent concepts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. Siblings like upload_test_results, rerun_test_results_manually, and start_manual_test_session exist, but no when-to-use/when-not-to-use context or alternative routing is provided anywhere in the description. Some workflow context (e.g., after starting a manual session) is implied but not stated.

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