Skip to main content
Glama

Microsoft 365 Create Email Folder

m365_create_email_folder
Destructive

Use this when the user wants a new mail folder in their Microsoft 365 / Outlook account: it is created on the Exchange server, so Outlook shows it on every device. name is the new folder's name; parent (optional) puts it inside an existing folder — an id, name or path from m365_list_email_folders, or inbox. If a folder with that name (in any case) already exists under the same parent, nothing is created and the answer is exists=true with its id. Answers created=true only after Microsoft 365 returns the new folder on a second read. Needs the Microsoft 365 permission Mail.ReadWrite: an account connected before it was asked for answers consent_required until it is connected again. For a folder of an account in the Mac's Mail app, use create_email_folder.

Input Schema

NameRequiredDescriptionDefault
nameYesThe new folder's name: one line, without /, at most 255 characters.
parentNoFolder to create it in: an id, name or path from m365_list_email_folders, or inbox. Leave it out for a top-level folder.
accountNoWhich connected Microsoft 365 account to use: its email (UPN), its id from list_m365_accounts, or its display name when unique. Leave it out to use the default account.
confirmNoIgnored; kept for older clients.

Output Schema

NameRequiredDescriptionDefault
idNo
nameYes
pathNo
existsNo
statusYes
accountNoThe email (UPN) of the Microsoft 365 account this call used.
createdYes
messageNo
parent_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / confirm / description
      Previous value: -"Set to true to create the folder (default: shows a preview only)."New value: +"Ignored; kept for older clients."
  2. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, so the safety profile is already carried; the description still adds real behavior beyond that: case-insensitive duplicate detection returns exists=true, and created=true is only reported after a second read confirms the folder. It also discloses the OAuth scope and the consent_required failure mode for older connections. Minor gap: no note on whether annotation destructiveHint applies to folder creation or what happens on partial failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the use case and alternative, and every sentence carries information (semantics, idempotency, verification, permissions). It is a dense single paragraph of chained clauses, slightly harder to scan than a structured layout, but no sentence is filler.

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

Completeness5/5

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

For a mutation tool with 4 params and an output schema present, the description covers trigger, parent syntax, dedupe/verification return semantics, permission requirement and the sibling alternative. Nothing an agent needs to call it correctly is missing; return-value detail is delegated appropriately to the output schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: the parent parameter is a dedupe key (same parent + case-insensitive name yields exists=true rather than a new folder), which no schema field states. Optional-vs-required semantics for parent are also clarified in prose.

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?

States a specific verb and resource (create a mail folder) in a specific backend (Exchange/Microsoft 365), and explicitly contrasts with create_email_folder for the Mac Mail app and references m365_list_email_folders for parent lookup. The agent can distinguish it from all siblings without opening a schema.

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?

Gives an explicit trigger ("when the user wants a new mail folder in their Microsoft 365 / Outlook account") and an explicit alternative with its condition ("For a folder of an account in the Mac's Mail app, use create_email_folder"). Prerequisite handling is also spelled out via the Mail.ReadWrite / consent_required note.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources