Skip to main content
Glama

AIsa Agent Mail

List Drafts

post_agentmail_inbox_draft
Destructive

Retrieve a list of email drafts from the specified inbox, with optional filters and pagination support.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyNoBody for creating a draft. Supports plain, reply, reply-all, and forward drafts: - **Plain draft:** supply `to`, `subject`, `text`, etc. - **Reply:** set `in_reply_to` to a message ID. Recipients, subject, and threading are derived from that message. Set `reply_all` to address the whole thread (you then cannot also pass `to`, `cc`, or `bcc`). - **Forward:** set `forward_of` to a message ID. The subject and threading are derived from the source message, whose body and attachments are merged in at send time. `in_reply_to` and `forward_of` are mutually exclusive, and reading the referenced message requires `message_read` permission.
inbox_idYesThe ID of the inbox.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / attachments
      Removed value: -{
      -  "description": "Attachments to include in draft.",
      -  "items": {
      -    "description": "Provide either `content` or `url` for each attachment.",
      -    "properties": {
      -      "content": {
      -        "description": "Base64 encoded content of the attachment. The entire request, including the message body and all attachments, is limited to 6 MB.",
      -        "type": "string"
      -      },
      -      "content_disposition": {
      -        "description": "Content disposition of attachment.",
      -        "enum": [
      -          "inline",
      -          "attachment"
      -        ],
      -        "title": "AttachmentContentDisposition",
      -        "type": "string"
      -      },
      -      "content_id": {
      -        "description": "Content ID of attachment.",
      -        "title": "AttachmentContentId",
      -        "type": "string"
      -      },
      -      "content_type": {
      -        "description": "Content type of attachment.",
      -        "title": "AttachmentContentType",
      -        "type": "string"
      -      },
      -      "filename": {
      -        "description": "Filename of attachment.",
      -        "title": "AttachmentFilename",
      -        "type": "string"
      -      },
      -      "url": {
      -        "description": "URL that AgentMail can download without custom authentication headers or cookies.\nRedirects and pre-signed URLs are supported, and the final response must be a\nsuccessful 2xx response. Keep URL-backed attachments around 30 MB total per message.",
      -        "type": "string"
      -      }
      -    },
      -    "title": "SendAttachment",
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / bcc
      Removed value: -{
      -  "description": "Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "title": "DraftBcc",
      -  "type": "array"
      -}
    • addedInput schema / properties / body
      Added value: +{
      +  "description": "Body for creating a draft. Supports plain, reply, reply-all, and forward\ndrafts:\n\n- **Plain draft:** supply `to`, `subject`, `text`, etc.\n- **Reply:** set `in_reply_to` to a message ID. Recipients, subject, and\n  threading are derived from that message. Set `reply_all` to address the\n  whole thread (you then cannot also pass `to`, `cc`, or `bcc`).\n- **Forward:** set `forward_of` to a message ID. The subject and threading\n  are derived from the source message, whose body and attachments are\n  merged in at send time.\n\n`in_reply_to` and `forward_of` are mutually exclusive, and reading the\nreferenced message requires `message_read` permission.",
      +  "properties": {
      +    "attachments": {
      +      "description": "Attachments to include in draft.",
      +      "items": {
      +        "description": "Provide either `content` or `url` for each attachment.",
      +        "properties": {
      +          "content": {
      +            "description": "Base64 encoded content of the attachment. The entire request, including the message body and all attachments, is limited to 6 MB.",
      +            "type": "string"
      +          },
      +          "content_disposition": {
      +            "description": "Content disposition of attachment.",
      +            "enum": [
      +              "inline",
      +              "attachment"
      +            ],
      +            "title": "AttachmentContentDisposition",
      +            "type": "string"
      +          },
      +          "content_id": {
      +            "description": "Content ID of attachment.",
      +            "title": "AttachmentContentId",
      +            "type": "string"
      +          },
      +          "content_type": {
      +            "description": "Content type of attachment.",
      +            "title": "AttachmentContentType",
      +            "type": "string"
      +          },
      +          "filename": {
      +            "description": "Filename of attachment.",
      +            "title": "AttachmentFilename",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "URL that AgentMail can download without custom authentication headers or cookies.\nRedirects and pre-signed URLs are supported, and the final response must be a\nsuccessful 2xx response. Keep URL-backed attachments around 30 MB total per message.",
      +            "type": "string"
      +          }
      +        },
      +        "title": "SendAttachment",
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "bcc": {
      +      "description": "Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "DraftBcc",
      +      "type": "array"
      +    },
      +    "cc": {
      +      "description": "Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "DraftCc",
      +      "type": "array"
      +    },
      +    "client_id": {
      +      "description": "Client ID of draft.",
      +      "title": "DraftClientId",
      +      "type": "string"
      +    },
      +    "forward_of": {
      +      "description": "ID of message being forwarded.",
      +      "title": "DraftForwardOf",
      +      "type": "string"
      +    },
      +    "html": {
      +      "description": "HTML body of draft.",
      +      "title": "DraftHtml",
      +      "type": "string"
      +    },
      +    "in_reply_to": {
      +      "description": "ID of message being replied to.",
      +      "title": "DraftInReplyTo",
      +      "type": "string"
      +    },
      +    "labels": {
      +      "description": "Labels of draft.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "DraftLabels",
      +      "type": "array"
      +    },
      +    "reply_all": {
      +      "description": "Reply to all recipients of the original message.",
      +      "title": "DraftReplyAll",
      +      "type": "boolean"
      +    },
      +    "reply_to": {
      +      "description": "Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "DraftReplyTo",
      +      "type": "array"
      +    },
      +    "send_at": {
      +      "description": "Time at which to schedule send draft.",
      +      "format": "date-time",
      +      "title": "DraftSendAt",
      +      "type": "string"
      +    },
      +    "subject": {
      +      "description": "Subject of draft.",
      +      "title": "DraftSubject",
      +      "type": "string"
      +    },
      +    "text": {
      +      "description": "Plain text body of draft.",
      +      "title": "DraftText",
      +      "type": "string"
      +    },
      +    "to": {
      +      "description": "Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "DraftTo",
      +      "type": "array"
      +    }
      +  },
      +  "title": "CreateDraftRequest",
      +  "type": "object"
      +}
    • removedInput schema / properties / cc
      Removed value: -{
      -  "description": "Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "title": "DraftCc",
      -  "type": "array"
      -}
    • removedInput schema / properties / client_id
      Removed value: -{
      -  "description": "Client ID of draft.",
      -  "title": "DraftClientId",
      -  "type": "string"
      -}
    • removedInput schema / properties / forward_of
      Removed value: -{
      -  "description": "ID of message being forwarded.",
      -  "title": "DraftForwardOf",
      -  "type": "string"
      -}
    • removedInput schema / properties / html
      Removed value: -{
      -  "description": "HTML body of draft.",
      -  "title": "DraftHtml",
      -  "type": "string"
      -}
    • removedInput schema / properties / in_reply_to
      Removed value: -{
      -  "description": "ID of message being replied to.",
      -  "title": "DraftInReplyTo",
      -  "type": "string"
      -}
    • removedInput schema / properties / labels
      Removed value: -{
      -  "description": "Labels of draft.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "title": "DraftLabels",
      -  "type": "array"
      -}
    • removedInput schema / properties / reply_all
      Removed value: -{
      -  "description": "Reply to all recipients of the original message.",
      -  "title": "DraftReplyAll",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / reply_to
      Removed value: -{
      -  "description": "Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "title": "DraftReplyTo",
      -  "type": "array"
      -}
    • removedInput schema / properties / send_at
      Removed value: -{
      -  "description": "Time at which to schedule send draft.",
      -  "format": "date-time",
      -  "title": "DraftSendAt",
      -  "type": "string"
      -}
    • removedInput schema / properties / subject
      Removed value: -{
      -  "description": "Subject of draft.",
      -  "title": "DraftSubject",
      -  "type": "string"
      -}
    • removedInput schema / properties / text
      Removed value: -{
      -  "description": "Plain text body of draft.",
      -  "title": "DraftText",
      -  "type": "string"
      -}
    • removedInput schema / properties / to
      Removed value: -{
      -  "description": "Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "title": "DraftTo",
      -  "type": "array"
      -}
  2. Changed7 schema fields changed
    • removedInput schema / properties / Authorization
      Removed value: -{
      -  "description": "Bearer authentication",
      -  "type": "string"
      -}
    • addedInput schema / properties / attachments / items / description
      Added value: +"Provide either `content` or `url` for each attachment."
    • changedInput schema / properties / attachments / items / properties / content / description
      Previous value: -"Base64 encoded content of attachment."New value: +"Base64 encoded content of the attachment. The entire request, including the message body and all attachments, is limited to 6 MB."
    • changedInput schema / properties / attachments / items / properties / url / description
      Previous value: -"URL to the attachment."New value: +"URL that AgentMail can download without custom authentication headers or cookies.\nRedirects and pre-signed URLs are supported, and the final response must be a\nsuccessful 2xx response. Keep URL-backed attachments around 30 MB total per message."
    • addedInput schema / properties / forward_of
      Added value: +{
      +  "description": "ID of message being forwarded.",
      +  "title": "DraftForwardOf",
      +  "type": "string"
      +}
    • addedInput schema / properties / reply_all
      Added value: +{
      +  "description": "Reply to all recipients of the original message.",
      +  "title": "DraftReplyAll",
      +  "type": "boolean"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "inbox_id",
      -  "Authorization"
      -]New value: +[
      +  "inbox_id"
      +]
  3. Changed7 schema fields changed
    • addedInput schema / properties / Authorization
      Added value: +{
      +  "description": "Bearer authentication",
      +  "type": "string"
      +}
    • removedInput schema / properties / attachments / items / description
      Removed value: -"Provide either `content` or `url` for each attachment."
    • changedInput schema / properties / attachments / items / properties / content / description
      Previous value: -"Base64 encoded content of the attachment. The entire request, including the message body and all attachments, is limited to 6 MB."New value: +"Base64 encoded content of attachment."
    • changedInput schema / properties / attachments / items / properties / url / description
      Previous value: -"URL that AgentMail can download without custom authentication headers or cookies.\nRedirects and pre-signed URLs are supported, and the final response must be a\nsuccessful 2xx response. Keep URL-backed attachments around 30 MB total per message."New value: +"URL to the attachment."
    • removedInput schema / properties / forward_of
      Removed value: -{
      -  "description": "ID of message being forwarded.",
      -  "title": "DraftForwardOf",
      -  "type": "string"
      -}
    • removedInput schema / properties / reply_all
      Removed value: -{
      -  "description": "Reply to all recipients of the original message.",
      -  "title": "DraftReplyAll",
      -  "type": "boolean"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "inbox_id"
      -]New value: +[
      +  "inbox_id",
      +  "Authorization"
      +]
  4. Changed7 schema fields changed
    • removedInput schema / properties / Authorization
      Removed value: -{
      -  "description": "Bearer authentication",
      -  "type": "string"
      -}
    • addedInput schema / properties / attachments / items / description
      Added value: +"Provide either `content` or `url` for each attachment."
    • changedInput schema / properties / attachments / items / properties / content / description
      Previous value: -"Base64 encoded content of attachment."New value: +"Base64 encoded content of the attachment. The entire request, including the message body and all attachments, is limited to 6 MB."
    • changedInput schema / properties / attachments / items / properties / url / description
      Previous value: -"URL to the attachment."New value: +"URL that AgentMail can download without custom authentication headers or cookies.\nRedirects and pre-signed URLs are supported, and the final response must be a\nsuccessful 2xx response. Keep URL-backed attachments around 30 MB total per message."
    • addedInput schema / properties / forward_of
      Added value: +{
      +  "description": "ID of message being forwarded.",
      +  "title": "DraftForwardOf",
      +  "type": "string"
      +}
    • addedInput schema / properties / reply_all
      Added value: +{
      +  "description": "Reply to all recipients of the original message.",
      +  "title": "DraftReplyAll",
      +  "type": "boolean"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "inbox_id",
      -  "Authorization"
      -]New value: +[
      +  "inbox_id"
      +]
  5. First observed

TDQS

D1.3/5.0
Behavior1/5

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

Annotations declare readOnlyHint=false, destructiveHint=true, and non-idempotent, but the description describes a read-only list retrieval. This is a direct contradiction: an agent trusting the text would expect a safe read while the tool performs a mutating, destructive write. No permissions, side effects, or mutation consequences are disclosed.

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

Conciseness3/5

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

The text is short and front-loaded, and the invariable pricing boilerplate is injected rather than authored. Structure is fine, but the single substantive sentence conveys the wrong operation, so conciseness is not earning anything here.

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

Completeness1/5

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

For a destructive, non-idempotent write tool with a nested CreateDraftRequest body, the description omits everything an agent needs: that it creates a draft, the reply/forward/reply_all semantics, permission requirements, and side effects. It is not merely incomplete but describes an entirely different operation.

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

Parameters2/5

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

Schema coverage is 100%, so the baseline would be 3, but the description's claim of 'optional filters and pagination support' is false — the only parameters are inbox_id and a required draft-creation body. Rather than adding meaning, the text mischaracterizes the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description claims the tool 'retrieves a list of email drafts', but the tool name (post_), the required CreateDraftRequest body, and the write annotations all indicate this creates a draft. The stated purpose is not just vague but actively misleading — it points an agent at an opposite operation.

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

Usage Guidelines1/5

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

No guidance on when to use this vs. siblings such as get_agentmail_inbox_drafts, get_agentmail_drafts, or post_agentmail_inbox_draft_send. The only usage hint ('optional filters and pagination support') describes capabilities the schema does not even have, so it misdirects rather than guides.

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