Skip to main content
Glama

Create a draft in the provider mailbox

create_draft

Creates an email draft; never sends by itself. cc and bcc are optional; bcc recipients are hidden from the others.

Writes a draft into the connected mailbox. Never sends by itself. After a successful draft, also creates a pending send so the agent can call send_draft, which only sends once the person approves in the app prompt or on the approval page. If the inbox has no stored credential, records a demo draft marked isDemo:true instead (send not available). Drafts are text-only; for outbound files, ask the human to upload to Drive/Dropbox and paste a share link in the body. Drafting rules (required): write the email body as the human would send it, in a natural voice, at an appropriate length, with no jargon. Never put meta/product text in the body or subject (no "IMAP", "beta", "MCP", "Inbox Triage", "not sent", "draft test", "connector", etc.) unless the human explicitly asked for that phrasing. Do not narrate the tooling; just write the message. Prefer matching the thread's tone when threadId / reply context exists. If the result has checks, ask the person all of its questions together before anything else and do not change the draft unless they say so. Approval is the app prompt or the approval page (approvalUrl); the result says which (approvalPath). Chat approval does not count.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "inboxId": "<inboxId>",
      "to": "<to>",
      "subject": "<subject>",
      "text": "<text>"
    },
    "name": "create_draft"
  }
}

Input Schema

NameRequiredDescriptionDefault
ccNoOptional comma-separated addresses to copy, like to.
toYes
bccNoOptional comma-separated addresses to blind copy, like to. Hidden from the other recipients.
textYesEmail body as the human would send it. No meta/product/tooling narration.
inboxIdYes
subjectYes
threadIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses the demo-draft fallback (isDemo:true, send unavailable) when no credential is stored, the text-only restriction with a human workaround for files, the approval gate ('chat approval does not count'), how the result reports approvalPath, and required drafting-voice rules. These are material behaviors an agent cannot infer from readOnlyHint/destructiveHint/openWorldHint.

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-loads the purpose and core non-send behavior, then layers the approval flow and drafting rules in a readable order. It is on the long side and repeats the no-send guarantee ('never sends by itself' appears twice), but nearly every sentence carries operational weight, so the size is largely earned.

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 no output schema, it covers what an agent needs to call it correctly: the approval prerequisite, the demo fallback outcome, the text-only constraint, how the result signals approvalPath, and the required email-writing conventions. Nothing essential about invoking or interpreting create_draft is missing.

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

Parameters3/5

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

With schema coverage at 43%, the description partially compensates: it clarifies that bcc recipients are hidden, that threadId should be used to match the thread's tone, and it defines the expected content of text. However, inboxId, to, and subject are left entirely to the schema, and cc is only briefly restated, so a meaningful documentation gap remains.

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 ('Creates an email draft') and immediately disambiguates the core behavior that separates it from siblings: 'never sends by itself.' Combined with the title and the send_draft handoff, an agent can distinguish this from send_draft, update_draft_from_card, and send_draft_from_card without opening any schema.

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?

Explicitly describes the workflow: after a successful draft it creates a pending send, so the agent calls send_draft, which only sends on human approval. That is strong when-to-use guidance and names the correct follow-up tool. It does not mention when to prefer update_draft_from_card or show_draft, and sets no explicit exclusions against drafting when another sibling already exists, so it falls short of a full 5.

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