msexchange-mcp
Version:
MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API
55 lines • 2.36 kB
JavaScript
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