Office Outlook MCP server
Outlook / Microsoft 365 for Claude — mail, calendar, contacts and tasks, with confirm-gated sending
0 stars
Reviews
Write oneNobody has reviewed Office Outlook yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Office Outlook tools (17, 3 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
outlook_create_draftwrite actionCreate a draft message in the Drafts folder without sending it. Requires confirm:true. Returns the created draft, which can be reviewed and sent from Outlook.
outlook_create_eventwrite actionCreate a calendar event. Requires confirm:true. `timeZone` takes a WINDOWS zone name such as "Eastern Standard Time", not an IANA name.
outlook_get_eventGet one calendar event in full, including attendees and their responses.
outlook_get_mailbox_settingsGet mailbox settings: time zone, working hours, language, and automatic-replies (out-of-office) configuration.
outlook_get_messageGet one message including its body. The body is requested as plain text rather than HTML (measured ~9x smaller and far easier to read); pass view:"raw" to get Outlook's untouched record.
outlook_get_profileGet the signed-in mailbox's identity (email address, display name, alias). The cheapest call that proves the credential works.
outlook_list_attachmentsList a message's attachments (name, size, content type). Metadata only \u2014 this deliberately does not download bytes.
outlook_list_calendarsList the calendars in the mailbox, for picking one to read or write against.
outlook_list_contactsList saved contacts from the mailbox address book.
outlook_list_eventsList calendar events in a date window. This uses the calendar VIEW, which expands recurring series into their individual occurrences \u2014 the right tool for "what is on my schedule". Times are returned in `timeZone` when given.
outlook_list_foldersList mail folders with unread and total counts. Use this to discover folder ids before listing messages; the well-known names (
outlook_list_messagesList messages in a folder, newest first. Defaults to the inbox. Use `unreadOnly` for a triage view. Bodies are NOT included \u2014 call outlook_get_message for one. Note `search` and `unreadOnly` cannot be combined (the API rejects $search with $filter); pass `search` alone to search the whole mailbox.
outlook_list_peopleList people ranked by relevance to the user \u2014 colleagues and frequent correspondents, drawn from mail traffic rather than the saved address book. Better than outlook_list_contacts for resolving "who is X" in a work mailbox.
outlook_list_tasksList Outlook tasks with status and due dates.
outlook_mark_readMark a message read or unread. Requires confirm:true. The result is verified by re-reading the message \u2014 a 2xx alone is not proof it persisted.
outlook_move_messageMove a message to another folder (e.g. "archive", "deleteditems", or a folder id from outlook_list_folders). Requires confirm:true. Moving assigns a NEW message id, which is returned.
outlook_send_mailwrite actionSend an email from the signed-in mailbox. Requires confirm:true \u2014 without it this makes no network call and returns a preview of exactly what would be sent.
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan20 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- mediumeval / new Function used
exec.evaldist/bundle.js: …Code, sch); const validate2 = new Function(`${names_1.default.self}`, `${names_1.de…
Install directly
Runs npx -y @chrischall/office-outlook-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add office-outlook-mcp -- npx -y @chrischall/office-outlook-mcp
Office Outlook: common questions
- Is Office Outlook MCP server safe?
- Mostly: it is graded B (75/100). Read the Office Outlook safety report
- How do I install Office Outlook?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Office Outlook need an API key?
- Yes. The registry entry asks for
OUTLOOK_ACCESS_TOKEN. - Is Office Outlook maintained?
- The last commit was in the last day (2026-09-20). The latest release is v0.1.1.
- What can I use instead of Office Outlook?
- Servers from other publishers that do the same job: Outlook Assistant MCP server, Outlook MCP server and Outlook MCP server. Compare all Office Outlook alternatives.
Alternatives to Office Outlook
Same job from other publishers: the closest match first, then the best rated.
- Outlook AssistantMicrosoft Outlook MCP server — 22 tools for email, calendar, contacts, and mailbox management.not reviewedGrowingA
- OutlookOutlook & OneDrive MCP: personal & enterprise tools for mail, calendar, contacts, tasks, filesnot reviewedGrowingA
- Outlook MCPMicrosoft Outlook personal accounts: mail, calendar, contacts, to-do, drafts (62 tools).not reviewedGrowingA
- IrisMicrosoft 365 mail MCP: drafts into Outlook; sending off by default, opt-in via IRIS_ENABLE_SEND.not reviewedGrowingA
- OutlookOutlook mail and OneDrive files via Microsoft Graph — read, search, send and organize.not reviewedGrowingB