Outlook MCP Python
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Outlook MCP Pythonsend an email to John about project update"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Outlook MCP Python
A Python-based Microsoft Outlook integration using Microsoft Graph API, built with FastAPI and MCP framework.
Overview
This project provides a server implementation for Microsoft Outlook integration using the Microsoft Graph API. It includes authentication handling, mail operations, and various utility functions for working with Outlook data.
Related MCP server: MCP Outlook Tools
Features
Microsoft Graph API integration
OAuth2 authentication flow
Mail operations (send, read, manage)
FastAPI-based server implementation
Environment-based configuration
Logging functionality
Project Structure
auth/- Authentication related modulesmail/- Mail operation modulesutils/- Utility functionsmain.py- Main application entry pointserver.py- Server configurationconfig.py- Configuration settingslogger.py- Logging configurationoutlook_auth_server.py- Outlook authentication server implementation
Prerequisites
Python 3.8 or higher
Microsoft Azure account with registered application
Microsoft Graph API access
Installation
Clone the repository:
git clone [repository-url]
cd mcp-outlook-pythonCreate and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtAzure App Registration & Configuration
To use this MCP server you need to first register and configure an app in Azure Portal. The following steps will take you through the process of registering a new app, configuring its permissions, and generating a client secret.
App Registration
Open Azure Portal in your browser
Sign in with a Microsoft Work or Personal account
Search for or cilck on "App registrations"
Click on "New registration"
Enter a name for the app, for example "Outlook MCP Server"
Select the "Accounts in any organizational directory and personal Microsoft accounts" option
In the "Redirect URI" section, select "Web" from the dropdown and enter "http://localhost:3333/auth/callback" in the textbox
Click on "Register"
From the Overview section of the app settings page, copy the "Application (client) ID" and enter it as the MS_CLIENT_ID in the .env file as well as the OUTLOOK_CLIENT_ID in the claude-config-sample.json file
App Permissions
From the app settings page in Azure Portal select the "API permissions" option under the Manage section
Click on "Add a permission"
Click on "Microsoft Graph"
Select "Delegated permissions"
Search for the following permissions and slect the checkbox next to each one
offline_access
User.Read
Mail.Read
Mail.Send
Calendars.Read
Calendars.ReadWrite
Contacts.Read
Click on "Add permissions"
Client Secret
From the app settings page in Azure Portal select the "Certificates & secrets" option under the Manage section
Switch to the "Client secrets" tab
Click on "New client secret"
Enter a description, for example "Client Secret"
Select the longest possible expiration time
Click on "Add"
Copy the secret value and enter it as the MS_CLIENT_SECRET in the .env file as well as the OUTLOOK_CLIENT_SECRET in the claude-config-sample.json file
Configuration
Create a
.envfile in the root directory with the following variables:
MS_CLIENT_ID=your-ms-client-id
MS_CLIENT_SECRET=your-ms-client-secret
MS_AUTH_SERVER_URL=your-ms-auth-server-urlUpdate the configuration in
config.pyas needed.
Usage with Claude Desktop
Copy the sample configuration from
claude-config-sample.jsonto your Claude Desktop configurationRestart Claude Desktop
Authenticate with Microsoft using the
authenticatetoolUse the email tools to manage your Outlook account
Authentication Flow
Start a local authentication server on port 3333 (using
outlook-auth-server.js)Use the
authenticatetool to get an authentication URLComplete the authentication in your browser
Tokens are stored in
~/.outlook-mcp-tokens.json
Troubleshooting
Authentication Issues: Check the token file and authentication server logs
API Call Failures: Check for detailed error messages in the response
Dependencies
fastapi
uvicorn
python-dotenv
pydantic
pydantic-settings
requests
aiohttp
mcp
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cycle-sync-ai/outlook-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server