M365 Copilot MCP Server

M365 Copilot MCP Server

Integrates with Microsoft 365 Copilot APIs to enable retrieval of content from SharePoint and OneDrive, document search across M365, and conversational AI interactions with your Microsoft 365 data while respecting access permissions.

Category
Visit Server

README

Microsoft 365 Copilot MCP Server

CI npm version License: MIT

Note: This is an unofficial MCP server, but developed by Microsoft engineers, integrating the latest Microsoft 365 Copilot APIs. We welcome your feedback and contributions!

Connect your AI assistant to Microsoft 365 through the Model Context Protocol (MCP). This server enables AI tools to access your SharePoint documents, OneDrive files, emails, Teams conversations, and more - all while respecting your organization's access controls.

Overview

The m365-copilot-mcp server provides three powerful capabilities for AI assistants:

Capability Purpose Use Cases
📄 Retrieval Extract relevant text content from your M365 data Answer questions using information from your documents, emails, and conversations
🔍 Search Find specific documents and files Locate files, discover relevant content across your M365 environment
💬 Chat Conversational AI powered by M365 Copilot Ask about your schedule, get summaries, interact with time-aware queries

Learn more: These capabilities are built on the official Microsoft 365 Copilot APIs.

Prerequisites

  • Node.js 20+ - Runtime environment
  • Microsoft 365 account - With Microsoft 365 Copilot license
  • MCP-compatible AI tool - Such as Claude Code, GitHub Copilot, or any other MCP client

Configuration

Configure the MCP server in your AI tool's settings. The server uses npx to run directly from npm without requiring global installation.

Claude Code

Add the server using the Claude Code CLI:

macOS/Linux:

claude mcp add --transport stdio m365-copilot -- npx -y m365-copilot-mcp

Windows:

claude mcp add --transport stdio m365-copilot -- cmd /c "npx -y m365-copilot-mcp"

The -y flag automatically accepts prompts, and npx will download and run the latest version of the package.

GitHub Copilot (VS Code)

Create a .vscode/mcp.json file in your project root, or add to your VS Code user settings:

Option 1: Project-level configuration (.vscode/mcp.json):

{
  "servers": {
    "m365-copilot": {
      "command": "npx",
      "args": ["-y", "m365-copilot-mcp"]
    }
  }
}

Option 2: User-level configuration (VS Code settings.json):

{
  "mcp.servers": {
    "m365-copilot": {
      "command": "npx",
      "args": ["-y", "m365-copilot-mcp"]
    }
  }
}

Requirements: VS Code 1.99+ with GitHub Copilot extension installed.

Other MCP Clients

For other MCP-compatible tools, use the following command with npx:

npx -y m365-copilot-mcp

Refer to your specific AI tool's documentation for MCP server configuration instructions.

Authentication

On first use, the server will automatically open your browser for Microsoft 365 authentication. After signing in once, your credentials are securely cached locally - no need to sign in again.

Security & Privacy

Your data is safe. The MCP server:

  • ✅ Only reads data through official Microsoft Graph APIs
  • ✅ Respects your organization's access controls and permissions
  • ✅ Stores authentication tokens locally on your machine (encrypted)
  • ✅ Does NOT store, collect, or transmit any of your M365 content
  • ✅ Makes direct API calls to Microsoft - no third-party servers involved

Using Your Own Azure AD App (Optional)

If you have security concerns or organizational requirements, you can use your own Azure AD application instead of the built-in one. However, this is completely optional - the default configuration is secure and sufficient for most users.

To use a custom Azure AD app, provide environment variables during configuration:

Claude Code

macOS/Linux:

claude mcp add --transport stdio m365-copilot \
  --env AZURE_CLIENT_ID=your-client-id \
  --env AZURE_TENANT_ID=your-tenant-id \
  -- npx -y m365-copilot-mcp

Windows:

claude mcp add --transport stdio m365-copilot --env AZURE_CLIENT_ID=your-client-id --env AZURE_TENANT_ID=your-tenant-id -- cmd /c "npx -y m365-copilot-mcp"

GitHub Copilot (VS Code)

Add environment variables to your configuration:

{
  "servers": {
    "m365-copilot": {
      "command": "npx",
      "args": ["-y", "m365-copilot-mcp"],
      "env": {
        "AZURE_CLIENT_ID": "your-client-id",
        "AZURE_TENANT_ID": "your-tenant-id"
      }
    }
  }
}

Required Microsoft Graph API Permissions:

  • Sites.Read.All
  • Files.Read.All
  • Mail.Read
  • Chat.Read
  • ChannelMessage.Read.All
  • OnlineMeetingTranscript.Read.All
  • People.Read.All
  • ExternalItem.Read.All

Available Tools

Your AI assistant can now use these three tools to interact with your M365 content:

1. m365copilotretrieval

Retrieves relevant text excerpts from your SharePoint and OneDrive content to answer questions.

Best for:

  • Answering questions based on your documents
  • Finding information buried in your content
  • Grounding AI responses in your actual data

Example prompts:

  • "What are the Q4 project deadlines mentioned in my documents?"
  • "Summarize the team's decision about the new feature"
  • "What does our company policy say about remote work?"

2. m365copilotsearch

Searches across your M365 environment to find specific documents and files.

Best for:

  • Locating specific documents
  • Getting document links to open or share
  • Discovering relevant files across SharePoint and OneDrive

Example prompts:

  • "Find the VPN setup guide"
  • "Search for the Q4 budget spreadsheet"
  • "Locate documents about network security policies"

3. m365copilotchat

Enables conversational interactions with Microsoft 365 Copilot, with awareness of your calendar, tasks, and content.

Best for:

  • Asking about your schedule and meetings
  • Getting summaries of recent activities
  • Time-aware queries that need context

Example prompts:

  • "What meetings do I have tomorrow?"
  • "Summarize recent discussions about the product launch"
  • "What are my action items for this week?"

Note: This tool requires your timezone in IANA format (e.g., "America/New_York", "Europe/London", "Asia/Shanghai").

How It Works

┌─────────────────┐
│   AI Assistant  │
│ (Claude, etc.)  │
└────────┬────────┘
         │
         │ MCP Protocol
         ▼
┌─────────────────┐
│ m365-copilot-mcp│
│     Server      │
└────────┬────────┘
         │
         │ Microsoft Graph API
         ▼
┌─────────────────┐
│  Microsoft 365  │
│   (Your Data)   │
└─────────────────┘

The MCP server acts as a secure bridge between your AI assistant and Microsoft 365, using official Microsoft APIs to access your data based on your permissions.

Troubleshooting

Authentication Issues

Problem: Browser doesn't open for login Solution: Manually authenticate by setting AZURE_CLIENT_ID in your environment

Problem: "Permission denied" errors Solution: Ensure your Microsoft 365 account has access to the requested resources

Connection Issues

Problem: AI assistant can't find the MCP server Solution:

  • Verify installation: npm list -g m365-copilot-mcp
  • Check that Node.js 20+ is installed: node --version
  • Restart your AI assistant

Tool Not Working

Problem: Chat tool fails with timezone error Solution: Ensure you provide timezone in IANA format (e.g., "America/New_York")

Problem: No results returned Solution: Verify you have access to M365 content and are signed in to the correct account

Supported Platforms

  • ✅ Windows 10/11
  • ✅ macOS 10.15+
  • ✅ Linux (Ubuntu 20.04+, other distributions)

Feedback & Support

This project is actively maintained. We welcome your feedback and contributions!

License

MIT License - see LICENSE file for details.


Developed by Microsoft engineers | Powered by Microsoft 365 Copilot APIs

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured