UNPKG

msexchange-mcp

Version:

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

63 lines (60 loc) 2.38 kB
import { z } from 'zod'; import { MailService } from '../mail/mailService.js'; import accountsConfig from '../config/accountsLoader.js'; export const listFoldersTool = { name: 'list_folders', description: `List all mail folders for a user. Shows folder structure including: - Folder IDs (needed for other operations) - Folder names and hierarchy - Unread and total item counts - Child folder information Use this to: - Find folder IDs for move_email operations - Check existing folder structure before creating new ones - Monitor unread counts across folders - Understand mailbox organization The response includes standard folders (Inbox, Sent, Drafts, etc.) and any custom folders.`, parameters: z.object({ user_id: z.string().describe('The user ID or email address'), }), 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 folders = await mailService.listFolders(); return { content: [ { type: 'text', text: JSON.stringify({ folders: folders.map(folder => ({ id: folder.id, displayName: folder.displayName, parentFolderId: folder.parentFolderId, childFolderCount: folder.childFolderCount, unreadItemCount: folder.unreadItemCount, totalItemCount: folder.totalItemCount, })), count: folders.length, }, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error listing folders: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], }; } }, }; //# sourceMappingURL=listFolders.js.map