D

Outlook MCP

Comprehensive MCP server for Microsoft Outlook and Teams via Graph API covering email, calendar, contacts, tasks, teams, chats, and meetings

Overall Score48/100

Score Breakdown

Server Info

Package
outlook-mcp
Registry
npm
Maintainer
Community
Category
Communication
Tags
emailcalendarteamsmicrosoft
Last Scanned
7 Apr 2026

Findings

9 issues

Authentication & Identity

HIGHNo per-request auth - requires instance-per-user

Stdio-only transport. Auth via MS_CLIENT_ID/MS_CLIENT_SECRET env vars for Azure app registration. Uses device code flow initiated via the 'authenticate' tool at runtime. Tokens stored in ~/.outlook-mcp-tokens.json file. Separate OAuth callback server on port 3333. No MCP OAuth spec support. Has a te... For multi-tenant deployment, the platform must spawn a separate server instance per user.

Remediation

Add HTTP/SSE transport to accept per-request Authorization headers, or implement the MCP OAuth spec.

Tool Schema Quality

HIGHRequired fields missing on 2 write operations

Write tools without required field declarations: authenticate, create-draft.

Remediation

Add required arrays to all write/delete tool schemas.

MEDIUMOnly 5 of 60 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

Permission Granularity

MEDIUM3 tools combine read and write operations

26 read tools, 25 write tools, 5 destructive/admin tools (authenticate, delete-event, bulk-delete-emails, delete-channel, delete-online-meeting). 3 mixed tools: list-inbox-emails and search-inbox-emails have overlapping scope with list-emails and search-emails (redundant but not harmful). Descriptions are specific about what each tool does. No way to disable specific tool groups. All tools are always registered.

Remediation

Split into separate read and write tools.

LLM Safety

HIGHTool descriptions contain instructional language

Descriptions include directives that could influence LLM behavior beyond tool selection.

Remediation

Remove instructional language. Descriptions should be purely factual.

MEDIUMOverlapping tool descriptions may cause wrong selection

Similar descriptions between tools could cause the LLM to pick the wrong one.

Remediation

Differentiate descriptions with unique use cases.

Data Exposure

MEDIUM10 list operations lack pagination

No pagination support on any list tool. List tools use a count parameter with hardcoded max of 50. No cursor/pageToken/offset parameters. No field selection - full records returned. This limits the server to small result sets and cannot retrieve historical data beyond the most recent 50 items.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Maintenance & Trust

LOWCommunity-maintained by Asan Stefanski

No official vendor backing.

Remediation

Seek vendor verification.

Tools

60 total
NameDescriptionRisk
aboutReturns information about this Outlook Assistant serverread
authenticateAuthenticate with Microsoft Graph API to access Outlook dataadmin
check-auth-statusCheck the current authentication status with Microsoft Graph APIread
list-eventsLists upcoming events from your calendarread
decline-eventDeclines a calendar eventwrite
create-eventCreates a new calendar eventwrite
cancel-eventCancels a calendar eventwrite
delete-eventDeletes a calendar eventadmin
list-emailsLists recent emails from your inboxread
search-emailsSearch for emails using various criteriaread
read-emailReads the content of a specific emailread
send-emailComposes and sends a new emailwrite
mark-as-readMarks an email as read or unreadwrite
list-attachmentsLists attachments for a specific emailread
download-attachmentDownloads an email attachmentread
reply-to-emailReplies to an emailwrite
forward-emailForwards an email to other recipientswrite
set-email-categoriesSets categories for an emailwrite
set-email-importanceSets importance level for an emailwrite
flag-emailFlags an email with follow-up informationwrite
list-draftsLists email draftsread
create-draftCreates a new email draftwrite
update-draftUpdates an existing email draftwrite
send-draftSends an email draftwrite
list-inbox-emailsLists emails EXCLUSIVELY from your inbox - never searches other folders.read
search-inbox-emailsSearch emails EXCLUSIVELY within your inbox - never searches other folders.read
bulk-delete-emailsDeletes multiple emails at once. Supports batch operations for better performance. Use with caution - this action cannot be undone!admin
bulk-read-emailsReads multiple emails at once using efficient batch processing.read
list-foldersLists mail folders with full hierarchy supportread
create-folderCreates mail folders with unlimited nesting support.write
move-emailsMoves emails between folders with deep hierarchy support.write
list-rulesLists inbox rules in your Outlook accountread
create-ruleCreates a new inbox rulewrite
edit-rule-sequenceChanges the execution order of an existing inbox rulewrite
list-teamsLists teams that the user is a member ofread
get-team-detailsGets detailed information about a specific teamread
list-team-membersLists members of a specific teamread
list-channelsLists channels in a teamread
get-channel-detailsGets detailed information about a specific channelread
create-channelCreates a new channel in a teamwrite
update-channelUpdates an existing channelwrite
delete-channelDeletes a channel from a teamadmin
list-channel-messagesLists messages in a channelread
get-message-detailsGets detailed information about a specific messageread
send-channel-messageSends a message to a channelwrite
reply-to-messageReplies to a message in a channelwrite
list-chatsLists chats that the user is a member ofread
get-chat-detailsGets detailed information about a specific chatread
list-chat-messagesLists messages in a chatread
send-chat-messageSends a message to a chatwrite
create-chatCreates a new chat with specified memberswrite
get-my-presenceGets the current user's presence statusread
get-user-presenceGets the presence status of a specific userread
set-my-presenceSets the current user's presence statuswrite
get-multiple-users-presenceGets the presence status of multiple usersread
list-online-meetingsLists online meetings created by the userread
create-online-meetingCreates a new online meetingwrite
get-online-meetingGets detailed information about a specific online meetingread
update-online-meetingUpdates an existing online meetingwrite
delete-online-meetingDeletes an online meetingadmin

Deploy Outlook MCP securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow