Labsco
MCP SERVER

Microsoft 365

by softeria

Read and write your Microsoft 365 — Outlook mail and calendar, OneDrive files, Excel workbooks, To Do, Planner and OneNote — through one server.

Office Suites & Cloud File StorageVerified
Summary
It replaces a drawer full of separate Microsoft integrations with one sign-in.

The point of a tool surface this wide is that one request can cross products: find the thread in Outlook, pull the attachment out of OneDrive, append the row to the Excel sheet, put the follow-up on the calendar. The presets are what make it usable in practice — load only mail, or only Teams, and both the context cost and the consent you grant shrink to match.

What it is

A local MCP server over Microsoft Graph, where each tool maps one-to-one to a Graph endpoint. It signs in to one or more Microsoft accounts, then exposes mail, calendar, contacts, OneDrive, Excel, OneNote, To Do, Planner, change-notification subscriptions, and a batching tool that packs up to 20 Graph requests into one HTTP call.

What you get
  • Sign in and hold more than one account at a time — login, verify-login, list-accounts, select-account, remove-account — with the account named per call instead of one server process per person
  • Outlook mail end to end: list-mail-messages with $search and $filter, get-mail-message, create-draft-email, create-reply-draft, reply-mail-message, forward-mail-message, move-mail-message and send-mail, plus attachments, folders and message rules
  • The calendar read and changed: get-calendar-view expands recurring instances across a date range, and create-calendar-event, update-calendar-event, accept-calendar-event, decline-calendar-event and cancel-calendar-event cover the invitation lifecycle
  • OneDrive files moved around — search-onedrive-files, upload-file-content, copy-drive-item, create-onedrive-folder, create-drive-item-share-link — with create-upload-session for files past the 4MB inline limit
  • Excel workbooks edited in place: update-excel-range sets values, formulas and number formats on any range, add-excel-table-rows and update-excel-table-row work on formal tables, and create-excel-chart, sort-excel-range and the format-excel-range tools handle presentation
  • Tasks and notes kept moving: To Do lists and tasks, Planner plans, buckets and tasks, and OneNote notebooks, sections and pages
  • Bytes fetched from whatever a call returns — download-bytes, download-bytes-to-file and get-download-url for a pre-authenticated link
  • graph-batch, which sends up to 20 Graph requests as a single call and returns the responses to match by id
  • Teams and chats, online meetings with transcripts, recordings and attendance reports, SharePoint sites and lists, shared mailboxes and calendars, user management and presence — all behind the --org-mode flag, and only for work or school accounts
  • A smaller tool surface on demand: --preset takes mail, calendar, files, personal, work, excel, contacts, tasks, onenote, search, users, outlook, onedrive, teams, teams-write or all, --enabled-tools takes a pattern, and --discovery loads tools only when the model reaches for them
  • --read-only for a session that cannot write anything, and the teams-write preset as its mirror image: send messages, read none
Requirements

Node.js 20 or newer, and a Microsoft account authorized through the server's own login tool — a device code flow by default, OAuth when it runs over HTTP. Teams, SharePoint and shared mailboxes need --org-mode and a work or school account; a personal account cannot reach them. Permissions are requested from Graph according to which tools are enabled, so a preset narrows the consent as well as the tool list, and --list-permissions prints exactly what a given configuration will ask for. --cloud china switches to the 21Vianet endpoints. MIT licensed.

Setup effort

One command — npx @softeria/ms-365-mcp-server --login