Microsoft 365 MCP Server
คำเตือนด้านความปลอดภัย

Integrate Microsoft 365 to manage Outlook email, calendar events, OneDrive files, Tasks, Teams chats, and user profiles via Microsoft Graph and MCP protocol.

ติดตั้ง
$clawhub install mcp-microsoft365

Microsoft 365 MCP Server

Full Microsoft 365 integration via Model Context Protocol (MCP).

Features

📧 Mail (Outlook)

  • List, read, send, and search emails
  • Filter by folder (inbox, sent, drafts)
  • HTML email support

📅 Calendar

  • List and create events
  • Teams meeting integration
  • Check availability/free-busy

📁 OneDrive

  • Browse files and folders
  • Search files
  • Read file content

✅ Tasks (Microsoft To-Do)

  • List task lists
  • Create and manage tasks
  • Set importance and due dates

💬 Teams

  • List chats
  • Read and send messages

👥 Users

  • List organization users
  • Get user profiles

Requirements

  • Node.js 18+
  • Azure Entra ID App with Microsoft Graph permissions

Setup

1. Create Azure Entra ID App

  1. Go to Azure Portal
  2. Navigate to Microsoft Entra IDApp registrationsNew registration
  3. Configure:
    • Name: MCP-Microsoft365
    • Supported account types: Single tenant (recommended)
    • Redirect URI: http://localhost:3000/callback

2. Add API Permissions

Add these Application permissions for Microsoft Graph:

Mail.Read, Mail.Send, Mail.ReadWrite
Calendars.Read, Calendars.ReadWrite
Files.Read.All, Files.ReadWrite.All
Tasks.Read.All, Tasks.ReadWrite.All
Chat.Read.All, Chat.ReadWrite.All
User.Read.All

Important: Click "Grant admin consent"

3. Get Credentials

Save these values: - Application (client) ID - Directory (tenant) ID - Client Secret (create under Certificates & secrets)

4. Install

# Clone/download the skill
cd mcp-microsoft365

# Install dependencies
npm install

# Build
npm run build

5. Configure mcporter

mcporter config add m365 --stdio "node /path/to/mcp-microsoft365/dist/index.js"

Edit config/mcporter.json to add environment variables:

{
  "mcpServers": {
    "m365": {
      "command": "node /path/to/dist/index.js",
      "env": {
        "TENANT_ID": "your-tenant-id",
        "CLIENT_ID": "your-client-id",
        "CLIENT_SECRET": "your-client-secret",
        "DEFAULT_USER": "[email protected]"
      }
    }
  }
}

Usage

Email

# List recent emails
mcporter call m365.m365_mail_list top:5

# Send email
mcporter call m365.m365_mail_send to:"[email protected]" subject:"Hello" body:"<p>Hi!</p>"

# Search
mcporter call m365.m365_mail_search query:"important"

Calendar

# List events
mcporter call m365.m365_calendar_list top:10

# Create event with Teams meeting
mcporter call m365.m365_calendar_create subject:"Team Sync" start:"2026-01-27T10:00:00" end:"2026-01-27T11:00:00" isOnline:true

Files

# List OneDrive root
mcporter call m365.m365_files_list

# Search files
mcporter call m365.m365_files_search query:"report"

Tasks

# List task lists
mcporter call m365.m365_tasks_lists

Teams

# List chats
mcporter call m365.m365_teams_chats top:10

19 Available Tools

Tool Description
m365_mail_list List emails
m365_mail_read Read email by ID
m365_mail_send Send email
m365_mail_search Search emails
m365_calendar_list List events
m365_calendar_create Create event
m365_calendar_availability Check free/busy
m365_files_list List files
m365_files_search Search files
m365_files_read Read file content
m365_files_info Get file metadata
m365_tasks_lists List task lists
m365_tasks_list List tasks
m365_tasks_create Create task
m365_teams_chats List chats
m365_teams_messages Read messages
m365_teams_send Send message
m365_users_list List users
m365_user_info Get user profile

Author

Mahmoud Alkhatib - Website: malkhatib.com - YouTube: @malkhatib - Twitter: @malkhateeb

License

MIT