Skip to main content
Glama
phillipboesger

Polarion MCP Server

patchTestRunAttachment

Idempotent

Update an existing Test Run attachment by renaming its metadata or replacing its file content. Keeps the attachment ID; use for re-uploading or renaming a file already in Polarion.

Instructions

Updates one existing Test Run attachment: its metadata (e.g. title) via requestBody.resource, and optionally replaces the stored file by passing base64-encoded bytes in requestBody.content. The attachment keeps its ID. Use this to rename or re-upload a file that already exists; to add a new file use postTestRunAttachments, and to read the current file use getTestRunAttachmentContent. Effect: idempotent — calling it again with the same input leaves the resource in the same end state, with no additional side effects. Tip: set dry_run: true first to preview the exact request Polarion would receive, without changing anything. On tools with a typed output schema, this preview is returned as an error-flagged result since it is not real tool output -- read the text content regardless of that flag.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, validates the request and returns the exact request that would be sent to Polarion — with the Authorization header redacted and any binary payload summarized by byte length — without actually sending it.
projectIdYesThe Polarion project ID (its URL segment, e.g. `myproject`), case-sensitive. Required to scope the request to one project; call getProjects to list valid IDs.
testRunIdYesThe Test Run's ID within its project.
requestBodyNoAttachment metadata and file data.
attachmentIdYesThe attachment's ID, as returned by the corresponding list- or get-attachments call for this resource.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.2.0
    • addedInput schema / properties / attachmentId / description
      Added value: +"The attachment's ID, as returned by the corresponding list- or get-attachments call for this resource."
    • changedInput schema / properties / dry_run / description
      Previous value: -"If true, validate and return the request that would be sent without calling Polarion."New value: +"If true, validates the request and returns the exact request that would be sent to Polarion — with the Authorization header redacted and any binary payload summarized by byte length — without actually sending it."
    • addedInput schema / properties / projectId / description
      Added value: +"The Polarion project ID (its URL segment, e.g. `myproject`), case-sensitive. Required to scope the request to one project; call getProjects to list valid IDs."
    • addedInput schema / properties / testRunId / description
      Added value: +"The Test Run's ID within its project."
  2. Changed2 schema fields changed
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "description": "If true, validate and return the request that would be sent without calling Polarion.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / requestBody / description
      Previous value: -"Attachment meta data and file data."New value: +"Attachment metadata and file data."
  3. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the concrete effect of the operation: the attachment keeps its ID, and the call is idempotent with no additional side effects when repeated with the same input. It also reveals the dry_run preview behavior and the trait that on typed output schemas the preview is returned as an error-flagged result, which is not visible in the schema or annotations.

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 front-loaded with the core purpose, uses labeled sections such as 'Effect:' and 'Tip:' to organize secondary details, and every sentence contributes operational value. The dry_run sentence is slightly extended, but it earns its place by warning about the error-flagged preview.

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?

For a PATCH tool with no output schema, the description covers everything needed to invoke it correctly: capability, sibling differentiation, idempotence, requestBody structure, and dry_run behavior. Required parameters are already documented in the schema, and no return-value contract is necessary for a modify operation.

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 baseline is 3. The description adds meaningful value by explaining the opaque `requestBody` parameter: metadata lives under `requestBody.resource` (e.g., `title`), and the optional replacement file is passed as base64-encoded bytes under `requestBody.content`. However, it does not explicitly state how `requestBody` should be serialized (e.g., JSON-encoded string) despite the schema type being `string`, leaving a small ambiguity.

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 opens with a specific verb and resource, 'Updates one existing Test Run attachment,' and details what can be updated: metadata via `requestBody.resource` and the stored file via `requestBody.content`. It also notes the attachment keeps its ID and explicitly names sibling tools (`postTestRunAttachments`, `getTestRunAttachmentContent`), so an agent can easily distinguish this operation.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool: 'Use this to rename or re-upload a file that already exists.' It then contrasts that with alternatives: use `postTestRunAttachments` to add a new file, and `getTestRunAttachmentContent` to read the current file. This provides both positive and negative usage guidance.

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

Deploy Server

Other Tools