UNPKG

msexchange-mcp

Version:

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

76 lines 2.73 kB
import { z } from 'zod'; import { MailService } from '../mail/mailService.js'; import accountsConfig from '../config/accountsLoader.js'; export const markAsReadTool = { name: 'mark_as_read', description: 'Mark an email as read', parameters: z.object({ user_id: z.string().describe('The user ID or email address'), message_id: z.string().describe('The email message ID'), }), 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); await mailService.updateEmail(params.message_id, { isRead: true }); return { content: [ { type: 'text', text: 'Email marked as read successfully.', }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error marking email as read: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], }; } }, }; export const markAsUnreadTool = { name: 'mark_as_unread', description: 'Mark an email as unread', parameters: z.object({ user_id: z.string().describe('The user ID or email address'), message_id: z.string().describe('The email message ID'), }), 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); await mailService.updateEmail(params.message_id, { isRead: false }); return { content: [ { type: 'text', text: 'Email marked as unread successfully.', }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error marking email as unread: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], }; } }, }; //# sourceMappingURL=markAsRead.js.map