Skip to main content
Glama
thatfactory

xcode-cloud-mcp

by thatfactory

update_workflow_actions

Replace the full workflow actions array with a new list to set the final desired actions for an Xcode Cloud workflow.

Instructions

Explicitly replace the full workflow actions array. This should be used only when the caller intends to send the final desired action list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionsYes
workflowIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv0.6.1
    • changedInput schema / properties / actions / items / properties / buildDistributionAudience / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "INTERNAL_ONLY",
      +      "APP_STORE_ELIGIBLE"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / actions / items / properties / destination / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / actions / items / properties / destination / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / actions / items / properties / isRequiredToPass / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / actions / items / properties / isRequiredToPass / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedInput schema / properties / actions / items / properties / platform / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / actions / items / properties / platform / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / actions / items / properties / scheme / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / actions / items / properties / scheme / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / actions / items / properties / testConfiguration / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "kind": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "testDestinations": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "testPlanName": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "kind": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "testDestinations": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "testPlanName": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observedv0.5.3

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the destructive replace semantics (existing actions not included are dropped), which is the most important trait here, but says nothing about permissions, ordering, validation failures, or whether the call is atomic.

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?

Two tight sentences, zero filler, with the replace-the-whole-array semantics front-loaded before the usage caveat.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and a complex nested action schema at 0% description coverage, the definition omits the action object shape, required fields, failure behavior, and any safety/permission context. It is under-specified relative to the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both parameters, and the nested action objects (name, actionType, scheme, platform, destination, testConfiguration, buildDistributionAudience) are entirely undocumented. The description only gestures at the 'actions array' and adds no field-level meaning or format guidance, so it fails to compensate for the coverage gap.

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 ('replace') and resource ('workflow actions array'), and the word 'full' plus 'final desired action list' signals this is a wholesale replacement rather than a patch. It is distinguishable in spirit from update_workflow_general/update_workflow_start_conditions, but it never names or contrasts with any sibling, leaving the differentiation to inference.

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?

Provides a genuine selection condition: use this 'only when the caller intends to send the final desired action list,' which implicitly excludes incremental/partial edits. It stops short of naming the alternative tool for partial updates, so the guidance is clear but not routing-complete.

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