UNPKG

msexchange-mcp

Version:

MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API

55 lines 2.36 kB
import { z } from 'zod'; import { MailService } from '../mail/mailService.js'; import accountsConfig from '../config/accountsLoader.js'; export const createFolderTool = { name: 'create_folder', description: 'Create a new mail folder in the user\'s mailbox', parameters: z.object({ user_id: z.string().describe('The user ID or email address'), folder_name: z.string().describe('Name of the new folder to create'), parent_folder_id: z.string().optional().describe('ID of parent folder (optional, defaults to Inbox parent)'), }), execute: async (params) => { try { const account = accountsConfig.accounts.find(acc => acc.id === params.user_id || acc.email === params.user_id); if (!account) { throw new Error(`User not found: ${params.user_id}`); } const mailService = new MailService(account.email); const newFolder = await mailService.createFolder({ displayName: params.folder_name, parentFolderId: params.parent_folder_id, }); return { content: [ { type: 'text', text: JSON.stringify({ success: true, folder: { id: newFolder.id, displayName: newFolder.displayName, parentFolderId: newFolder.parentFolderId, childFolderCount: newFolder.childFolderCount || 0, unreadItemCount: newFolder.unreadItemCount || 0, totalItemCount: newFolder.totalItemCount || 0, }, message: `Successfully created folder '${params.folder_name}'`, }, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error creating folder: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], }; } }, }; //# sourceMappingURL=createFolder.js.map