Skip to content

Mail MCP tools

Every tool the Mail MCP server lists, with its inputs, its output and the HTTP route that runs it.

reference~5 minVerified v0.216.0

The Mail MCP server is https://mcp.superagentmail.app/mcp. A read only connection sees only the tools that read, and a call to any other is refused with read_only.

ToolWhat it isEffectOn a read only key
mail_mailboxesYour mailboxesReads mailYes
mail_inboxInboxReads mailYes
mail_threadRead a threadReads mailYes
mail_searchSearch mailReads mailYes
mail_mailbox_createCreate a shared mailboxChanges settings or saves a draftNo
mail_mailbox_renameRename an addressChanges settings or saves a draftNo
mail_webhook_setSet a webhookChanges settings or saves a draftNo
mail_rulesSending rulesReads mailYes
mail_draftSave a draftChanges settings or saves a draftNo
mail_sendSend a messageSends, through the gateNo
mail_replyReply to a messageSends, through the gateNo
mail_forwardForward a messageSends, through the gateNo

The server checks every call against the schemas below and refuses what they do not allow with invalid_arguments. A model may send null for an optional argument. The HTTP API takes the same snake case names.

mailbox_id is optional everywhere: leave it out to use the agent's own mailbox, or the call fails with no_mailbox. Reuse an idempotency_key to retry a call that failed on the wire, and the message is made once.

mail_mailboxes

FieldTypeNotes
RouteGET /v1/mailboxes. No input.
Output mailboxesarrayEach has id, kind (agent or shared), localPart, address, status (open or closed), gateMode (review, filtered or none), and when set webhookUrl and webhookVersion.
Output noticestring or nullWhy the agent has no address yet.

mail_inbox

FieldTypeNotes
RouteGET /v1/inbox. Threads, newest first.
mailbox_idstringOptional.
limitinteger1 to 50, default 20.
beforestringAn ISO timestamp. Pass the lastMessageAt of the oldest thread to page back.
Output threadsarrayEach has id, subject, correspondents, flagged, startedByPerson, lastMessageAt, messageCount and latest (direction, from, snippet, machine, injectionScore).

mail_thread

FieldTypeNotes
RouteGET /v1/threads/:id.
thread_idstringRequired. From mail_inbox or mail_search.
Output threadobjectThe thread fields above plus mailboxId.
Output noticestringA line to pass on.
Output messagesarrayEach has id, direction, from, to, cc, subject, at, machine, auth, injection, text, truncated and attachments (filename, mimeType, size). auth and injection are the screening results.
FieldTypeNotes
RouteGET /v1/search. The query is matched as one exact phrase in the subject, sender address or snippet, ignoring case. No operators or wildcards.
querystringRequired. 2 to 200 characters once trimmed.
mailbox_idstringOptional. Without it, the agent's mailbox and the shared ones are searched.
limitinteger1 to 50, default 20.
Output resultsarrayNewest first. Each has threadId, mailboxId, messageId, createdAt and when known direction, from, subject, snippet.

mail_rules

FieldTypeNotes
RouteGET /v1/rules. Read only: a person changes the rules in the dashboard.
mailbox_idstringOptional.
OutputobjectmailboxId, gateMode, allowList (addresses and domains), allowedModes and when known plan.

mail_send

FieldTypeNotes
RoutePOST /v1/send. A new message from the agent's address.
toarray of stringsRequired. 1 to 20 addresses.
ccarray of stringsUp to 20, and 20 recipients in all.
subjectstringRequired. 1 to 998 characters.
textstringRequired. Plain text, 1 to 100,000 characters.
thread_idstringA thread of this mailbox to continue.
mailbox_id, idempotency_keystringOptional. The key is 1 to 200 characters.
OutputobjectThe send answer.

mail_reply

FieldTypeNotes
RoutePOST /v1/reply. Answers a received message, in its thread, to its sender. A reply to machine mail is always held.
message_idstringRequired. From mail_thread.
textstringRequired. 1 to 100,000 characters.
ccarray of stringsUp to 20.
artifactstringA Super Artifacts link from this workspace, shared under the text instead of an attachment.
mailbox_id, idempotency_keystringOptional.
OutputobjectThe send answer.

mail_forward

FieldTypeNotes
RoutePOST /v1/forward. Attachments are not forwarded.
thread_id, message_idstringRequired. The message to forward and its thread.
toarray of stringsRequired. 1 to 20.
ccarray of stringsUp to 20.
notestringUp to 20,000 characters, shown above the message.
mailbox_id, idempotency_keystringOptional.
OutputobjectThe send answer.

mail_draft

FieldTypeNotes
RoutePOST /v1/drafts. Saves a message for a person to review. Nothing is sent.
InputThose of mail_send.
OutputobjectThe send answer.

The send answer

Only status and outboundId are always present.

OutputTypeMeaning
statusstringsent, pending, held, drafted, failed or rejected. Over HTTP the last two are errors.
outboundIdstringThe id of this message.
threadIdstring or nullIts thread.
reasonsarrayWhy it is held. See Gate modes.
duplicatebooleanAn earlier call with the same idempotency_key made it.
noticestringA line for the agent to pass on.
reviewUrlstringWhere a person approves a hold or a draft.
errorstring or nullWhat went wrong when failed or rejected.

mail_mailbox_create

FieldTypeNotes
RoutePOST /v1/mailboxes. A shared mailbox. It needs Team, room left, and an agent a workspace owner connected.
local_partstringRequired. The name before the @.
domainstring4 to 253 characters. A verified custom domain, or the Mail domain. Only an owner's agent can use a custom domain.
Output mailboxobjectOne mailbox, as above.

mail_mailbox_rename

FieldTypeNotes
RoutePATCH /v1/mailboxes/:id, where the path fills mailbox_id. People who wrote to the old address bounce afterwards.
local_partstringRequired. The new name.
mailbox_idstringOptional.
domainstringMove to a verified custom domain, or back to the Mail domain by naming it.
Output mailboxobjectOne mailbox, as above.

mail_webhook_set

FieldTypeNotes
RoutePUT /v1/webhook. Sends a signed POST for each new message.
urlstring or nullRequired. https, port 443, a public host name. null clears it.
mailbox_idstringOptional.
OutputobjectmailboxId, url and version. With null, cleared is true. Otherwise also secret, shown once, secretShownOnce, and signature, a sentence on how requests are signed. Calling again makes a new secret and retires the old. See Webhook signing.