msexchange-mcp
Version:
MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API
57 lines • 2.44 kB
JavaScript
import { z } from 'zod';
import { MailService } from '../mail/mailService.js';
import accountsConfig from '../config/accountsLoader.js';
export const getEmailByIdTool = {
name: 'get_email_by_id',
description: 'Get a specific email by its ID',
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);
const email = await mailService.getEmailById(params.message_id);
return {
content: [
{
type: 'text',
text: JSON.stringify({
id: email.id,
subject: email.subject,
from: email.from?.emailAddress,
to: email.toRecipients?.map(r => r.emailAddress),
cc: email.ccRecipients?.map(r => r.emailAddress),
bcc: email.bccRecipients?.map(r => r.emailAddress),
receivedDateTime: email.receivedDateTime,
sentDateTime: email.sentDateTime,
hasAttachments: email.hasAttachments,
importance: email.importance,
isRead: email.isRead,
isDraft: email.isDraft,
body: email.body,
categories: email.categories,
conversationId: email.conversationId,
attachments: email.attachments,
}, null, 2),
},
],
};
}
catch (error) {
return {
content: [
{
type: 'text',
text: `Error getting email: ${error instanceof Error ? error.message : 'Unknown error'}`,
},
],
};
}
},
};
//# sourceMappingURL=getEmailById.js.map