# Microsoft 365 MCP Server

This document describes the tools available for interacting with Microsoft 365 through the Graph API, organised by functionality and account type.

# Overview

The Microsoft 365 MCP Server brings the productivity surface of Microsoft 365 into AI-driven workflows. Through the Model Context Protocol (MCP), it provides controlled access to data and workflows across Outlook, Teams, SharePoint, OneDrive, and other Microsoft 365 apps — with every interaction respecting the user's permissions, the organisation's compliance policies, and existing enterprise governance.

When connected to Phoeniqs Chat, the MCP Server lets users carry out tasks such as:

  • Email and scheduling — accessing emails, calendars, and meetings
  • Team collaboration — managing Teams channels and messages
  • Document operations — retrieving and updating SharePoint or OneDrive content
  • Workflow assistance — generating AI-assisted summaries, notifications, and actions

The result: less switching between Microsoft 365 apps, faster collaboration, and actionable insight delivered directly within the chat interface — while preserving enterprise security and full traceability.


# Best Practices: Select only the tools you need

Connect the server once, then enable only the specific functions the agent requires. The fewer tools an agent has, the faster it responds and the lower the risk of an unintended action.

Example — a read-only email agent only needs four tools:

  • list-mail-messages — list email messages
  • list-mail-folders — list mail folders
  • list-mail-folder-messages — list messages in a specific folder
  • get-mail-message — get a specific email message

# Personal Account Tools

Available by default for personal Microsoft accounts.

# 📧 Email (Outlook)

  • list-mail-messages — list email messages
  • list-mail-folders — list mail folders
  • list-mail-folder-messages — list messages in a specific folder
  • get-mail-message — get a specific email message
  • send-mail — send an email
  • delete-mail-message — delete an email message
  • create-draft-email — create a draft email
  • move-mail-message — move an email to another folder

# 📅 Calendar

  • list-calendars — list calendars
  • list-calendar-events — list calendar events
  • get-calendar-event — get a specific calendar event
  • get-calendar-view — get calendar view for a date range
  • create-calendar-event — create a new calendar event
  • update-calendar-event — update an existing calendar event
  • delete-calendar-event — delete a calendar event

# 📁 OneDrive Files

  • list-drives — list OneDrive drives
  • get-drive-root-item — get the root folder of a drive
  • list-folder-files — list files in a folder
  • download-onedrive-file-content — download file content
  • upload-file-content — upload file content
  • upload-new-file — upload a new file
  • delete-onedrive-file — delete a file

# 📊 Excel Operations

  • list-excel-worksheets — list worksheets in an Excel file
  • get-excel-range — get data from a specific range
  • create-excel-chart — create a chart
  • format-excel-range — format a range
  • sort-excel-range — sort data in a range

# 📝 OneNote

  • list-onenote-notebooks — list OneNote notebooks
  • list-onenote-notebook-sections — list sections in a notebook
  • list-onenote-section-pages — list pages in a section
  • get-onenote-page-content — get page content
  • create-onenote-page — create a new page

# To Do Tasks

  • list-todo-task-lists — list task lists
  • list-todo-tasks — list tasks in a list
  • get-todo-task — get a specific task
  • create-todo-task — create a new task
  • update-todo-task — update an existing task
  • delete-todo-task — delete a task

# 📋 Planner

  • list-planner-tasks — list planner tasks
  • get-planner-plan — get a planner plan
  • list-plan-tasks — list tasks in a plan
  • get-planner-task — get a specific task
  • create-planner-task — create a new planner task

# 👥 Contacts

  • list-outlook-contacts — list Outlook contacts
  • get-outlook-contact — get a specific contact
  • create-outlook-contact — create a new contact
  • update-outlook-contact — update an existing contact
  • delete-outlook-contact — delete a contact

# 👤 User Profile

  • get-current-user — get current user information

# 🔍 Search

  • search-query — perform a search query

# Organization Account Tools

Require the --org-mode flag and the corresponding organisation-level permissions.

# 💬 Teams & Chats

  • list-chats — list chats
  • get-chat — get a specific chat
  • list-chat-messages — list messages in a chat
  • get-chat-message — get a specific chat message
  • send-chat-message — send a chat message
  • list-chat-message-replies — list replies to a message
  • reply-to-chat-message — reply to a chat message
  • list-joined-teams — list joined teams
  • get-team — get a specific team
  • list-team-channels — list channels in a team
  • get-team-channel — get a specific channel
  • list-channel-messages — list messages in a channel
  • get-channel-message — get a specific channel message
  • send-channel-message — send a channel message
  • list-team-members — list team members

# 🌐 SharePoint Sites

  • search-sharepoint-sites — search for SharePoint sites
  • get-sharepoint-site — get a SharePoint site
  • get-sharepoint-site-by-path — get site by path
  • list-sharepoint-site-drives — list drives in a site
  • get-sharepoint-site-drive-by-id — get a specific drive
  • list-sharepoint-site-items — list items in a site
  • get-sharepoint-site-item — get a specific site item
  • list-sharepoint-site-lists — list lists in a site
  • get-sharepoint-site-list — get a specific list
  • list-sharepoint-site-list-items — list items in a list
  • get-sharepoint-site-list-item — get a specific list item
  • get-sharepoint-sites-delta — get site changes (delta)

# 📬 Shared Mailboxes

  • list-shared-mailbox-messages — list messages in shared mailbox
  • list-shared-mailbox-folder-messages — list messages in shared mailbox folder
  • get-shared-mailbox-message — get a specific shared mailbox message
  • send-shared-mailbox-mail — send mail from shared mailbox

# 👥 User Management

  • list-users — list organization users

# Usage Notes

# Account types

  • Personal account tools — available by default on personal Microsoft accounts.
  • Organization account tools — require the --org-mode flag and the appropriate permissions.

# Permissions

Ensure your application has the necessary Microsoft Graph API permissions configured in Azure AD for the tools you intend to use. Different tools may require different permission scopes.

# Authentication

All tools authenticate against the Microsoft Graph API using OAuth 2.0.