Skip to main content
Glama
Softeria

Microsoft 365 MCP Server

by Softeria

create-onedrive-folder

create-onedrive-folder
Destructive

Create a new OneDrive folder inside a specified drive item, controlling name conflicts with rename, replace, or fail options.

Instructions

Create a OneDrive folder.

šŸ’” TIP: Creates a new folder inside the specified drive item. Body must include name (string) and folder ({}) fields. Use @microsoft.graph.conflictBehavior to control behavior on name conflict: 'rename' (default), 'replace', or 'fail'.

Input Schema

TableJSON 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.
driveIdYesValue for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.
driveItemIdYesValue for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.
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. Dates show when Glama detected each change.

  1. Changed177 schema fields changedv0.145.2
    • removedInput schema / $defs
      Removed value: -{
      -  "def0": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "application": {
      -        "$ref": "#/$defs/def1"
      -      },
      -      "device": {
      -        "$ref": "#/$defs/def1"
      -      },
      -      "user": {
      -        "$ref": "#/$defs/def1"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "def1": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "displayName": {
      -        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "id": {
      -        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "def10": {
      -    "description": "The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def11": {
      -    "description": "The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def12": {
      -    "description": "Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def13": {
      -    "description": "The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def14": {
      -    "anyOf": [
      -      {
      -        "description": "The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).",
      -        "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 date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in)."
      -  },
      -  "def15": {
      -    "description": "Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def16": {
      -    "additionalProperties": true,
      -    "properties": {},
      -    "type": "object"
      -  },
      -  "def17": {
      -    "anyOf": [
      -      {
      -        "description": "Date and time when this object was deleted. Always null when the object hasn't been deleted.",
      -        "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": "Date and time when this object was deleted. Always null when the object hasn't been deleted."
      -  },
      -  "def18": {
      -    "description": "The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def19": {
      -    "description": "The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000.",
      -    "maximum": 2147483647,
      -    "minimum": -2147483648,
      -    "type": "number"
      -  },
      -  "def2": {
      -    "description": "A freeform text entry field for the user to describe themselves. Requires $select to retrieve.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def20": {
      -    "description": "The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def21": {
      -    "anyOf": [
      -      {
      -        "description": "The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).",
      -        "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 date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in)."
      -  },
      -  "def22": {
      -    "description": "The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def23": {
      -    "anyOf": [
      -      {
      -        "description": "The date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user.",
      -        "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 date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user."
      -  },
      -  "def24": {
      -    "description": "The unique identifier for an entity. Read-only.",
      -    "type": "string"
      -  },
      -  "def25": {
      -    "description": "The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def26": {
      -    "description": "The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet standard RFC 822. By convention, this value should map to the user's email name. The general format is alias@domain, where the domain must be present in the tenant's collection of verified domains. This property is required when a user is created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE: This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith) and $orderby. This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def3": {
      -    "description": "true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.",
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "def4": {
      -    "description": "Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "def5": {
      -    "description": "The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0).",
      -    "items": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "disabledPlans": {
      -          "description": "A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.",
      -          "items": {
      -            "format": "uuid",
      -            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "skuId": {
      -          "anyOf": [
      -            {
      -              "description": "The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.",
      -              "format": "uuid",
      -              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription."
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "def6": {
      -    "description": "The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not).",
      -    "items": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "assignedDateTime": {
      -          "anyOf": [
      -            {
      -              "description": "The date and time at which the plan was assigned. 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 date and time at which the plan was assigned. 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."
      -        },
      -        "capabilityStatus": {
      -          "description": "Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "service": {
      -          "description": "The name of the service; for example, exchange.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "servicePlanId": {
      -          "anyOf": [
      -            {
      -              "description": "A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.",
      -              "format": "uuid",
      -              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing."
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "def7": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "certificateUserIds": {
      -        "items": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "def8": {
      -    "description": "The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve.",
      -    "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"
      -  },
      -  "def9": {
      -    "description": "The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  }
      -}
    • removedInput schema / properties / body / properties / createdBy / $ref
      Removed value: -"#/$defs/def0"
    • addedInput schema / properties / body / properties / createdBy / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / createdBy / properties
      Added value: +{
      +  "application": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "displayName": {
      +        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "device": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "displayName": {
      +        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "user": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "displayName": {
      +        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / body / properties / createdBy / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / createdByUser / properties / aboutMe / $ref
      Removed value: -"#/$defs/def2"
    • addedInput schema / properties / body / properties / createdByUser / properties / aboutMe / description
      Added value: +"A freeform text entry field for the user to describe themselves. Requires $select to retrieve."
    • addedInput schema / properties / body / properties / createdByUser / properties / aboutMe / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / accountEnabled / $ref
      Removed value: -"#/$defs/def3"
    • addedInput schema / properties / body / properties / createdByUser / properties / accountEnabled / description
      Added value: +"true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • addedInput schema / properties / body / properties / createdByUser / properties / accountEnabled / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / ageGroup / $ref
      Removed value: -"#/$defs/def4"
    • addedInput schema / properties / body / properties / createdByUser / properties / ageGroup / description
      Added value: +"Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in)."
    • addedInput schema / properties / body / properties / createdByUser / properties / ageGroup / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / assignedLicenses / $ref
      Removed value: -"#/$defs/def5"
    • addedInput schema / properties / body / properties / createdByUser / properties / assignedLicenses / description
      Added value: +"The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0)."
    • addedInput schema / properties / body / properties / createdByUser / properties / assignedLicenses / items
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "disabledPlans": {
      +      "description": "A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.",
      +      "items": {
      +        "format": "uuid",
      +        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "skuId": {
      +      "anyOf": [
      +        {
      +          "description": "The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.",
      +          "format": "uuid",
      +          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription."
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / body / properties / createdByUser / properties / assignedLicenses / type
      Added value: +"array"
    • removedInput schema / properties / body / properties / createdByUser / properties / assignedPlans / $ref
      Removed value: -"#/$defs/def6"
    • addedInput schema / properties / body / properties / createdByUser / properties / assignedPlans / description
      Added value: +"The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not)."
    • addedInput schema / properties / body / properties / createdByUser / properties / assignedPlans / items
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "assignedDateTime": {
      +      "anyOf": [
      +        {
      +          "description": "The date and time at which the plan was assigned. 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 date and time at which the plan was assigned. 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."
      +    },
      +    "capabilityStatus": {
      +      "description": "Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "service": {
      +      "description": "The name of the service; for example, exchange.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "servicePlanId": {
      +      "anyOf": [
      +        {
      +          "description": "A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.",
      +          "format": "uuid",
      +          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing."
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / body / properties / createdByUser / properties / assignedPlans / type
      Added value: +"array"
    • removedInput schema / properties / body / properties / createdByUser / properties / authorizationInfo / $ref
      Removed value: -"#/$defs/def7"
    • addedInput schema / properties / body / properties / createdByUser / properties / authorizationInfo / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / createdByUser / properties / authorizationInfo / properties
      Added value: +{
      +  "certificateUserIds": {
      +    "items": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "type": "array"
      +  }
      +}
    • addedInput schema / properties / body / properties / createdByUser / properties / authorizationInfo / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / createdByUser / properties / birthday / $ref
      Removed value: -"#/$defs/def8"
    • addedInput schema / properties / body / properties / createdByUser / properties / birthday / description
      Added value: +"The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve."
    • addedInput schema / properties / body / properties / createdByUser / properties / birthday / format
      Added value: +"date-time"
    • addedInput schema / properties / body / properties / createdByUser / properties / birthday / pattern
      Added value: +"^[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])$"
    • addedInput schema / properties / body / properties / createdByUser / properties / birthday / type
      Added value: +"string"
    • removedInput schema / properties / body / properties / createdByUser / properties / businessPhones / $ref
      Removed value: -"#/$defs/def9"
    • addedInput schema / properties / body / properties / createdByUser / properties / businessPhones / description
      Added value: +"The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • addedInput schema / properties / body / properties / createdByUser / properties / businessPhones / items
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / body / properties / createdByUser / properties / businessPhones / type
      Added value: +"array"
    • removedInput schema / properties / body / properties / createdByUser / properties / city / $ref
      Removed value: -"#/$defs/def10"
    • addedInput schema / properties / body / properties / createdByUser / properties / city / description
      Added value: +"The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / createdByUser / properties / city / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / companyName / $ref
      Removed value: -"#/$defs/def11"
    • addedInput schema / properties / body / properties / createdByUser / properties / companyName / description
      Added value: +"The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / createdByUser / properties / companyName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / consentProvidedForMinor / $ref
      Removed value: -"#/$defs/def12"
    • addedInput schema / properties / body / properties / createdByUser / properties / consentProvidedForMinor / description
      Added value: +"Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in)."
    • addedInput schema / properties / body / properties / createdByUser / properties / consentProvidedForMinor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / country / $ref
      Removed value: -"#/$defs/def13"
    • addedInput schema / properties / body / properties / createdByUser / properties / country / description
      Added value: +"The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / createdByUser / properties / country / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / createdDateTime / $ref
      Removed value: -"#/$defs/def14"
    • addedInput schema / properties / body / properties / createdByUser / properties / createdDateTime / anyOf
      Added value: +[
      +  {
      +    "description": "The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).",
      +    "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 / properties / body / properties / createdByUser / properties / createdDateTime / description
      Added value: +"The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in)."
    • removedInput schema / properties / body / properties / createdByUser / properties / creationType / $ref
      Removed value: -"#/$defs/def15"
    • addedInput schema / properties / body / properties / createdByUser / properties / creationType / description
      Added value: +"Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in)."
    • addedInput schema / properties / body / properties / createdByUser / properties / creationType / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / customSecurityAttributes / $ref
      Removed value: -"#/$defs/def16"
    • addedInput schema / properties / body / properties / createdByUser / properties / customSecurityAttributes / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / createdByUser / properties / customSecurityAttributes / properties
      Added value: +{}
    • addedInput schema / properties / body / properties / createdByUser / properties / customSecurityAttributes / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / createdByUser / properties / deletedDateTime / $ref
      Removed value: -"#/$defs/def17"
    • addedInput schema / properties / body / properties / createdByUser / properties / deletedDateTime / anyOf
      Added value: +[
      +  {
      +    "description": "Date and time when this object was deleted. Always null when the object hasn't been deleted.",
      +    "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 / properties / body / properties / createdByUser / properties / deletedDateTime / description
      Added value: +"Date and time when this object was deleted. Always null when the object hasn't been deleted."
    • removedInput schema / properties / body / properties / createdByUser / properties / department / $ref
      Removed value: -"#/$defs/def18"
    • addedInput schema / properties / body / properties / createdByUser / properties / department / description
      Added value: +"The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values)."
    • addedInput schema / properties / body / properties / createdByUser / properties / department / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / deviceEnrollmentLimit / $ref
      Removed value: -"#/$defs/def19"
    • addedInput schema / properties / body / properties / createdByUser / properties / deviceEnrollmentLimit / description
      Added value: +"The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000."
    • addedInput schema / properties / body / properties / createdByUser / properties / deviceEnrollmentLimit / maximum
      Added value: +2147483647
    • addedInput schema / properties / body / properties / createdByUser / properties / deviceEnrollmentLimit / minimum
      Added value: +-2147483648
    • addedInput schema / properties / body / properties / createdByUser / properties / deviceEnrollmentLimit / type
      Added value: +"number"
    • removedInput schema / properties / body / properties / createdByUser / properties / displayName / $ref
      Removed value: -"#/$defs/def20"
    • addedInput schema / properties / body / properties / createdByUser / properties / displayName / description
      Added value: +"The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search."
    • addedInput schema / properties / body / properties / createdByUser / properties / displayName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / employeeHireDate / $ref
      Removed value: -"#/$defs/def21"
    • addedInput schema / properties / body / properties / createdByUser / properties / employeeHireDate / anyOf
      Added value: +[
      +  {
      +    "description": "The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).",
      +    "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 / properties / body / properties / createdByUser / properties / employeeHireDate / description
      Added value: +"The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in)."
    • removedInput schema / properties / body / properties / createdByUser / properties / employeeId / $ref
      Removed value: -"#/$defs/def22"
    • addedInput schema / properties / body / properties / createdByUser / properties / employeeId / description
      Added value: +"The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / createdByUser / properties / employeeId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / employeeLeaveDateTime / $ref
      Removed value: -"#/$defs/def23"
    • addedInput schema / properties / body / properties / createdByUser / properties / employeeLeaveDateTime / anyOf
      Added value: +[
      +  {
      +    "description": "The date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user.",
      +    "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 / properties / body / properties / createdByUser / properties / employeeLeaveDateTime / description
      Added value: +"The date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user."
    • removedInput schema / properties / body / properties / createdByUser / properties / id / $ref
      Removed value: -"#/$defs/def24"
    • addedInput schema / properties / body / properties / createdByUser / properties / id / description
      Added value: +"The unique identifier for an entity. Read-only."
    • addedInput schema / properties / body / properties / createdByUser / properties / id / type
      Added value: +"string"
    • removedInput schema / properties / body / properties / createdByUser / properties / state / $ref
      Removed value: -"#/$defs/def25"
    • addedInput schema / properties / body / properties / createdByUser / properties / state / description
      Added value: +"The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / createdByUser / properties / state / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / createdByUser / properties / userPrincipalName / $ref
      Removed value: -"#/$defs/def26"
    • addedInput schema / properties / body / properties / createdByUser / properties / userPrincipalName / description
      Added value: +"The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet standard RFC 822. By convention, this value should map to the user's email name. The general format is alias@domain, where the domain must be present in the tenant's collection of verified domains. This property is required when a user is created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE: This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith) and $orderby. This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • addedInput schema / properties / body / properties / createdByUser / properties / userPrincipalName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedBy / $ref
      Removed value: -"#/$defs/def0"
    • addedInput schema / properties / body / properties / lastModifiedBy / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / lastModifiedBy / properties
      Added value: +{
      +  "application": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "displayName": {
      +        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "device": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "displayName": {
      +        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "user": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "displayName": {
      +        "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / body / properties / lastModifiedBy / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / aboutMe / $ref
      Removed value: -"#/$defs/def2"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / aboutMe / description
      Added value: +"A freeform text entry field for the user to describe themselves. Requires $select to retrieve."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / aboutMe / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / accountEnabled / $ref
      Removed value: -"#/$defs/def3"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / accountEnabled / description
      Added value: +"true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / accountEnabled / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / ageGroup / $ref
      Removed value: -"#/$defs/def4"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / ageGroup / description
      Added value: +"Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / ageGroup / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedLicenses / $ref
      Removed value: -"#/$defs/def5"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedLicenses / description
      Added value: +"The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedLicenses / items
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "disabledPlans": {
      +      "description": "A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.",
      +      "items": {
      +        "format": "uuid",
      +        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "skuId": {
      +      "anyOf": [
      +        {
      +          "description": "The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.",
      +          "format": "uuid",
      +          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription."
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedLicenses / type
      Added value: +"array"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedPlans / $ref
      Removed value: -"#/$defs/def6"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedPlans / description
      Added value: +"The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedPlans / items
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "assignedDateTime": {
      +      "anyOf": [
      +        {
      +          "description": "The date and time at which the plan was assigned. 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 date and time at which the plan was assigned. 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."
      +    },
      +    "capabilityStatus": {
      +      "description": "Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "service": {
      +      "description": "The name of the service; for example, exchange.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "servicePlanId": {
      +      "anyOf": [
      +        {
      +          "description": "A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.",
      +          "format": "uuid",
      +          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing."
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / assignedPlans / type
      Added value: +"array"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / authorizationInfo / $ref
      Removed value: -"#/$defs/def7"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / authorizationInfo / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / authorizationInfo / properties
      Added value: +{
      +  "certificateUserIds": {
      +    "items": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "type": "array"
      +  }
      +}
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / authorizationInfo / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / birthday / $ref
      Removed value: -"#/$defs/def8"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / birthday / description
      Added value: +"The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / birthday / format
      Added value: +"date-time"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / birthday / pattern
      Added value: +"^[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])$"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / birthday / type
      Added value: +"string"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / businessPhones / $ref
      Removed value: -"#/$defs/def9"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / businessPhones / description
      Added value: +"The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / businessPhones / items
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / businessPhones / type
      Added value: +"array"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / city / $ref
      Removed value: -"#/$defs/def10"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / city / description
      Added value: +"The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / city / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / companyName / $ref
      Removed value: -"#/$defs/def11"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / companyName / description
      Added value: +"The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / companyName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / consentProvidedForMinor / $ref
      Removed value: -"#/$defs/def12"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / consentProvidedForMinor / description
      Added value: +"Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / consentProvidedForMinor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / country / $ref
      Removed value: -"#/$defs/def13"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / country / description
      Added value: +"The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / country / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / createdDateTime / $ref
      Removed value: -"#/$defs/def14"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / createdDateTime / anyOf
      Added value: +[
      +  {
      +    "description": "The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).",
      +    "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 / properties / body / properties / lastModifiedByUser / properties / createdDateTime / description
      Added value: +"The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in)."
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / creationType / $ref
      Removed value: -"#/$defs/def15"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / creationType / description
      Added value: +"Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / creationType / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / customSecurityAttributes / $ref
      Removed value: -"#/$defs/def16"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / customSecurityAttributes / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / customSecurityAttributes / properties
      Added value: +{}
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / customSecurityAttributes / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / deletedDateTime / $ref
      Removed value: -"#/$defs/def17"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / deletedDateTime / anyOf
      Added value: +[
      +  {
      +    "description": "Date and time when this object was deleted. Always null when the object hasn't been deleted.",
      +    "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 / properties / body / properties / lastModifiedByUser / properties / deletedDateTime / description
      Added value: +"Date and time when this object was deleted. Always null when the object hasn't been deleted."
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / department / $ref
      Removed value: -"#/$defs/def18"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / department / description
      Added value: +"The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / department / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / deviceEnrollmentLimit / $ref
      Removed value: -"#/$defs/def19"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / deviceEnrollmentLimit / description
      Added value: +"The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / deviceEnrollmentLimit / maximum
      Added value: +2147483647
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / deviceEnrollmentLimit / minimum
      Added value: +-2147483648
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / deviceEnrollmentLimit / type
      Added value: +"number"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / displayName / $ref
      Removed value: -"#/$defs/def20"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / displayName / description
      Added value: +"The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / displayName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeHireDate / $ref
      Removed value: -"#/$defs/def21"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeHireDate / anyOf
      Added value: +[
      +  {
      +    "description": "The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).",
      +    "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 / properties / body / properties / lastModifiedByUser / properties / employeeHireDate / description
      Added value: +"The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in)."
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeId / $ref
      Removed value: -"#/$defs/def22"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeId / description
      Added value: +"The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeLeaveDateTime / $ref
      Removed value: -"#/$defs/def23"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / employeeLeaveDateTime / anyOf
      Added value: +[
      +  {
      +    "description": "The date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user.",
      +    "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 / properties / body / properties / lastModifiedByUser / properties / employeeLeaveDateTime / description
      Added value: +"The date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user."
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / id / $ref
      Removed value: -"#/$defs/def24"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / id / description
      Added value: +"The unique identifier for an entity. Read-only."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / id / type
      Added value: +"string"
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / state / $ref
      Removed value: -"#/$defs/def25"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / state / description
      Added value: +"The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / state / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / body / properties / lastModifiedByUser / properties / userPrincipalName / $ref
      Removed value: -"#/$defs/def26"
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / userPrincipalName / description
      Added value: +"The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet standard RFC 822. By convention, this value should map to the user's email name. The general format is alias@domain, where the domain must be present in the tenant's collection of verified domains. This property is required when a user is created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE: This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith) and $orderby. This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • addedInput schema / properties / body / properties / lastModifiedByUser / properties / userPrincipalName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed2 schema fields changedv0.137.0
    • changedInput schema / properties / body / properties / createdByUser / description
      Previous value: -"[Note: Simplified from 136 properties to 25 most common ones]"New value: +"[Note: Simplified from 137 properties to 25 most common ones]"
    • changedInput schema / properties / body / properties / lastModifiedByUser / description
      Previous value: -"[Note: Simplified from 136 properties to 25 most common ones]"New value: +"[Note: Simplified from 137 properties to 25 most common ones]"
  3. Addedv0.134.4
  4. Removedv0.131.2
  5. Changed4 schema fields changedv0.131.1
    • changedInput schema / properties / body / properties / createdByUser / properties / accountEnabled / description
      Previous value: -"true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in)."New value: +"true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • changedInput schema / properties / body / properties / createdByUser / properties / businessPhones / description
      Previous value: -"The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith)."New value: +"The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • changedInput schema / properties / body / properties / createdByUser / properties / userPrincipalName / description
      Previous value: -"The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet standard RFC 822. By convention, this value should map to the user's email name. The general format is alias@domain, where the domain must be present in the tenant's collection of verified domains. This property is required when a user is created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE: This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith) and $orderby."New value: +"The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet standard RFC 822. By convention, this value should map to the user's email name. The general format is alias@domain, where the domain must be present in the tenant's collection of verified domains. This property is required when a user is created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE: This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith) and $orderby. This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it."
    • 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"
      +}
  6. Addedv0.114.0
  7. Removedv0.112.2
  8. Addedv0.110.0
  9. Removedv0.108.0
  10. Addedv0.96.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (it's a write), destructiveHint=true. The description adds value beyond annotations by explaining conflict behavior options (rename, replace, fail), which is behavioral context the annotations don't provide. It doesn't contradict annotations. Also includes a 'confirm' parameter for destructive gate, which aligns with destructiveness. Slight deduction for not mentioning other side effects, but solid overall.

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 concise: one opening sentence, a tip line, and then structured guidance. The most critical information (what body must contain, conflict behavior options) is front-loaded and formatted clearly. No wasted words; each part has purpose.

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 creating a folder, the description covers essential inputs: driveId, driveItemId, body requirements, conflict behavior. The schema is rich and well-covered. It could mention return values (since no output schema), but for creation tools, this is often obvious. Minor gap: unclear what happens on success (returns created folder item), but given the tool's simplicity, this is quite complete. Not a 5 because it lacks explicit mention of success behavior.

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 description coverage is 83%, high. The description adds critical meaning beyond schema: it explicitly says the body must include 'name' and 'folder' fields, and explains the conflictBehavior mechanism, which is not in the schema. This compensates well for the complexity of the body object. A 4 because it's genuinely helpful but could still deepen details like error handling.

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 exactly what the tool does: 'Create a OneDrive folder' and specifies it creates inside a drive item. It clearly identifies the verb, resource, and context, and distinguishes from siblings like move-rename-onedrive-item and delete-onedrive-file which have different purposes.

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

Usage Guidelines5/5

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

The description explicitly instructs what the body must include ('name' and 'folder' fields) and how to use '@microsoft.graph.conflictBehavior' to control name conflicts. It implies the context of creation (inside a specified drive item) and is clear about required parameters, preventing incorrect usage.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Softeria/ms-365-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server