Skip to main content
Glama

delete_messages

Remove specific emails from your iCloud mailbox by providing message IDs to clean up your inbox and manage email storage.

Instructions

Delete messages from a mailbox

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mailboxNoMailbox name (default: INBOX)INBOX
messageIdsYesArray of message IDs to delete

Implementation Reference

  • MCP tool handler for 'delete_messages' that extracts arguments, calls the iCloudMailClient.deleteMessages method, and returns the result as text content.
    case 'delete_messages': { if (!mailClient) { throw new McpError( ErrorCode.InvalidRequest, 'iCloud Mail not configured. Please set ICLOUD_EMAIL and ICLOUD_APP_PASSWORD environment variables.' ); } const messageIds = args?.messageIds as string[]; const mailbox = (args?.mailbox as string) || 'INBOX'; const result = await mailClient.deleteMessages(messageIds, mailbox); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
  • Input schema definition for the 'delete_messages' tool, specifying required messageIds array and optional mailbox.
    { name: 'delete_messages', description: 'Delete messages from a mailbox', inputSchema: { type: 'object', properties: { messageIds: { type: 'array', items: { type: 'string' }, description: 'Array of message IDs to delete', }, mailbox: { type: 'string', description: 'Mailbox name (default: INBOX)', default: 'INBOX', }, }, required: ['messageIds'], }, },
  • Helper method in iCloudMailClient that deletes all messages in the specified mailbox by adding the \\Deleted flag and expunging (ignores provided messageIds).
    async deleteMessages( _messageIds: string[], mailbox: string = 'INBOX' ): Promise<{ status: string; message: string }> { return new Promise((resolve) => { this.imap.openBox(mailbox, false, (err: Error) => { if (err) { resolve({ status: 'error', message: `Failed to open mailbox '${mailbox}': ${err.message}`, }); return; } this.imap.search(['ALL'], (err: Error, results: number[]) => { if (err) { resolve({ status: 'error', message: `Failed to search messages: ${err.message}`, }); return; } if (!results || results.length === 0) { resolve({ status: 'error', message: 'No messages found in mailbox', }); return; } this.imap.addFlags(results, ['\\Deleted'], (err: Error) => { if (err) { resolve({ status: 'error', message: `Failed to mark messages for deletion: ${err.message}`, }); return; } this.imap.expunge((err: Error) => { if (err) { resolve({ status: 'error', message: `Failed to expunge deleted messages: ${err.message}`, }); return; } resolve({ status: 'success', message: `Successfully deleted ${results.length} messages from '${mailbox}'`, }); }); }); }); }); }); }

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/Racimy/iMail-mcp'

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