Microsoft 365 MCP Server
An MCP server that enables you to execute Microsoft 365 CLI commands in natural language to manage various areas of Microsoft 365, including Entra ID, OneDrive, OneNote, Outlook, Planner, Power Apps, Power Automate, SharePoint Online, Teams, and much more.
Get this MCP server
An MCP server that enables you to execute Microsoft 365 CLI commands in natural language to manage various areas of Microsoft 365, including Entra ID, OneDrive, OneNote, Outlook, Planner, Power Apps, Power Automate, SharePoint Online, Teams, and much more.
Installation
NPX
npx -y @pnp/cli-microsoft365-mcp-server@latest
From Source Code
npm install
npm run build
npm run start
Configuration
VS Code
{
"servers": {
"CLI for Microsoft 365 MCP Server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@pnp/cli-microsoft365-mcp-server@latest"
]
}
}
}
Claude Desktop
{
"mcpServers": {
"CLI-Microsoft365": {
"command": "npx",
"args": ["-y", "@pnp/cli-microsoft365-mcp-server@latest"]
}
}
}
Available Tools
| Tool | Description |
|---|---|
m365GetCommands |
Retrieves all Microsoft 365 CLI commands for use with the Model Context Protocol when selecting the correct command... |
m365GetCommandDocs |
Retrieves documentation for a specified Microsoft 365 CLI command for use with the Model Context Protocol... |
m365RunCommand |
Executes a specified Microsoft 365 CLI command for use with the Model Context Protocol when executing... |
Capabilities
- Execute Microsoft 365 CLI commands in natural language
- Combine multiple commands to perform complex queries
- Manage SharePoint Online sites, lists, and content
- Create and manage Microsoft Teams and channels
- Manage Power Platform solutions and Power Automate flows
- Manage Planner plans, buckets, and tasks
- Work with Entra ID, OneDrive, OneNote, Outlook, and Viva Engage
- Support for complex multi-step operations
Usage Examples
Add a new list to this site with title "awesome ducks". Then add new columns to that list including them in the default view. The first should be a text description columns and the second one should be a user column. Then add 3 items to this list with some funny jokes about docs added in the description column and adding my user in the user column. use emojis 🙂
Create a new Team on Teams with name "Awesome Ducks" and in the General channel add a welcome post
can you check if I have HoursReportingReminder flow and if so disable it
can you create a new plan in planner to manage work for the awesome ducks. I need some sample buckets and tasks to get started
Notes
Requires Node.js version 20.x or higher and a globally installed Microsoft 365 CLI (npm i -g @pnp/cli-microsoft365). Initial setup requires authentication via m365 login and configuration with specific CLI settings. Works best with Claude Sonnet 4 or Claude Sonnet 3.7. The server uses the existing Microsoft 365 CLI authentication context.