# Microsoft 365 MCP server

> Work with Outlook mail and calendar, OneDrive, Excel, OneNote, To Do, Teams and SharePoint through the Microsoft Graph API.

- Listing: https://mcp.tc/i/microsoft-365
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: OAuth sign-in
- Category: [Productivity & Projects](https://mcp.tc/c/productivity)
- Vendor: Softeria
- Repository: <https://github.com/Softeria/ms-365-mcp-server>
- Package: npm `@softeria/ms-365-mcp-server`

## About

A community server that maps Microsoft Graph endpoints to MCP tools. Personal accounts get Outlook mail and calendar, OneDrive files, Excel, OneNote, To Do, Planner, contacts, user profile and search. Organization mode adds Teams and chats, online meetings, SharePoint sites and lists, shared mailboxes and presence.

It runs locally over stdio with npx and needs Node.js 20 or newer. On first use you sign in with your Microsoft account through a device-code flow. Add the --org-mode flag for work or school tenants. Read-only mode, tool presets, tool filtering and scope allowlists limit what the assistant can do. This is not an official Microsoft product.

## What it can do

- Read and manage Outlook mail and calendar events
- Browse and download OneDrive files
- Work with Excel, OneNote, To Do and Planner
- Access Teams chats, meetings and transcripts in org mode
- Read SharePoint sites and lists in org mode
- Restrict access with read-only mode, presets and scope allowlists

## Example prompts

- "Summarize my unread Outlook emails from today"
- "What meetings do I have on my calendar tomorrow?"
- "List the files in my OneDrive Documents folder"
- "Show my open To Do tasks due this week"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio microsoft-365 -- npx -y @softeria/ms-365-mcp-server
```

2. Start Claude Code and type `/mcp`. **microsoft-365** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "microsoft-365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=microsoft-365&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzb2Z0ZXJpYS9tcy0zNjUtbWNwLXNlcnZlciJdfQ%3D%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "microsoft-365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=microsoft-365&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40softeria%2Fms-365-mcp-server%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"microsoft-365","type":"stdio","command":"npx","args":["-y","@softeria/ms-365-mcp-server"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "microsoft-365": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "microsoft-365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add microsoft-365 -- npx -y @softeria/ms-365-mcp-server
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.microsoft-365]
command = "npx"
args = ["-y", "@softeria/ms-365-mcp-server"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add microsoft-365 npx -- -y @softeria/ms-365-mcp-server
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "microsoft-365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Details

- Server version: 0.158.0
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/microsoft-365 (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
