Labsco
MCP SERVER

MCP Microsoft Office Bridge

by Aanerud

Real Microsoft 365 work — mail, calendar, Excel workbooks, Word, PowerPoint, Teams — through Graph, with each agent signed in as its own tenant user.

Office Suites & Cloud File Storage
Summary
Every call hits the real tenant, which is the point and also the thing to plan for.

There are no mocks here: mail is sent, meetings are booked, workbook cells are written — which is exactly what you want on a test tenant that static fixtures never exercise. Two practical notes: without admin consent you still get Mail, Calendar, Files, Excel, Word, PowerPoint, Contacts, To-Do, Chat and basic channels, and since Claude Desktop caps out around 55 tools per server, the project's own config splits the 117 tools across three entries pointed at the same backend.

What it is

A server that connects any MCP client to Microsoft 365 through the Graph API, with a local adapter process translating MCP to HTTP. Every agent authenticates as a distinct tenant user, so operations run against real data with that user's permissions.

What you get
  • 117 tools across 12 modules: Mail, Calendar, Files, Excel, Word, PowerPoint, Teams, Contacts, To-Do, Groups, People and Search
  • Excel gets 30 tools that work on workbooks in place through the Graph workbook API — ranges, formatting, tables, sorting, filtering, and `callWorkbookFunction` for spreadsheet functions
  • Word and PowerPoint: create documents and decks from structured content, read them back as HTML or per-slide text, and convert either to PDF
  • Teams covers chats, channels, messages, channel files, online meetings, and meeting transcripts
  • One server serves a whole team, each user's data isolated from the others
  • `MCP_MODULES` filters which modules an adapter exposes, so you can split the surface across several client entries
Requirements

Node.js 18+, an Azure app registration, and a Microsoft 365 account. The app needs 18 delegated Graph permissions; 12 work without admin consent and 6 require a tenant administrator. Set `MICROSOFT_CLIENT_ID` and `MICROSOFT_TENANT_ID`, add http://localhost:3000/api/auth/callback as the redirect URI, then sign in through the local web UI and paste the generated token into your client as `MCP_BEARER_TOKEN` alongside `MCP_SERVER_URL`.

Setup effort

One command plus a key — npx -y mcp-web, then supply credentials