Skip to main content
Glama

Attach File To Launch

attach_file_to_launch

Attach a file to an existing launch by push or pull. Push returns a one-use HTTPS upload URL; pull reads from the configured import root.

Instructions

Attach one file to an existing launch through a secure push or pull transfer.

Push is available only from a persistent HTTP MCP server with an externally reachable HTTPS URL. It returns a short-lived one-use raw upload URL; POST bytes with exactly the returned content type and no TestOps bearer token. Pull reads a regular file below the deployment's configured import root.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesSafe display filename for the launch attachment.
launch_idYesExisting launch ID that will receive the file.
project_idNoOptional override for the default Project ID.
source_pathNoRequired only for pull; relative paths resolve below LAUNCH_ATTACHMENT_IMPORT_ROOT.
content_typeNoRequired for push; optional for pull and inferred from the filename when absent.
output_formatNoOutput format: 'json' (default) or 'plain'.
transfer_modeNopush returns a one-use HTTPS upload URL; pull reads from the configured import root.push

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
stateYes
launch_idYes
attachmentNo
expires_atNo
upload_urlNo
content_typeNo
upload_methodNo
max_file_bytesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.15.7

TDQS

A4.7/5.0
Behavior5/5

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

The description reveals important operational behavior beyond the annotations: push returns a short-lived one-use raw upload URL, the caller must POST with exactly the returned content type and no bearer token, and pull is restricted to the deployment's import root. The readOnlyHint/idempotentHint/destructiveHint booleans cannot convey this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured: one sentence on purpose, then focused mode-specific instructions. There is no filler, and it avoids repeating schema-level parameter details.

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?

With seven parameters, two transfer modes, and an output schema, the description covers the critical mode-dependent prerequisites and leaves parameter defaults and return values to the schema. An agent has enough to invoke push versus pull correctly without missing constraints.

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%, so the schema already documents each parameter. The description still adds meaning by explaining the push POST flow and the pull path constraint, which clarifies transfer_mode, source_path, and content_type behavior beyond the field descriptions.

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 first sentence states the exact operation and target: 'Attach one file to an existing launch', then scopes it to push or pull transfer. The launch-specific language distinguishes it from sibling attachment tools like add_test_result_attachment and add_test_step_attachment.

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 gives concrete conditions for selecting each transfer mode: push requires a persistent HTTP MCP server with an externally reachable HTTPS URL, while pull requires a file below the configured import root. It does not explicitly name alternatives or exclusions, but this is clear context for when each mode applies.

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