Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
MCP servers/Communication & Messaging
ryaker avatar

Modular Outlook

ryaker/outlook-mcp

The Outlook MCP server connects Claude to Microsoft 365 services by providing access to the Microsoft Graph API and Power Automate API. It offers tools for managing Outlook email, calendars, folders, and rules; OneDrive file operations including search, upload, and sharing; and Power Automate flow management with environment and run history visibility. This server enables Claude to handle email, calendar scheduling, file management, and workflow automation tasks across the Microsoft 365 ecosystem.

GitHub stars
372
last updated
Dec 15, 2025
View on GitHubSave

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Readme

MseeP.ai Security Assessment Badge

M365 Assistant MCP Server

A comprehensive MCP (Model Context Protocol) server that connects Claude with Microsoft 365 services through the Microsoft Graph API and Power Automate API.

Supported Services

  • Outlook - Email, calendar, folders, and rules
  • OneDrive - Files, folders, search, and sharing
  • Power Automate - Flows, environments, and run history

Directory Structure

├── index.js                 # Main entry point
├── config.js                # Configuration settings
├── auth/                    # Authentication modules
│   ├── index.js             # Authentication exports
│   ├── token-manager.js     # Token storage and refresh (Graph + Flow)
│   └── tools.js             # Auth-related tools
├── calendar/                # Calendar functionality
│   ├── index.js             # Calendar exports
│   ├── list.js              # List events
│   ├── create.js            # Create event
│   ├── delete.js            # Delete event
│   ├── cancel.js            # Cancel event
│   ├── accept.js            # Accept event
│   └── decline.js           # Decline event
├── email/                   # Email functionality
│   ├── index.js             # Email exports
│   ├── list.js              # List emails
│   ├── search.js            # Search emails
│   ├── read.js              # Read email
│   ├── send.js              # Send email
│   └── mark-as-read.js      # Mark email read/unread
├── folder/                  # Folder functionality
│   ├── index.js             # Folder exports
│   ├── list.js              # List folders
│   ├── create.js            # Create folder
│   └── move.js              # Move emails
├── rules/                   # Email rules functionality
│   ├── index.js             # Rules exports
│   ├── list.js              # List rules
│   └── create.js            # Create rule
├── onedrive/                # OneDrive functionality
│   ├── index.js             # OneDrive exports
│   ├── list.js              # List files/folders
│   ├── search.js            # Search files
│   ├── download.js          # Get download URL
│   ├── upload.js            # Simple upload (<4MB)
│   ├── upload-large.js      # Chunked upload (>4MB)
│   ├── share.js             # Create sharing link
│   └── folder.js            # Create/delete folders
├── power-automate/          # Power Automate functionality
│   ├── index.js             # Power Automate exports
│   ├── flow-api.js          # Flow API client
│   ├── list-environments.js # List environments
│   ├── list-flows.js        # List flows
│   ├── run-flow.js          # Trigger flow
│   ├── list-runs.js         # Run history
│   └── toggle-flow.js       # Enable/disable flow
└── utils/                   # Utility functions
    ├── graph-api.js         # Microsoft Graph API helper
    ├── odata-helpers.js     # OData query building
    └── mock-data.js         # Test mode data

Features

  • Authentication: OAuth 2.0 authentication with Microsoft Graph API (+ Flow API for Power Automate)
  • Email Management: List, search, read, send, and organize emails
  • Calendar Management: List, create, accept, decline, and delete calendar events
  • OneDrive Integration: List, search, upload, download, and share files
  • Power Automate: List environments/flows, trigger flows, view run history
  • Modular Structure: Clean separation of concerns for maintainability
  • Test Mode: Simulated responses for testing without real API calls

Available Tools

Outlook (Email & Calendar)

ToolDescription
list-emailsList recent emails from inbox
search-emailsSearch emails with filters
read-emailRead email content
send-emailSend a new email
mark-as-readMark email as read/unread
list-eventsList calendar events
create-eventCreate calendar event
accept-eventAccept event invitation
decline-eventDecline event invitation
delete-eventDelete calendar event
list-foldersList mail folders
create-folderCreate mail folder
move-emailsMove emails between folders
list-rulesList inbox rules
create-ruleCreate inbox rule

OneDrive

ToolDescription
onedrive-listList files in a path
onedrive-searchSearch files by query
onedrive-downloadGet download URL
onedrive-uploadUpload small file (<4MB)
onedrive-upload-largeChunked upload (>4MB)
onedrive-shareCreate sharing link
onedrive-create-folderCreate folder
onedrive-deleteDelete file or folder

Power Automate

ToolDescription
flow-list-environmentsList Power Platform environments
flow-listList flows in environment
flow-runTrigger a manual flow
flow-list-runsGet flow run history
flow-toggleEnable/disable a flow

Quick Start

  1. Install dependencies: npm install
  2. Azure setup: Register app in Azure Portal (see detailed steps below)
  3. Configure environment: Copy .env.example to .env and add your Azure credentials
  4. Configure Claude: Update your Claude Desktop config with the server path
  5. Start auth server: npm run auth-server
  6. Authenticate: Use the authenticate tool in Claude to get the OAuth URL
  7. Start using: Access your M365 data through Claude!

Installation

Prerequisites

  • Node.js 14.0.0 or higher
  • npm or yarn package manager
  • Azure account for app registration

Install Dependencies

npm install

Azure App Registration & Configuration

App Registration

  1. Open Azure Portal
  2. Search for "App registrations"
  3. Click "New registration"
  4. Name: "M365 MCP Server"
  5. Account type: "Accounts in any organizational directory and personal Microsoft accounts"
  6. Redirect URI: Web → http://localhost:3333/auth/callback
  7. Click "Register"
  8. Copy the "Application (client) ID" for your .env file

App Permissions

  1. Go to "API permissions" under Manage
  2. Click "Add a permission" → "Microsoft Graph" → "Delegated permissions"
  3. Add these permissions:
    • offline_access
    • User.Read
    • Mail.Read, Mail.ReadWrite, Mail.Send
    • Calendars.Read, Calendars.ReadWrite
    • Files.Read, Files.ReadWrite
  4. Click "Add permissions"

For Power Automate (optional):

  • Requires additional Azure AD configuration with Flow API scope
  • See Power Automate section below for details

Client Secret

  1. Go to "Certificates & secrets" → "Client secrets"
  2. Click "New client secret"
  3. Add description and select expiration
  4. Copy the VALUE (not the Secret ID)

Configuration

1. Environment Variables

cp .env.example .env

Edit .env:

# Get these values from Azure Portal > App Registrations > Your App
MS_CLIENT_ID=your-application-client-id-here
MS_CLIENT_SECRET=your-client-secret-VALUE-here
MS_TENANT_ID=your-tenant-id-here
USE_TEST_MODE=false

Important Notes:

  • Use MS_CLIENT_ID and MS_CLIENT_SECRET in the .env file
  • Set MS_TENANT_ID for single-tenant apps to avoid /common endpoint errors
  • For Claude Desktop config, you'll use OUTLOOK_CLIENT_ID and OUTLOOK_CLIENT_SECRET
  • Always use the client secret VALUE, never the Secret ID

2. Claude Desktop Configuration

Add to your Claude Desktop config:

{
  "mcpServers": {
    "m365-assistant": {
      "command": "node",
      "args": ["/path/to/outlook-mcp/index.js"],
      "env": {
        "USE_TEST_MODE": "false",
        "OUTLOOK_CLIENT_ID": "your-client-id",
        "OUTLOOK_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Authentication

Graph API (Outlook + OneDrive)

  1. Start auth server: npm run auth-server
  2. Use the authenticate tool in Claude
  3. Visit the provided URL and sign in
  4. Tokens saved to ~/.outlook-mcp-tokens.json

Power Automate (Optional)

Power Automate requires a separate token with the Flow API scope. Configure additional Azure AD permissions for https://service.flow.microsoft.com//.default scope.

Limitations:

  • Only solution-aware flows are accessible
  • Only manual trigger flows can be run via API
  • Requires environment ID for most operations

Troubleshooting

Common Issues

"Cannot find module"

npm install

"Port 3333 in use"

npx kill-port 3333
npm run auth-server

"Invalid client secret" (AADSTS7000215)

  • Use the secret VALUE, not the Secret ID

"Authentication required"

  • Delete ~/.outlook-mcp-tokens.json and re-authenticate

Testing

# Run with MCP Inspector
npm run inspect

# Run in test mode (mock data)
npm run test-mode

# Run Jest tests
npm test

Extending the Server

  1. Create new module directory
  2. Implement tool handlers in separate files
  3. Export tool definitions from module index
  4. Import and add to TOOLS array in index.js

Details

Repository
github.com/ryaker/outlook-mcp
Categories
Communication & Messaging, Data & Analytics, Productivity & Office

More from ryaker

  • Appstore Connect Mcp8

Related Communication & Messaging MCP servers

View all
1waystation-ai avatarTeamswaystation-ai/mcpCollaborate, chat, and manage meetings in Microsoft Teams.0stars
2mcparmory avatarPostmarkmcparmory/registrySend, track, and manage transactional and bulk email delivery0stars
3littlebearapps avatarOutlook Assistantlittlebearapps/outlook-assistantMicrosoft Outlook MCP server — 22 tools for email, calendar, contacts, and mailbox management.21stars
4littlebearapps avatarOutlook Mcplittlebearapps/outlook-mcpMicrosoft Outlook MCP server — 20 tools for email, calendar, contacts, and settings via Graph API.21stars
5usejunior avatarAgent Emailusejunior/email-agent-mcpLocal email connectivity for AI agents — read, draft, send, and organize Outlook mail via MCP3stars
6friendlygeorge avatarResend Mcp Serverfriendlygeorge/resend-mcp-serverMCP server for Resend — transactional email API for AI assistants...0stars