Skip to main content
Glama
mathewcsims

mail-calendar-mcp

by mathewcsims

mail_create_draft

Create a new draft email in your Mail.app account. Returns a compose session ID for later sending or updating the draft.

Instructions

Create a new draft email (saved to the account's Drafts mailbox). Returns a composeSessionId usable with mail_send_message, mail_update_draft — valid only until Mail.app next restarts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNo
toNo
bccNo
contentNoPlaintext body.
subjectNo
fromAddressYesREQUIRED — One of the account's configured email addresses (see mail_list_accounts' emailAddresses) that determines which account this is sent/saved from. On a multi-account setup, omitting this silently falls back to Mail.app's global 'send new messages from' preference, which may not be the account you intend — confirmed via testing this can default to an unexpected account.
attachmentPathsNoLocal file paths to attach. Attachment insertion is unverified on this system — see README known limitations.
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the description's mention of creating a draft (mutation) aligns. The description adds valuable behavioral details: the session ID lifespan, unverified attachment insertion, and the fromAddress fallback behavior that could lead to unintended account selection. No contradictions.

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 with no extraneous information. It front-loads the primary action and then efficiently covers key details (session ID, lifespan, fromAddress requirement, attachment limitation) in just a few sentences.

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?

Given 7 parameters, no output schema, and 43% schema description coverage, the description covers the most critical aspects: what the tool returns (composeSessionId), its limited lifespan, and important parameter caveats. It could explicitly state the return format, but the provided info is sufficient for correct invocation.

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

Parameters4/5

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

With only 43% schema description coverage, the description compensates by adding meaning beyond the schema. It explains that fromAddress is required and describes the fallback behavior, clarifies that content is plaintext, and notes that attachmentPaths insertion is unverified. This provides essential context for proper parameter use.

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 clearly states the tool creates a new draft email saved to the account's Drafts mailbox. It identifies the returned composeSessionId and explicitly distinguishes from siblings like mail_send_message and mail_update_draft by noting the session ID's validity until Mail.app restarts.

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?

The description explains when to use the tool (to create a draft and obtain a composeSessionId) and provides critical context about the session ID's temporary nature. It also warns about the fromAddress fallback in multi-account setups, guiding proper usage. It does not explicitly state when not to use it, but the context is sufficient.

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/mathewcsims/mail-calendar-mcp'

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