Skip to main content
Glama
Inflectra

Inflectra Spira MCP Server

Official
by Inflectra

product_update_artifact

Update a single Spira artifact by ID, including custom fields. Requires parent_id for sub-artifacts; set null to clear custom properties.

Instructions

Update a single artifact by ID in a Spira product.

Sub-artifacts (test_step, mitigation, requirement_step) require parent_id. Use get_artifact_schema to discover writable fields for each type. To clear a custom property, set its value to null.

Input Schema

NameRequiredDescriptionDefault
fieldsYes
parent_idNo
product_idNo
artifact_idYes
artifact_typeYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds real context (parent_id requirement for sub-artifacts, null to clear custom properties) but omits the most important behavioral question for an update tool: whether `fields` merges into existing values or replaces them entirely.

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?

Three short sentences, front-loaded with the core action, followed by the two non-obvious caveats. No filler; every sentence carries information an agent would otherwise have to guess.

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?

Output schema exists, so return values need not be described. However, this is a mutation tool with a nested free-form `fields` object at 0% schema coverage, and the description never states whether omitted fields are preserved or wiped — a gap an agent cannot resolve from structured data alone.

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 0% across 5 parameters, so the description must carry the load. It explains parent_id's conditional requirement and that `fields` keys are discovered via get_artifact_schema, which partially compensates, but product_id, artifact_id, and the structure/merge semantics of the free-form `fields` object are left undiscussed.

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?

States a specific verb and resource ("Update a single artifact by ID") plus the scoping system (Spira product), so it is clearly distinct from product_create_artifact and product_get_artifact in the sibling list. It does not explicitly name the sibling it complements, but the verb alone disambiguates.

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 concrete conditional guidance: sub-artifact types (test_step, mitigation, requirement_step) require parent_id, and it routes the agent to get_artifact_schema for writable fields. Also tells the agent how to clear a custom property. Missing explicit when-not-to-use guidance (e.g., bulk updates or creating new artifacts).

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