m365-mcp (robin-collins/m365-mcp) is an MCP server listed on the M8ven Trust Index. It scores 52 out of 100, grade D. It declares 85 tools. No publisher has claimed this listing.
Enables AI assistants to manage Microsoft 365 services like Outlook, Calendar, OneDrive, and Contacts through natural language commands, with support for multi-account and high-performance caching.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
robin-collins
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
server_get_version📖 Get the version of the m365-mcp server (read-only, safe for unsupervised use)
account_list📖 List all signed-in Microsoft accounts (read-only, safe for unsupervised use) Returns a list of authenticated Microsoft accounts with their usernames, account IDs, and account types (personal or work/school). Returns: List of account dictionaries with: - username: Account email/username - account_…
account_authenticate✏️ Authenticate a new Microsoft account using device flow (requires user confirmation recommended) Initiates device flow authentication for adding a new Microsoft account. Returns authentication instructions with a device code and verification URL. The user must: 1. Visit the verification URL 2. Ent…
account_complete_auth✏️ Complete device flow authentication (requires user confirmation recommended) Completes the authentication process after the user has entered the device code at the verification URL. Args: flow_cache: The flow data returned from account_authenticate (the _flow_cache field) Returns: Account informa…
cache_task_get_status📖 Get status of a background cache task (read-only, safe for unsupervised use)
cache_task_list📖 List background cache tasks (read-only, safe for unsupervised use)
cache_get_stats📖 Get cache statistics and performance metrics (read-only, safe for unsupervised use)
cache_invalidate✏️ Invalidate cache entries matching a pattern (requires user confirmation recommended)
cache_warming_status📖 Get cache warming status and progress (read-only, safe for unsupervised use)
calendar_list_events📖 List upcoming calendar events (read-only, safe for unsupervised use)
calendar_get_event📖 Get full event details (read-only, safe for unsupervised use)
calendar_create_event✏️ Create a calendar event (requires user confirmation recommended)
calendar_update_event✏️ Update event properties (requires user confirmation recommended)
calendar_delete_event🔴 Delete a calendar event (always require user confirmation)
calendar_respond_event⚠️ Respond to a calendar event invitation (requires user confirmation recommended)
calendar_check_availability📖 Check calendar availability for scheduling (read-only, safe for unsupervised use)
calendar_forward_event📧 Forward a calendar event to recipients (always require user confirmation)
calendar_list_calendars📖 List all available calendars (read-only, safe for unsupervised use)
calendar_create_calendar✏️ Create a new calendar (requires user confirmation recommended)
calendar_delete_calendar🔴 Delete a calendar permanently (always require user confirmation)
calendar_propose_new_time✏️ Propose a new time for a meeting (requires user confirmation recommended)
calendar_get_free_busy📖 Get simplified free/busy times for attendees (read-only, safe for unsupervised use)
contact_list📖 List contacts (read-only, safe for unsupervised use)
contact_get📖 Get contact details (read-only, safe for unsupervised use)
contact_create✏️ Create a new contact (requires user confirmation recommended)
contact_update✏️ Update contact information (requires user confirmation recommended)
contact_delete🔴 Delete a contact permanently (always require user confirmation)
contact_create_list✏️ Create a new contact list (requires user confirmation recommended)
contact_add_to_list✏️ Add a contact to a contact list (requires user confirmation recommended)
contact_export📖 Export a contact in vCard format (read-only, safe for unsupervised use)
email_list📖 List emails from a mailbox folder (read-only, safe for unsupervised use)
email_get📖 Get detailed information about a specific email (read-only, safe for unsupervised use)
email_create_draft✏️ Create an email draft (requires user confirmation recommended)
email_send📧 Send an email to recipients (always require user confirmation)
email_update✏️ Update email properties (requires user confirmation recommended)
email_delete🔴 Delete an email permanently (always require user confirmation)
email_move✏️ Move an email to a different folder (requires user confirmation recommended)
email_reply📧 Reply to an email (always require user confirmation)
email_reply_all📧 Reply to all recipients of an email (always require user confirmation)
email_forward📧 Forward an email to recipients (always require user confirmation)
email_get_attachmentDownload an email attachment to a validated local path.
email_mark_read✏️ Mark an email as read or unread (requires user confirmation recommended)
email_flag✏️ Flag or unflag an email (requires user confirmation recommended)
email_add_category✏️ Add categories to an email (requires user confirmation recommended)
email_archive✏️ Archive an email (requires user confirmation recommended)
emailfolders_list📖 List mail folders from mailbox (read-only, safe for unsupervised use)
emailfolders_get📖 Get detailed information about a specific mail folder (read-only, safe for unsupervised use)
emailfolders_get_tree📖 Recursively build a tree of mail folders (read-only, safe for unsupervised use)
emailfolders_create✏️ Create a new mail folder (requires user confirmation recommended)
emailfolders_rename✏️ Rename a mail folder (requires user confirmation recommended)
emailfolders_move✏️ Move a mail folder to a different parent (requires user confirmation recommended)
emailfolders_delete🔴 Delete a mail folder permanently (always require user confirmation)
emailfolders_mark_all_as_read✏️ Mark all messages in a folder as read (requires user confirmation recommended)
emailfolders_empty🔴 Delete all messages in a folder (always require user confirmation)
emailrules_list📖 List all inbox message rules (read-only, safe for unsupervised use)
emailrules_get📖 Get details of a specific message rule (read-only, safe for unsupervised use)
emailrules_create✏️ Create a new inbox message rule to automatically process emails (requires user confirmation recommended)
emailrules_update✏️ Update an existing message rule (requires user confirmation recommended)
emailrules_delete🔴 Delete a message rule permanently (always require user confirmation)
emailrules_move_top✏️ Move a message rule to the top of execution order (requires user confirmation recommended)
emailrules_move_bottom✏️ Move a message rule to the bottom of execution order (requires user confirmation recommended)
emailrules_move_up✏️ Move a message rule up one position in execution order (requires user confirmation recommended)
emailrules_move_down✏️ Move a message rule down one position in execution order (requires user confirmation recommended)
file_list📖 List files and/or folders in OneDrive (read-only, safe for unsupervised use)
file_get✏️ Download a OneDrive file to a local path (requires user confirmation recommended)
file_create✏️ Upload a local file to OneDrive (requires user confirmation recommended)
file_update✏️ Replace OneDrive file content with local file (requires user confirmation recommended)
file_delete🔴 Delete a OneDrive file or folder permanently (always require user confirmation)
file_copy✏️ Copy a file within OneDrive (requires user confirmation recommended)
file_move✏️ Move a file to a different folder (requires user confirmation recommended)
file_rename✏️ Rename a file (requires user confirmation recommended)
file_share✏️ Create a sharing link for a OneDrive file (requires user confirmation recommended)
file_download_url📖 Get direct download URL for a OneDrive file (read-only, safe for unsupervised use)
folder_list📖 List only folders (not files) in OneDrive (read-only, safe for unsupervised use)
folder_get📖 Get metadata for a specific OneDrive folder (read-only, safe for unsupervised use)
folder_get_tree📖 Recursively build a tree of OneDrive folders (read-only, safe for unsupervised use)
folder_create✏️ Create a new OneDrive folder (requires user confirmation recommended)
folder_delete🔴 Delete an OneDrive folder permanently (always require user confirmation)
folder_rename✏️ Rename an OneDrive folder (requires user confirmation recommended)
folder_move✏️ Move an OneDrive folder to a different parent (requires user confirmation recommended)
search_files📖 Search for files in OneDrive (read-only, safe for unsupervised use)
search_emails📖 Search emails across mailbox (read-only, safe for unsupervised use)
search_events📖 Search calendar events (read-only, safe for unsupervised use)
search_contacts📖 Search contacts (read-only, safe for unsupervised use)
search_unified📖 Search across multiple Microsoft 365 resources (read-only, safe for unsupervised use)
MCP_LOG_LEVELMCP_LOG_DIRM365_MCP_CLIENT_IDEdit .env with yourMCP_TRANSPORTexport ="http"MCP_HOSTexport ="127.0.0.1"MCP_PORTexport ="8000"MCP_PATHMCP_AUTH_METHODexport ="bearer"MCP_ALLOW_INSECUREMCP_AUTH_TOKENexport =$(openssl rand -hex 32)MCP_FILE_DOWNLOAD_TIMEOUTMCP_FILE_DOWNLOAD_CHUNK_SIZEMCP_FILE_DOWNLOAD_MAX_MBM365_MCP_INTERACTIVE_AUTHM365_MCP_TENANT_ID"Need admin approval": Use =consumers for personal accountsM365_MCP_CACHE_WARMING🔄 Optional Cache Warming: Set =true to startMCP_FILE_ALLOWED_ROOTSDestructive tools are labelled
1 tool perform destructive updates without destructiveHint — email_get_attachment deletes at line 1280 (destination.unlink(missing_ok=True))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Tool inputs are validated
80/85 tool handlers declare input schemas (94%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool handlers catch errors
Only 36/85 tool handlers wrap calls in try/catch (42%)
Wrap each tool handler body in try/catch and return a structured error response.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/robin-collins/m365-mcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check