Skip to main content
Glama
macos-mail-mcp

macos-mail-mcp

create_mailbox

Ensure a mailbox exists in a Mail.app account, creating it if needed and reusing existing folders; supports nesting via parent mailbox paths and returns the full path with created/alreadyExisted flags.

Instructions

Ensure a mailbox (folder) exists in a Mail.app account. For nesting, resolve the parent and use its full slash path at the account. Returns the full path read back from Mail and explicit created/alreadyExisted booleans; an existing mailbox is reused.

Input Schema

NameRequiredDescriptionDefault
accountNameYesThe name of the account to create the mailbox in
mailboxNameYesThe child name to create, or a full slash path when parentMailboxName is omitted
parentMailboxNameNoAn existing parent mailbox name or full path for nesting; omit to create directly at the account

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.0.0
    • changedInput schema / properties / mailboxName / description
      Previous value: -"The name of the new mailbox to create"New value: +"The child name to create, or a full slash path when parentMailboxName is omitted"
    • changedInput schema / properties / parentMailboxName / description
      Previous value: -"The name of the parent mailbox for nesting; omit for top-level"New value: +"An existing parent mailbox name or full path for nesting; omit to create directly at the account"
  2. Changed1 schema field changedv1.3.2
    • removedInput schema / additionalProperties
      Removed value: -false
  3. First observedv1.2.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does well on the important traits: it is a mutation that is safe to repeat because an existing mailbox is reused, and it discloses the exact return contract (full path read back from Mail, plus created/alreadyExisted booleans). It omits prerequisites such as Mail.app permissions, account existence, and failure behavior when the parent path is invalid.

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?

Three sentences, front-loaded with purpose then nesting then return contract, with no filler. The phrase 'use its full slash path at the account' is slightly compressed and could be read as ambiguous, which is the only structural blemish.

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?

There is no output schema, so the description appropriately spells out the return values, and it covers the idempotency semantics an agent needs. What remains thin for an unannotated mutation tool is environmental context: permission requirements and error conditions for a non-existent account or parent.

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 already 100%, so the baseline is 3; the description adds beyond the schema by framing the nesting convention (resolve the parent, pass its full slash path at the account) and by implying mailboxName is interpreted as a full path when the parent is omitted. It does not clarify path separator edge cases or whether the account name must match an entry from list_accounts.

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 opens with a precise verb+resource: ensure a mailbox (folder) exists in a Mail.app account. The word 'ensure' immediately signals idempotent creation, which is a meaningful distinction from a plain create and cannot be inferred from the name alone.

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

Usage Guidelines4/5

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

It gives real operative guidance: for nesting, resolve the parent and pass its full slash path, and it notes that an existing mailbox is reused rather than failing. It does not explicitly point to siblings such as list_mailboxes or get_mailbox_info as the way to resolve or verify a mailbox, leaving that inference to the agent.

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