Skip to main content
Glama

Build a flow definition from steps

cs_build_flow_definition

Compose a Power Automate cloud flow definition from a step spec without touching any environment. Get the definition, connection references, and notes, ready to create or update a flow.

Instructions

Compose a Power Automate cloud flow definition from a step spec, without touching any environment: a trigger (agent-callable by default, or manual, HTTP, schedule or a connector trigger) plus steps (connector operations, HTTP calls, conditions, loops, scopes, variables, compose, terminate, response, or raw JSON). Steps run in order. Returns the definition, the connection references it needs and any notes, and can write it to a file. Feed the same spec to cs_create_flow to create the flow, or cs_update_flow to replace an existing one. Use cs_list_connectors and cs_describe_connector to find connector ids, operation ids and their parameters first.

Input Schema

NameRequiredDescriptionDefault
nameYes
stepsNoSteps in order; each waits for the previous one to succeed
outputsNoWhat the flow answers with (agent-callable and HTTP flows)
triggerNoDefault: 'agent' (When an agent calls the flow)
outputFileNoWrite the definition JSON here as well
descriptionNo
connectionReferencePrefixNoPrefix for generated connection reference names, usually your publisher prefix

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.1.8
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / definitions
      Added value: +{
      +  "__schema0": {
      +    "anyOf": [
      +      {
      +        "properties": {
      +          "connectionReference": {
      +            "type": "string"
      +          },
      +          "connectorId": {
      +            "description": "e.g. shared_office365 (cs_list_connectors)",
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "operationId": {
      +            "description": "cs_describe_connector lists them",
      +            "type": "string"
      +          },
      +          "parameters": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "type": {
      +            "const": "connector",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "connectorId",
      +          "operationId"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "body": {},
      +          "headers": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "method": {
      +            "enum": [
      +              "GET",
      +              "POST",
      +              "PUT",
      +              "PATCH",
      +              "DELETE"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "http",
      +            "type": "string"
      +          },
      +          "uri": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "uri"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "compose",
      +            "type": "string"
      +          },
      +          "value": {}
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "value"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "initializeVariable",
      +            "type": "string"
      +          },
      +          "value": {},
      +          "valueType": {
      +            "enum": [
      +              "string",
      +              "number",
      +              "boolean",
      +              "object",
      +              "array"
      +            ],
      +            "type": "string"
      +          },
      +          "variable": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "variable"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "setVariable",
      +            "type": "string"
      +          },
      +          "value": {},
      +          "variable": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "variable",
      +          "value"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "else": {
      +            "items": {
      +              "$ref": "#/definitions/__schema0"
      +            },
      +            "type": "array"
      +          },
      +          "expression": {
      +            "description": "Logic Apps expression, e.g. @equals(triggerBody()?['status'],'open')",
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "then": {
      +            "items": {
      +              "$ref": "#/definitions/__schema0"
      +            },
      +            "type": "array"
      +          },
      +          "type": {
      +            "const": "condition",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "expression",
      +          "then"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "actions": {
      +            "items": {
      +              "$ref": "#/definitions/__schema0"
      +            },
      +            "type": "array"
      +          },
      +          "items": {
      +            "description": "Expression yielding the collection, e.g. @body('List_rows')?['value']",
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "foreach",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "items",
      +          "actions"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "actions": {
      +            "items": {
      +              "$ref": "#/definitions/__schema0"
      +            },
      +            "type": "array"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "scope",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "actions"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "message": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "enum": [
      +              "Succeeded",
      +              "Failed",
      +              "Cancelled"
      +            ],
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "terminate",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "outputs": {
      +            "items": {
      +              "properties": {
      +                "name": {
      +                  "type": "string"
      +                },
      +                "type": {
      +                  "enum": [
      +                    "string",
      +                    "number",
      +                    "boolean",
      +                    "object",
      +                    "array"
      +                  ],
      +                  "type": "string"
      +                },
      +                "value": {}
      +              },
      +              "required": [
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "type": {
      +            "const": "response",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "json": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "raw",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "name",
      +          "json"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  }
      +}
    • removedInput schema / properties / outputs / items / $ref
      Removed value: -"#/properties/steps/items/anyOf/9/properties/outputs/items"
    • addedInput schema / properties / outputs / items / properties
      Added value: +{
      +  "name": {
      +    "type": "string"
      +  },
      +  "type": {
      +    "enum": [
      +      "string",
      +      "number",
      +      "boolean",
      +      "object",
      +      "array"
      +    ],
      +    "type": "string"
      +  },
      +  "value": {}
      +}
    • addedInput schema / properties / outputs / items / required
      Added value: +[
      +  "name"
      +]
    • addedInput schema / properties / outputs / items / type
      Added value: +"object"
    • addedInput schema / properties / steps / items / $ref
      Added value: +"#/definitions/__schema0"
    • removedInput schema / properties / steps / items / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "connectionReference": {
      -        "type": "string"
      -      },
      -      "connectorId": {
      -        "description": "e.g. shared_office365 (cs_list_connectors)",
      -        "type": "string"
      -      },
      -      "description": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "operationId": {
      -        "description": "cs_describe_connector lists them",
      -        "type": "string"
      -      },
      -      "parameters": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "connector",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "connectorId",
      -      "operationId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "body": {},
      -      "headers": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "method": {
      -        "enum": [
      -          "GET",
      -          "POST",
      -          "PUT",
      -          "PATCH",
      -          "DELETE"
      -        ],
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "http",
      -        "type": "string"
      -      },
      -      "uri": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "uri"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "compose",
      -        "type": "string"
      -      },
      -      "value": {}
      -    },
      -    "required": [
      -      "type",
      -      "name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "initializeVariable",
      -        "type": "string"
      -      },
      -      "value": {},
      -      "valueType": {
      -        "enum": [
      -          "string",
      -          "number",
      -          "boolean",
      -          "object",
      -          "array"
      -        ],
      -        "type": "string"
      -      },
      -      "variable": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "variable"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "setVariable",
      -        "type": "string"
      -      },
      -      "value": {},
      -      "variable": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "variable"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "else": {
      -        "items": {
      -          "$ref": "#/properties/steps/items"
      -        },
      -        "type": "array"
      -      },
      -      "expression": {
      -        "description": "Logic Apps expression, e.g. @equals(triggerBody()?['status'],'open')",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "then": {
      -        "items": {
      -          "$ref": "#/properties/steps/items"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "condition",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "expression",
      -      "then"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "actions": {
      -        "items": {
      -          "$ref": "#/properties/steps/items"
      -        },
      -        "type": "array"
      -      },
      -      "items": {
      -        "description": "Expression yielding the collection, e.g. @body('List_rows')?['value']",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "foreach",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "items",
      -      "actions"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "actions": {
      -        "items": {
      -          "$ref": "#/properties/steps/items"
      -        },
      -        "type": "array"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "scope",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "actions"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "message": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "Succeeded",
      -          "Failed",
      -          "Cancelled"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "terminate",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "name": {
      -        "type": "string"
      -      },
      -      "outputs": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "name": {
      -              "type": "string"
      -            },
      -            "type": {
      -              "enum": [
      -                "string",
      -                "number",
      -                "boolean",
      -                "object",
      -                "array"
      -              ],
      -              "type": "string"
      -            },
      -            "value": {}
      -          },
      -          "required": [
      -            "name"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "response",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "json": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "raw",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "name",
      -      "json"
      -    ],
      -    "type": "object"
      -  }
      -]
    • changedInput schema / properties / trigger / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "inputs": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "description": {
      -              "type": "string"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "required": {
      -              "type": "boolean"
      -            },
      -            "type": {
      -              "enum": [
      -                "string",
      -                "number",
      -                "boolean",
      -                "object",
      -                "array"
      -              ],
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "name"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "kind": {
      -        "const": "agent",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "inputs": {
      -        "items": {
      -          "$ref": "#/properties/trigger/anyOf/0/properties/inputs/items"
      -        },
      -        "type": "array"
      -      },
      -      "kind": {
      -        "const": "manual",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "inputs": {
      -        "items": {
      -          "$ref": "#/properties/trigger/anyOf/0/properties/inputs/items"
      -        },
      -        "type": "array"
      -      },
      -      "kind": {
      -        "const": "http",
      -        "type": "string"
      -      },
      -      "method": {
      -        "enum": [
      -          "GET",
      -          "POST",
      -          "PUT",
      -          "PATCH",
      -          "DELETE"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "frequency": {
      -        "enum": [
      -          "Minute",
      -          "Hour",
      -          "Day",
      -          "Week",
      -          "Month"
      -        ],
      -        "type": "string"
      -      },
      -      "interval": {
      -        "type": "number"
      -      },
      -      "kind": {
      -        "const": "recurrence",
      -        "type": "string"
      -      },
      -      "startTime": {
      -        "type": "string"
      -      },
      -      "timeZone": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "frequency"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "connectionReference": {
      -        "type": "string"
      -      },
      -      "connectorId": {
      -        "type": "string"
      -      },
      -      "kind": {
      -        "const": "connector",
      -        "type": "string"
      -      },
      -      "operationId": {
      -        "type": "string"
      -      },
      -      "parameters": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "recurrence": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "frequency": {
      -            "type": "string"
      -          },
      -          "interval": {
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "frequency",
      -          "interval"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "connectorId",
      -      "operationId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "json": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "kind": {
      -        "const": "raw",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "json"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "inputs": {
      +        "items": {
      +          "properties": {
      +            "description": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "required": {
      +              "type": "boolean"
      +            },
      +            "type": {
      +              "enum": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "object",
      +                "array"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "kind": {
      +        "const": "agent",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "inputs": {
      +        "items": {
      +          "properties": {
      +            "description": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "required": {
      +              "type": "boolean"
      +            },
      +            "type": {
      +              "enum": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "object",
      +                "array"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "kind": {
      +        "const": "manual",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "inputs": {
      +        "items": {
      +          "properties": {
      +            "description": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "required": {
      +              "type": "boolean"
      +            },
      +            "type": {
      +              "enum": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "object",
      +                "array"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "kind": {
      +        "const": "http",
      +        "type": "string"
      +      },
      +      "method": {
      +        "enum": [
      +          "GET",
      +          "POST",
      +          "PUT",
      +          "PATCH",
      +          "DELETE"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "frequency": {
      +        "enum": [
      +          "Minute",
      +          "Hour",
      +          "Day",
      +          "Week",
      +          "Month"
      +        ],
      +        "type": "string"
      +      },
      +      "interval": {
      +        "type": "number"
      +      },
      +      "kind": {
      +        "const": "recurrence",
      +        "type": "string"
      +      },
      +      "startTime": {
      +        "type": "string"
      +      },
      +      "timeZone": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "frequency"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "connectionReference": {
      +        "type": "string"
      +      },
      +      "connectorId": {
      +        "type": "string"
      +      },
      +      "kind": {
      +        "const": "connector",
      +        "type": "string"
      +      },
      +      "operationId": {
      +        "type": "string"
      +      },
      +      "parameters": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "recurrence": {
      +        "properties": {
      +          "frequency": {
      +            "type": "string"
      +          },
      +          "interval": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "frequency",
      +          "interval"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "connectorId",
      +      "operationId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "json": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "kind": {
      +        "const": "raw",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "json"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv0.1.5

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden and does well: it says the tool does not touch any environment, returns the definition plus connection references and notes, and can optionally write to a file. It omits edge-case behavior such as invalid-spec handling, but for a pure builder tool the side-effect profile is clearly described.

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 dense but front-loaded with the core purpose and the no-environment constraint. Each subsequent sentence adds routing or prerequisite information that helps an agent invoke the tool correctly, with no filler.

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

Completeness4/5

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

For a complex builder tool with no output schema and no annotations, the description covers the essential context: what it builds, what it returns, that it can write a file, and how it connects to cs_create_flow and cs_update_flow. The exact return shape is not detailed, but the description gives enough guidance for correct selection and invocation.

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 71%, so the schema documents many parameters, but the description adds useful meaning: the trigger defaults to 'agent', the supported trigger kinds are named, step categories are enumerated, and outputFile is described as an optional write target. It does not explain every parameter in depth, but it meaningfully supplements the schema.

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 states a specific verb and resource: compose a Power Automate cloud flow definition from a step spec. It distinguishes this from cs_create_flow and cs_update_flow by explicitly saying it does not touch any environment and only builds the definition.

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?

It gives explicit routing: use this tool to build a definition, then feed the same spec to cs_create_flow to create or cs_update_flow to replace an existing flow. It also names prerequisites by directing the agent to cs_list_connectors and cs_describe_connector for connector and operation ids.

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