Outlook Integration
Manage Outlook mail, calendars, and contacts
The Outlook integration provides access to manage Outlook mail, calendars, and contacts through the Integrate MCP server.
Installation
The Outlook integration is included with the SDK:
import { outlookIntegration } from "integrate-sdk/server";Setup
1. Create an Outlook OAuth App
- Go to Azure Portal — App Registrations
- Create a new OAuth application
- Configure your redirect URI
- Note your Client ID and Client Secret
2. Configure the Integration on Your Server
Add the Outlook integration to your server configuration. The integration automatically reads OUTLOOK_CLIENT_ID and OUTLOOK_CLIENT_SECRET from your environment variables:
import { createMCPServer, outlookIntegration } from "integrate-sdk/server";
export const { client: serverClient } = createMCPServer({
apiKey: process.env.INTEGRATE_API_KEY,
integrations: [
outlookIntegration({
}),
],
});You can override the environment variables by passing explicit values:
outlookIntegration({
clientId: process.env.CUSTOM_OUTLOOK_ID,
clientSecret: process.env.CUSTOM_OUTLOOK_SECRET,
});3. Client-Side Usage
The default client automatically includes all integrations. You can use it directly:
import { client } from "integrate-sdk";
await client.authorize("outlook");
const result = await client.outlook.listMessages({});
console.log(result);If you're using a custom client, add the integration to the integrations array:
import { createMCPClient, outlookIntegration } from "integrate-sdk";
const customClient = createMCPClient({
integrations: [outlookIntegration()],
});Configuration Options
export interface OutlookIntegrationConfig {
/** Microsoft OAuth client ID (defaults to OUTLOOK_CLIENT_ID env var) */
clientId?: string;
Tools
outlook_accept_event
Accept a calendar event invitation
export interface OutlookAcceptEventParams {
/** Event ID to accept */
event_id: string;
outlook_create_draft
Create a draft message (not sent)
export interface OutlookCreateDraftParams {
/** Email subject */
subject: string;
outlook_create_event
Create a new calendar event
export interface OutlookCreateEventParams {
/** Event subject/title */
subject: string;
outlook_decline_event
Decline a calendar event invitation
export interface OutlookDeclineEventParams {
/** Event ID to decline */
event_id: string;
outlook_delete_event
Delete a calendar event
export interface OutlookDeleteEventParams {
/** Event ID to delete */
event_id: string;
outlook_delete_message
Delete a message permanently
export interface OutlookDeleteMessageParams {
/** Message ID to delete */
message_id: string;
outlook_find_meeting_times
Find available meeting times for a set of attendees
export interface OutlookFindMeetingTimesParams {
/** Comma-separated attendee email addresses */
attendees: string;
outlook_forward_message
Forward a message to one or more recipients
export interface OutlookForwardMessageParams {
/** Message ID to forward */
message_id: string;
outlook_get_contact
Get a specific contact by ID
export interface OutlookGetContactParams {
/** Contact ID */
contact_id: string;
outlook_get_event
Get a specific calendar event by ID
export interface OutlookGetEventParams {
/** Event ID */
event_id: string;
outlook_get_message
Get a specific message by ID
export interface OutlookGetMessageParams {
/** Message ID */
message_id: string;
outlook_get_schedule
Get free/busy schedule for a set of users or resources
export interface OutlookGetScheduleParams {
/** Comma-separated email addresses to fetch schedules for */
schedules: string;
outlook_list_calendars
List all calendars for the authenticated user
No parameters.
outlook_list_contacts
List contacts in the address book
export interface OutlookListContactsParams {
/** Number of contacts to return */
top?: number;
outlook_list_events
List calendar events
export interface OutlookListEventsParams {
/** Number of events to return */
top?: number;
outlook_list_mail_folders
List mail folders in the mailbox
export interface OutlookListMailFoldersParams {
/** Number of folders to return */
top?: number;
outlook_list_messages
List messages in the mailbox
export interface OutlookListMessagesParams {
/** Number of messages to return */
top?: number;
outlook_mark_message_read
Mark a message as read or unread
export interface OutlookMarkMessageReadParams {
/** Message ID */
message_id: string;
outlook_move_message
Move a message to another folder
export interface OutlookMoveMessageParams {
/** Message ID to move */
message_id: string;
outlook_reply_all_message
Reply all to a message
export interface OutlookReplyAllMessageParams {
/** Message ID to reply all to */
message_id: string;
outlook_reply_message
Reply to a message
export interface OutlookReplyMessageParams {
/** Message ID to reply to */
message_id: string;
outlook_search_messages
Search messages by keyword query
export interface OutlookSearchMessagesParams {
/** Search query string */
query: string;
outlook_send_message
Send a new email message
export interface OutlookSendMessageParams {
/** Comma-separated recipient email addresses */
to: string;
outlook_tentatively_accept_event
Tentatively accept a calendar event invitation
export interface OutlookTentativelyAcceptEventParams {
/** Event ID to tentatively accept */
event_id: string;
outlook_update_event
Update an existing calendar event
export interface OutlookUpdateEventParams {
/** Event ID to update */
event_id: string;
Notes
- Category: Communication
- Authentication mode: OAuth