msexchange-mcp
Version:
MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API
49 lines • 1.96 kB
JavaScript
import { z } from 'zod';
import { getGraphClient } from '../graph/graphClient.js';
import accountsConfig from '../config/accountsLoader.js';
export const forwardEmailTool = {
name: 'forward_email',
description: 'Forward an email to other recipients',
parameters: z.object({
user_id: z.string().describe('The user ID or email address'),
message_id: z.string().describe('The email message ID to forward'),
to_recipients: z.array(z.string()).describe('Array of recipient email addresses'),
comment: z.string().optional().describe('Optional comment to add to the forwarded message'),
}),
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 client = await getGraphClient(account.email);
await client
.api(`/users/${account.email}/messages/${params.message_id}/forward`)
.post({
comment: params.comment || '',
toRecipients: params.to_recipients.map(email => ({
emailAddress: { address: email }
})),
});
return {
content: [
{
type: 'text',
text: `Email forwarded successfully to ${params.to_recipients.join(', ')}.`,
},
],
};
}
catch (error) {
return {
content: [
{
type: 'text',
text: `Error forwarding email: ${error instanceof Error ? error.message : 'Unknown error'}`,
},
],
};
}
},
};
//# sourceMappingURL=forwardEmail.js.map