batch_delete_messages
Delete multiple Gmail messages at once by specifying their IDs, helping you manage your inbox efficiently by removing unwanted emails in bulk.
Instructions
Delete multiple messages
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | The IDs of the messages to delete |
Implementation Reference
- src/index.ts:501-511 (registration)Registration of the 'batch_delete_messages' tool using server.tool(), including inline schema definition and handler function that performs batch deletion via Gmail API's users.messages.batchDelete.server.tool("batch_delete_messages", "Delete multiple messages", { ids: z.array(z.string()).describe("The IDs of the messages to delete") }, async (params) => { return handleTool(config, async (gmail: gmail_v1.Gmail) => { const { data } = await gmail.users.messages.batchDelete({ userId: 'me', requestBody: { ids: params.ids } }) return formatResponse(data) }) }
- src/index.ts:506-511 (handler)The handler function for 'batch_delete_messages' tool. It invokes handleTool which authenticates and calls the Gmail API to batch delete messages by their IDs.async (params) => { return handleTool(config, async (gmail: gmail_v1.Gmail) => { const { data } = await gmail.users.messages.batchDelete({ userId: 'me', requestBody: { ids: params.ids } }) return formatResponse(data) }) }
- src/index.ts:503-505 (schema)Zod schema for the input parameters of the 'batch_delete_messages' tool, requiring an array of message IDs.{ ids: z.array(z.string()).describe("The IDs of the messages to delete") },
- src/index.ts:49-65 (helper)Shared helper function 'handleTool' used by 'batch_delete_messages' and other tools for OAuth authentication, client creation, and executing the Gmail API call.const handleTool = async (queryConfig: Record<string, any> | undefined, apiCall: (gmail: gmail_v1.Gmail) => Promise<any>) => { try { const oauth2Client = queryConfig ? createOAuth2Client(queryConfig) : defaultOAuth2Client if (!oauth2Client) throw new Error('OAuth2 client could not be created, please check your credentials') const credentialsAreValid = await validateCredentials(oauth2Client) if (!credentialsAreValid) throw new Error('OAuth2 credentials are invalid, please re-authenticate') const gmailClient = queryConfig ? google.gmail({ version: 'v1', auth: oauth2Client }) : defaultGmailClient if (!gmailClient) throw new Error('Gmail client could not be created, please check your credentials') const result = await apiCall(gmailClient) return result } catch (error: any) { return `Tool execution failed: ${error.message}` } }