msexchange-mcp
Version:
MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API
56 lines • 2.35 kB
JavaScript
import { z } from 'zod';
import { getGraphClient } from '../graph/graphClient.js';
import accountsConfig from '../config/accountsLoader.js';
export const getMailboxProfileTool = {
name: 'get_mailbox_profile',
description: 'Get mailbox profile information for a user',
parameters: z.object({
user_id: z.string().describe('The user ID or email address'),
}),
execute: async (params) => {
try {
// Find account in config
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);
// Get user profile
const user = await client.api('/me').get();
// Get mailbox settings
const mailboxSettings = await client.api('/me/mailboxSettings').get();
return {
content: [
{
type: 'text',
text: JSON.stringify({
id: user.id,
displayName: user.displayName,
mail: user.mail,
userPrincipalName: user.userPrincipalName,
jobTitle: user.jobTitle,
officeLocation: user.officeLocation,
mailboxSettings: {
timeZone: mailboxSettings.timeZone,
automaticRepliesSetting: mailboxSettings.automaticRepliesSetting,
language: mailboxSettings.language?.displayName,
workingHours: mailboxSettings.workingHours,
},
}, null, 2),
},
],
};
}
catch (error) {
return {
content: [
{
type: 'text',
text: `Error getting mailbox profile: ${error instanceof Error ? error.message : 'Unknown error'}`,
},
],
};
}
},
};
//# sourceMappingURL=getMailboxProfile.js.map