Skip to main content
Glama

add_test_result

Record a test result in a launch with status, timing, message, tags, links, and custom fields to track outcomes and link results to test cases.

Instructions

Record a test result in a launch and return {ok, id, name, launchId}.

status must be one of failed, broken, passed, skipped, unknown, in_progress; any other value fails here, without a request. duration, start and stop are milliseconds (int64). test_case_id links the result to a test case. JSON-string arguments: tags_json [{"id": 3, "name": "smoke"}] links_json [{"name": "JIRA", "type": "issue", "url": "https://jira/browse/ABC-1"}] custom_fields_json [{"customField": {"id": 12, "name": "Severity"}, "name": "high"}]

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "launch_id": "<launch_id>",
      "name": "<name>",
      "status": "<status>"
    },
    "name": "add_test_result"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYes
stopNo
startNo
traceNo
statusYes
messageNo
durationNo
launch_idYes
tags_jsonNo
links_jsonNo
descriptionNo
preconditionNo
test_case_idNo
postconditionNo
expected_resultNo
custom_fields_jsonNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it warns that an invalid status fails locally without issuing a request (saving a round trip), specifies millisecond int64 units for duration/start/stop, and explains that test_case_id links the result to a case. It omits permission requirements, behavior for a nonexistent or closed launch, and any duplicate-handling semantics for a write operation.

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?

It is front-loaded with the action and return value, then constraints, then a compact indented block for the JSON-string formats. The example payloads earn their space; the only mild waste is restating the return object when an output schema already exists.

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

Completeness3/5

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

For a 16-parameter write tool with zero annotation coverage, the description covers the non-obvious inputs and the local validation rule, and an output schema exists so return values need not be spelled out. However, it says nothing about authorization, launch-state requirements, or what happens to related entities, which leaves meaningful gaps for a mutation tool.

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 description coverage is 0% across 16 parameters, so the description has to compensate, and it does so for the most opaque ones: it decodes the three JSON-string parameters with concrete example payloads (tags_json, links_json, custom_fields_json) and constrains status and the timing fields. Roughly half the parameters (name, trace, message, description, precondition, postcondition, expected_result) are left to their self-evident names.

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 opening sentence gives a specific verb and resource ("Record a test result in a launch") plus the response shape {ok, id, name, launchId}, so the agent knows exactly what it produces. It does not name a sibling to distinguish from (e.g. add_test_case_step), but the name/verb pairing is unambiguous enough on its own.

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

Usage Guidelines3/5

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

Usage is implied by the purpose and by the required launch_id, but the description never states when to choose this over siblings like create_test_case or run_test_cases, nor any preconditions such as the launch needing to exist or be open. The status-value constraint is the only routing-adjacent guidance offered.

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