Skip to main content
Glama
Microsoft 365 MCP Server

Microsoft 365 MCP Server

by Softeria

create-mail-folder

create-mail-folder
Destructive

Creates a new top-level mail folder in the user's mailbox, optionally hidden, to organize email into a dedicated folder.

Instructions

Use this API to create a new mail folder in the root folder of the user's mailbox. If you intend a new folder to be hidden, you must set the isHidden property to true on creation.

šŸ’” TIP: Creates a top-level mail folder. Use create-mail-child-folder to create a subfolder inside an existing folder. Use list-mail-folders to find existing folder IDs.

Input Schema

NameRequiredDescriptionDefault
bodyYes
confirmNoFor destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.
includeHeadersNoInclude response headers (including ETag) in the response metadata
excludeResponseNoExclude the full response body and only return success or failure indication

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed168 schema fields changedv0.176.1
    • removedInput schema / $defs / def0 / properties / childFolderCount / description
      Removed value: -"The number of immediate child mailFolders in the current mailFolder."
    • changedInput schema / $defs / def0 / properties / messages / items / $ref
      Previous value: -"#/$defs/def29"New value: +"#/$defs/def32"
    • changedInput schema / $defs / def0 / properties / multiValueExtendedProperties / items / $ref
      Previous value: -"#/$defs/def31"New value: +"#/$defs/def36"
    • changedInput schema / $defs / def0 / properties / singleValueExtendedProperties / items / $ref
      Previous value: -"#/$defs/def32"New value: +"#/$defs/def35"
    • removedInput schema / $defs / def0 / properties / totalItemCount / description
      Removed value: -"The number of items in the mailFolder."
    • removedInput schema / $defs / def0 / properties / unreadItemCount / description
      Removed value: -"The number of items in the mailFolder marked as unread."
    • addedInput schema / $defs / def1 / properties / actions / properties / assignCategories / items / $ref
      Added value: +"#/$defs/def12"
    • removedInput schema / $defs / def1 / properties / actions / properties / assignCategories / items / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • changedInput schema / $defs / def1 / properties / actions / properties / forwardAsAttachmentTo / items / $ref
      Previous value: -"#/$defs/def2"New value: +"#/$defs/def23"
    • changedInput schema / $defs / def1 / properties / actions / properties / forwardTo / items / $ref
      Previous value: -"#/$defs/def2"New value: +"#/$defs/def23"
    • changedInput schema / $defs / def1 / properties / actions / properties / markImportance / $ref
      Previous value: -"#/$defs/def3"New value: +"#/$defs/def34"
    • changedInput schema / $defs / def1 / properties / actions / properties / redirectTo / items / $ref
      Previous value: -"#/$defs/def2"New value: +"#/$defs/def23"
    • removedInput schema / $defs / def1 / properties / conditions / additionalProperties
      Removed value: -true
    • addedInput schema / $defs / def1 / properties / conditions / allOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/def31"
      +  }
      +]
    • removedInput schema / $defs / def1 / properties / conditions / properties
      Removed value: -{
      -  "bodyContains": {
      -    "$ref": "#/$defs/def4"
      -  },
      -  "bodyOrSubjectContains": {
      -    "$ref": "#/$defs/def5"
      -  },
      -  "categories": {
      -    "$ref": "#/$defs/def6"
      -  },
      -  "fromAddresses": {
      -    "$ref": "#/$defs/def7"
      -  },
      -  "hasAttachments": {
      -    "$ref": "#/$defs/def8"
      -  },
      -  "headerContains": {
      -    "$ref": "#/$defs/def9"
      -  },
      -  "importance": {
      -    "$ref": "#/$defs/def10"
      -  },
      -  "isApprovalRequest": {
      -    "$ref": "#/$defs/def11"
      -  },
      -  "isAutomaticForward": {
      -    "$ref": "#/$defs/def12"
      -  },
      -  "isAutomaticReply": {
      -    "$ref": "#/$defs/def13"
      -  },
      -  "isEncrypted": {
      -    "$ref": "#/$defs/def14"
      -  },
      -  "isMeetingRequest": {
      -    "$ref": "#/$defs/def15"
      -  },
      -  "isMeetingResponse": {
      -    "$ref": "#/$defs/def16"
      -  },
      -  "isNonDeliveryReport": {
      -    "$ref": "#/$defs/def17"
      -  },
      -  "isPermissionControlled": {
      -    "$ref": "#/$defs/def18"
      -  },
      -  "isReadReceipt": {
      -    "$ref": "#/$defs/def19"
      -  },
      -  "isSigned": {
      -    "$ref": "#/$defs/def20"
      -  },
      -  "isVoicemail": {
      -    "$ref": "#/$defs/def21"
      -  },
      -  "messageActionFlag": {
      -    "$ref": "#/$defs/def22"
      -  },
      -  "notSentToMe": {
      -    "$ref": "#/$defs/def23"
      -  },
      -  "recipientContains": {
      -    "$ref": "#/$defs/def24"
      -  },
      -  "senderContains": {
      -    "$ref": "#/$defs/def25"
      -  },
      -  "sensitivity": {
      -    "$ref": "#/$defs/def26"
      -  },
      -  "sentCcMe": {
      -    "$ref": "#/$defs/def27"
      -  },
      -  "sentOnlyToMe": {
      -    "$ref": "#/$defs/def28"
      -  }
      -}
    • removedInput schema / $defs / def1 / properties / conditions / type
      Removed value: -"object"
    • removedInput schema / $defs / def1 / properties / exceptions / additionalProperties
      Removed value: -true
    • addedInput schema / $defs / def1 / properties / exceptions / allOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/def31"
      +  }
      +]
    • removedInput schema / $defs / def1 / properties / exceptions / properties
      Removed value: -{
      -  "bodyContains": {
      -    "$ref": "#/$defs/def4"
      -  },
      -  "bodyOrSubjectContains": {
      -    "$ref": "#/$defs/def5"
      -  },
      -  "categories": {
      -    "$ref": "#/$defs/def6"
      -  },
      -  "fromAddresses": {
      -    "$ref": "#/$defs/def7"
      -  },
      -  "hasAttachments": {
      -    "$ref": "#/$defs/def8"
      -  },
      -  "headerContains": {
      -    "$ref": "#/$defs/def9"
      -  },
      -  "importance": {
      -    "$ref": "#/$defs/def10"
      -  },
      -  "isApprovalRequest": {
      -    "$ref": "#/$defs/def11"
      -  },
      -  "isAutomaticForward": {
      -    "$ref": "#/$defs/def12"
      -  },
      -  "isAutomaticReply": {
      -    "$ref": "#/$defs/def13"
      -  },
      -  "isEncrypted": {
      -    "$ref": "#/$defs/def14"
      -  },
      -  "isMeetingRequest": {
      -    "$ref": "#/$defs/def15"
      -  },
      -  "isMeetingResponse": {
      -    "$ref": "#/$defs/def16"
      -  },
      -  "isNonDeliveryReport": {
      -    "$ref": "#/$defs/def17"
      -  },
      -  "isPermissionControlled": {
      -    "$ref": "#/$defs/def18"
      -  },
      -  "isReadReceipt": {
      -    "$ref": "#/$defs/def19"
      -  },
      -  "isSigned": {
      -    "$ref": "#/$defs/def20"
      -  },
      -  "isVoicemail": {
      -    "$ref": "#/$defs/def21"
      -  },
      -  "messageActionFlag": {
      -    "$ref": "#/$defs/def22"
      -  },
      -  "notSentToMe": {
      -    "$ref": "#/$defs/def23"
      -  },
      -  "recipientContains": {
      -    "$ref": "#/$defs/def24"
      -  },
      -  "senderContains": {
      -    "$ref": "#/$defs/def25"
      -  },
      -  "sensitivity": {
      -    "$ref": "#/$defs/def26"
      -  },
      -  "sentCcMe": {
      -    "$ref": "#/$defs/def27"
      -  },
      -  "sentOnlyToMe": {
      -    "$ref": "#/$defs/def28"
      -  }
      -}
    • removedInput schema / $defs / def1 / properties / exceptions / type
      Removed value: -"object"
    • removedInput schema / $defs / def1 / properties / sequence / description
      Removed value: -"Indicates the order in which the rule is executed, among other rules."
    • removedInput schema / $defs / def10 / $ref
      Removed value: -"#/$defs/def3"
    • addedInput schema / $defs / def10 / description
      Added value: +"Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply."
    • addedInput schema / $defs / def10 / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • changedInput schema / $defs / def11 / description
      Previous value: -"Indicates whether an incoming message must be an approval request in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply."
    • removedInput schema / $defs / def12 / description
      Removed value: -"Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply."
    • changedInput schema / $defs / def12 / type
      Previous value: -[
      -  "boolean",
      -  "null"
      -]New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / $defs / def13 / description
      Previous value: -"Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be encrypted in order for the condition or exception to apply."
    • changedInput schema / $defs / def14 / description
      Previous value: -"Indicates whether an incoming message must be encrypted in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply."
    • changedInput schema / $defs / def15 / description
      Previous value: -"Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply."
    • changedInput schema / $defs / def16 / description
      Previous value: -"Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply."
    • changedInput schema / $defs / def17 / description
      Previous value: -"Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply."
    • changedInput schema / $defs / def18 / description
      Previous value: -"Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply."
    • changedInput schema / $defs / def19 / description
      Previous value: -"Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply."
    • removedInput schema / $defs / def2 / additionalProperties
      Removed value: -true
    • removedInput schema / $defs / def2 / properties
      Removed value: -{
      -  "emailAddress": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "address": {
      -        "description": "The email address of the person or entity.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "name": {
      -        "description": "The display name of the person or entity.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -}
    • changedInput schema / $defs / def2 / type
      Previous value: -"object"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / $defs / def20 / description
      Previous value: -"Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply."
    • removedInput schema / $defs / def21 / description
      Removed value: -"Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply."
    • addedInput schema / $defs / def21 / enum
      Added value: +[
      +  "any",
      +  "call",
      +  "doNotForward",
      +  "followUp",
      +  "fyi",
      +  "forward",
      +  "noResponseNecessary",
      +  "read",
      +  "reply",
      +  "replyToAll",
      +  "review"
      +]
    • changedInput schema / $defs / def21 / type
      Previous value: -[
      -  "boolean",
      -  "null"
      -]New value: +"string"
    • addedInput schema / $defs / def22 / description
      Added value: +"Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply."
    • removedInput schema / $defs / def22 / enum
      Removed value: -[
      -  "any",
      -  "call",
      -  "doNotForward",
      -  "followUp",
      -  "fyi",
      -  "forward",
      -  "noResponseNecessary",
      -  "read",
      -  "reply",
      -  "replyToAll",
      -  "review"
      -]
    • changedInput schema / $defs / def22 / type
      Previous value: -"string"New value: +[
      +  "boolean",
      +  "null"
      +]
    • addedInput schema / $defs / def23 / additionalProperties
      Added value: +true
    • removedInput schema / $defs / def23 / description
      Removed value: -"Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply."
    • addedInput schema / $defs / def23 / properties
      Added value: +{
      +  "emailAddress": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "address": {
      +        "description": "The email address of the person or entity.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "description": "The display name of the person or entity.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
    • changedInput schema / $defs / def23 / type
      Previous value: -[
      -  "boolean",
      -  "null"
      -]New value: +"object"
    • addedInput schema / $defs / def24 / items / $ref
      Added value: +"#/$defs/def25"
    • removedInput schema / $defs / def24 / items / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • removedInput schema / $defs / def25 / description
      Removed value: -"Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply."
    • removedInput schema / $defs / def25 / items
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • changedInput schema / $defs / def25 / type
      Previous value: -"array"New value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / $defs / def26 / description
      Added value: +"Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply."
    • removedInput schema / $defs / def26 / enum
      Removed value: -[
      -  "normal",
      -  "personal",
      -  "private",
      -  "confidential"
      -]
    • addedInput schema / $defs / def26 / items
      Added value: +{
      +  "$ref": "#/$defs/def27"
      +}
    • changedInput schema / $defs / def26 / type
      Previous value: -"string"New value: +"array"
    • removedInput schema / $defs / def27 / description
      Removed value: -"Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply."
    • changedInput schema / $defs / def27 / type
      Previous value: -[
      -  "boolean",
      -  "null"
      -]New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / $defs / def28 / description
      Previous value: -"Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply."New value: +"Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply."
    • removedInput schema / $defs / def29 / additionalProperties
      Removed value: -true
    • addedInput schema / $defs / def29 / description
      Added value: +"Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply."
    • removedInput schema / $defs / def29 / properties
      Removed value: -{
      -  "attachments": {
      -    "description": "The fileAttachment and itemAttachment attachments for the message.",
      -    "items": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "contentType": {
      -          "description": "The MIME type.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "id": {
      -          "description": "The unique identifier for an entity. Read-only.",
      -          "type": "string"
      -        },
      -        "isInline": {
      -          "description": "true if the attachment is an inline attachment; otherwise, false.",
      -          "type": "boolean"
      -        },
      -        "lastModifiedDateTime": {
      -          "anyOf": [
      -            {
      -              "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
      -              "format": "date-time",
      -              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
      -        },
      -        "name": {
      -          "description": "The attachment's file name.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "size": {
      -          "description": "The length of the attachment in bytes.",
      -          "maximum": 2147483647,
      -          "minimum": -2147483648,
      -          "type": "number"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "bccRecipients": {
      -    "description": "The Bcc: recipients for the message.",
      -    "items": {
      -      "$ref": "#/$defs/def2"
      -    },
      -    "type": "array"
      -  },
      -  "body": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "content": {
      -        "description": "The content of the item.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "contentType": {
      -        "enum": [
      -          "text",
      -          "html"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "bodyPreview": {
      -    "description": "The first 255 characters of the message body. It is in text format.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "categories": {
      -    "description": "The categories associated with the item",
      -    "items": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "type": "array"
      -  },
      -  "ccRecipients": {
      -    "description": "The Cc: recipients for the message.",
      -    "items": {
      -      "$ref": "#/$defs/def2"
      -    },
      -    "type": "array"
      -  },
      -  "changeKey": {
      -    "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "conversationId": {
      -    "description": "The ID of the conversation the email belongs to.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "conversationIndex": {
      -    "description": "Indicates the position of the message within the conversation.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "createdDateTime": {
      -    "anyOf": [
      -      {
      -        "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
      -        "format": "date-time",
      -        "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
      -  },
      -  "flag": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "completedDateTime": {
      -        "$ref": "#/$defs/def30"
      -      },
      -      "dueDateTime": {
      -        "$ref": "#/$defs/def30"
      -      },
      -      "flagStatus": {
      -        "enum": [
      -          "notFlagged",
      -          "complete",
      -          "flagged"
      -        ],
      -        "type": "string"
      -      },
      -      "startDateTime": {
      -        "$ref": "#/$defs/def30"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "from": {
      -    "$ref": "#/$defs/def2"
      -  },
      -  "hasAttachments": {
      -    "description": "Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.",
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "id": {
      -    "description": "The unique identifier for an entity. Read-only.",
      -    "type": "string"
      -  },
      -  "importance": {
      -    "$ref": "#/$defs/def3"
      -  },
      -  "inferenceClassification": {
      -    "enum": [
      -      "focused",
      -      "other"
      -    ],
      -    "type": "string"
      -  },
      -  "internetMessageHeaders": {
      -    "description": "A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.",
      -    "items": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "name": {
      -          "description": "Represents the key in a key-value pair.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "value": {
      -          "description": "The value in a key-value pair.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "internetMessageId": {
      -    "description": "The message ID in the format specified by RFC2822.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "isDeliveryReceiptRequested": {
      -    "description": "Indicates whether a read receipt is requested for the message.",
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "isDraft": {
      -    "description": "Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.",
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "lastModifiedDateTime": {
      -    "anyOf": [
      -      {
      -        "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
      -        "format": "date-time",
      -        "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
      -  },
      -  "multiValueExtendedProperties": {
      -    "description": "The collection of multi-value extended properties defined for the message. Nullable.",
      -    "items": {
      -      "$ref": "#/$defs/def31"
      -    },
      -    "type": "array"
      -  },
      -  "singleValueExtendedProperties": {
      -    "description": "The collection of single-value extended properties defined for the message. Nullable.",
      -    "items": {
      -      "$ref": "#/$defs/def32"
      -    },
      -    "type": "array"
      -  },
      -  "subject": {
      -    "description": "The subject of the message.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "toRecipients": {
      -    "description": "The To: recipients for the message.",
      -    "items": {
      -      "$ref": "#/$defs/def2"
      -    },
      -    "type": "array"
      -  }
      -}
    • changedInput schema / $defs / def29 / type
      Previous value: -"object"New value: +[
      +  "boolean",
      +  "null"
      +]
    • addedInput schema / $defs / def3 / description
      Added value: +"Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply."
    • removedInput schema / $defs / def3 / enum
      Removed value: -[
      -  "low",
      -  "normal",
      -  "high"
      -]
    • addedInput schema / $defs / def3 / items
      Added value: +{
      +  "$ref": "#/$defs/def4"
      +}
    • changedInput schema / $defs / def3 / type
      Previous value: -"string"New value: +"array"
    • removedInput schema / $defs / def30 / additionalProperties
      Removed value: -true
    • removedInput schema / $defs / def30 / properties
      Removed value: -{
      -  "dateTime": {
      -    "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      -    "type": "string"
      -  },
      -  "timeZone": {
      -    "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
    • removedInput schema / $defs / def30 / type
      Removed value: -"object"
    • changedInput schema / $defs / def31 / additionalProperties
      Previous value: -trueNew value: +{
      +  "$ref": "#/$defs/def30"
      +}
    • addedInput schema / $defs / def31 / properties / bodyContains
      Added value: +{
      +  "$ref": "#/$defs/def43"
      +}
    • addedInput schema / $defs / def31 / properties / bodyOrSubjectContains
      Added value: +{
      +  "$ref": "#/$defs/def45"
      +}
    • addedInput schema / $defs / def31 / properties / categories
      Added value: +{
      +  "$ref": "#/$defs/def3"
      +}
    • addedInput schema / $defs / def31 / properties / fromAddresses
      Added value: +{
      +  "$ref": "#/$defs/def5"
      +}
    • addedInput schema / $defs / def31 / properties / hasAttachments
      Added value: +{
      +  "$ref": "#/$defs/def6"
      +}
    • addedInput schema / $defs / def31 / properties / headerContains
      Added value: +{
      +  "$ref": "#/$defs/def7"
      +}
    • removedInput schema / $defs / def31 / properties / id
      Removed value: -{
      -  "description": "The unique identifier for an entity. Read-only.",
      -  "type": "string"
      -}
    • addedInput schema / $defs / def31 / properties / importance
      Added value: +{
      +  "$ref": "#/$defs/def42"
      +}
    • addedInput schema / $defs / def31 / properties / isApprovalRequest
      Added value: +{
      +  "$ref": "#/$defs/def9"
      +}
    • addedInput schema / $defs / def31 / properties / isAutomaticForward
      Added value: +{
      +  "$ref": "#/$defs/def10"
      +}
    • addedInput schema / $defs / def31 / properties / isAutomaticReply
      Added value: +{
      +  "$ref": "#/$defs/def11"
      +}
    • addedInput schema / $defs / def31 / properties / isEncrypted
      Added value: +{
      +  "$ref": "#/$defs/def13"
      +}
    • addedInput schema / $defs / def31 / properties / isMeetingRequest
      Added value: +{
      +  "$ref": "#/$defs/def14"
      +}
    • addedInput schema / $defs / def31 / properties / isMeetingResponse
      Added value: +{
      +  "$ref": "#/$defs/def15"
      +}
    • addedInput schema / $defs / def31 / properties / isNonDeliveryReport
      Added value: +{
      +  "$ref": "#/$defs/def16"
      +}
    • addedInput schema / $defs / def31 / properties / isPermissionControlled
      Added value: +{
      +  "$ref": "#/$defs/def17"
      +}
    • addedInput schema / $defs / def31 / properties / isReadReceipt
      Added value: +{
      +  "$ref": "#/$defs/def18"
      +}
    • addedInput schema / $defs / def31 / properties / isSigned
      Added value: +{
      +  "$ref": "#/$defs/def19"
      +}
    • addedInput schema / $defs / def31 / properties / isVoicemail
      Added value: +{
      +  "$ref": "#/$defs/def20"
      +}
    • addedInput schema / $defs / def31 / properties / messageActionFlag
      Added value: +{
      +  "$ref": "#/$defs/def21"
      +}
    • addedInput schema / $defs / def31 / properties / notSentToMe
      Added value: +{
      +  "$ref": "#/$defs/def22"
      +}
    • addedInput schema / $defs / def31 / properties / recipientContains
      Added value: +{
      +  "$ref": "#/$defs/def24"
      +}
    • addedInput schema / $defs / def31 / properties / senderContains
      Added value: +{
      +  "$ref": "#/$defs/def26"
      +}
    • addedInput schema / $defs / def31 / properties / sensitivity
      Added value: +{
      +  "$ref": "#/$defs/def41"
      +}
    • addedInput schema / $defs / def31 / properties / sentCcMe
      Added value: +{
      +  "$ref": "#/$defs/def28"
      +}
    • addedInput schema / $defs / def31 / properties / sentOnlyToMe
      Added value: +{
      +  "$ref": "#/$defs/def29"
      +}
    • removedInput schema / $defs / def31 / properties / value
      Removed value: -{
      -  "description": "A collection of property values.",
      -  "items": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "type": "array"
      -}
    • addedInput schema / $defs / def32 / properties / attachments
      Added value: +{
      +  "description": "The fileAttachment and itemAttachment attachments for the message.",
      +  "items": {
      +    "$ref": "#/$defs/def33"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / bccRecipients
      Added value: +{
      +  "description": "The Bcc: recipients for the message.",
      +  "items": {
      +    "$ref": "#/$defs/def23"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / body
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "content": {
      +      "description": "The content of the item.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "contentType": {
      +      "enum": [
      +        "text",
      +        "html"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / def32 / properties / bodyPreview
      Added value: +{
      +  "description": "The first 255 characters of the message body. It is in text format.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / categories
      Added value: +{
      +  "description": "The categories associated with the item",
      +  "items": {
      +    "$ref": "#/$defs/def38"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / ccRecipients
      Added value: +{
      +  "description": "The Cc: recipients for the message.",
      +  "items": {
      +    "$ref": "#/$defs/def23"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / changeKey
      Added value: +{
      +  "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / conversationId
      Added value: +{
      +  "description": "The ID of the conversation the email belongs to.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / conversationIndex
      Added value: +{
      +  "description": "Indicates the position of the message within the conversation.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / createdDateTime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
      +      "format": "date-time",
      +      "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / flag
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "completedDateTime": {
      +      "$ref": "#/$defs/def39"
      +    },
      +    "dueDateTime": {
      +      "$ref": "#/$defs/def39"
      +    },
      +    "flagStatus": {
      +      "enum": [
      +        "notFlagged",
      +        "complete",
      +        "flagged"
      +      ],
      +      "type": "string"
      +    },
      +    "startDateTime": {
      +      "$ref": "#/$defs/def39"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / def32 / properties / from
      Added value: +{
      +  "$ref": "#/$defs/def23"
      +}
    • addedInput schema / $defs / def32 / properties / hasAttachments
      Added value: +{
      +  "description": "Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / importance
      Added value: +{
      +  "$ref": "#/$defs/def34"
      +}
    • addedInput schema / $defs / def32 / properties / inferenceClassification
      Added value: +{
      +  "enum": [
      +    "focused",
      +    "other"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / $defs / def32 / properties / internetMessageHeaders
      Added value: +{
      +  "description": "A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.",
      +  "items": {
      +    "$ref": "#/$defs/def40"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / internetMessageId
      Added value: +{
      +  "description": "The message ID in the format specified by RFC2822.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / isDeliveryReceiptRequested
      Added value: +{
      +  "description": "Indicates whether a read receipt is requested for the message.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / isDraft
      Added value: +{
      +  "description": "Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / lastModifiedDateTime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
      +      "format": "date-time",
      +      "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / multiValueExtendedProperties
      Added value: +{
      +  "description": "The collection of multi-value extended properties defined for the message. Nullable.",
      +  "items": {
      +    "$ref": "#/$defs/def36"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / singleValueExtendedProperties
      Added value: +{
      +  "description": "The collection of single-value extended properties defined for the message. Nullable.",
      +  "items": {
      +    "$ref": "#/$defs/def35"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def32 / properties / subject
      Added value: +{
      +  "description": "The subject of the message.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def32 / properties / toRecipients
      Added value: +{
      +  "description": "The To: recipients for the message.",
      +  "items": {
      +    "$ref": "#/$defs/def23"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / $defs / def32 / properties / value
      Removed value: -{
      -  "description": "A property value.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedInput schema / $defs / def33
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "contentType": {
      +      "description": "The MIME type.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "id": {
      +      "description": "The unique identifier for an entity. Read-only.",
      +      "type": "string"
      +    },
      +    "isInline": {
      +      "description": "true if the attachment is an inline attachment; otherwise, false.",
      +      "type": "boolean"
      +    },
      +    "lastModifiedDateTime": {
      +      "anyOf": [
      +        {
      +          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
      +          "format": "date-time",
      +          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "name": {
      +      "description": "The attachment's file name.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "size": {
      +      "description": "The length of the attachment in bytes.",
      +      "maximum": 2147483647,
      +      "minimum": -2147483648,
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / def34
      Added value: +{
      +  "enum": [
      +    "low",
      +    "normal",
      +    "high"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / $defs / def35
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "id": {
      +      "description": "The unique identifier for an entity. Read-only.",
      +      "type": "string"
      +    },
      +    "value": {
      +      "description": "A property value.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / def36
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "id": {
      +      "description": "The unique identifier for an entity. Read-only.",
      +      "type": "string"
      +    },
      +    "value": {
      +      "description": "A collection of property values.",
      +      "items": {
      +        "$ref": "#/$defs/def37"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / def37
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def38
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def39
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "dateTime": {
      +      "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      +      "type": "string"
      +    },
      +    "timeZone": {
      +      "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / $defs / def4 / description
      Removed value: -"Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply."
    • removedInput schema / $defs / def4 / items
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • changedInput schema / $defs / def4 / type
      Previous value: -"array"New value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / $defs / def40
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "name": {
      +      "description": "Represents the key in a key-value pair.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "value": {
      +      "description": "The value in a key-value pair.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / def41
      Added value: +{
      +  "enum": [
      +    "normal",
      +    "personal",
      +    "private",
      +    "confidential"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / $defs / def42
      Added value: +{
      +  "$ref": "#/$defs/def34"
      +}
    • addedInput schema / $defs / def43
      Added value: +{
      +  "description": "Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.",
      +  "items": {
      +    "$ref": "#/$defs/def44"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def44
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / $defs / def45
      Added value: +{
      +  "description": "Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.",
      +  "items": {
      +    "$ref": "#/$defs/def2"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / def46
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / def47
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / def48
      Added value: +{
      +  "type": "boolean"
      +}
    • changedInput schema / $defs / def5 / description
      Previous value: -"Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply."New value: +"Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply."
    • addedInput schema / $defs / def5 / items / $ref
      Added value: +"#/$defs/def23"
    • removedInput schema / $defs / def5 / items / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • changedInput schema / $defs / def6 / description
      Previous value: -"Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must have attachments in order for the condition or exception to apply."
    • removedInput schema / $defs / def6 / items
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • changedInput schema / $defs / def6 / type
      Previous value: -"array"New value: +[
      +  "boolean",
      +  "null"
      +]
    • changedInput schema / $defs / def7 / description
      Previous value: -"Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply."New value: +"Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply."
    • changedInput schema / $defs / def7 / items / $ref
      Previous value: -"#/$defs/def2"New value: +"#/$defs/def8"
    • removedInput schema / $defs / def8 / description
      Removed value: -"Indicates whether an incoming message must have attachments in order for the condition or exception to apply."
    • changedInput schema / $defs / def8 / type
      Previous value: -[
      -  "boolean",
      -  "null"
      -]New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / $defs / def9 / description
      Previous value: -"Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply."New value: +"Indicates whether an incoming message must be an approval request in order for the condition or exception to apply."
    • removedInput schema / $defs / def9 / items
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • changedInput schema / $defs / def9 / type
      Previous value: -"array"New value: +[
      +  "boolean",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / childFolderCount / description
      Removed value: -"The number of immediate child mailFolders in the current mailFolder."
    • changedInput schema / properties / body / properties / messages / items / $ref
      Previous value: -"#/$defs/def29"New value: +"#/$defs/def32"
    • changedInput schema / properties / body / properties / multiValueExtendedProperties / items / $ref
      Previous value: -"#/$defs/def31"New value: +"#/$defs/def36"
    • changedInput schema / properties / body / properties / singleValueExtendedProperties / items / $ref
      Previous value: -"#/$defs/def32"New value: +"#/$defs/def35"
    • removedInput schema / properties / body / properties / totalItemCount / description
      Removed value: -"The number of items in the mailFolder."
    • removedInput schema / properties / body / properties / unreadItemCount / description
      Removed value: -"The number of items in the mailFolder marked as unread."
    • addedInput schema / properties / confirm / allOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/def46"
      +  }
      +]
    • removedInput schema / properties / confirm / type
      Removed value: -"boolean"
    • addedInput schema / properties / excludeResponse / allOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/def47"
      +  }
      +]
    • removedInput schema / properties / excludeResponse / type
      Removed value: -"boolean"
    • addedInput schema / properties / includeHeaders / allOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/def48"
      +  }
      +]
    • removedInput schema / properties / includeHeaders / type
      Removed value: -"boolean"
  2. Addedv0.134.4
  3. Removedv0.131.2
  4. Changed1 schema field changedv0.131.1
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: \"confirmation_required\" } without touching user data.",
      +  "type": "boolean"
      +}
  5. Addedv0.114.0
  6. Removedv0.112.2
  7. Addedv0.110.0
  8. Removedv0.108.0
  9. Addedv0.96.0

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true. The description adds useful creation context, especially that isHidden must be set at creation, but it does not explain the confirmation gate or other mutation-side behavioral details beyond what the schema and annotations provide.

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 action, then adds one important creation constraint and a sibling-routing tip. Every sentence contributes directly to selecting or invoking the tool correctly.

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 mutation tool with annotations and a rich nested schema, the description is largely complete: it identifies the scope, hidden-folder behavior, and sibling alternatives. Minor gaps remain around the confirm gate and the displayName field, but the schema documents those fields.

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 75%, so the schema carries most parameter meaning. The description reinforces the isHidden creation-time requirement but does not clarify the top-level body fields, such as displayName, or the confirm/includeHeaders/excludeResponse parameters.

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: create a new mail folder. It also scopes the operation to the root of the user's mailbox and explicitly distinguishes it from create-mail-child-folder for subfolders.

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 guidance: use create-mail-child-folder for subfolders and list-mail-folders to find existing folder IDs. It also states the condition for hidden folders, so an agent knows both when to use this tool and how it differs from alternatives.

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