home / mcp / modular outlook mcp server
Provides OAuth-authenticated access to Outlook data via MCP enabling email and calendar actions.
Configuration
View docs{
"mcpServers": {
"ryaker-outlook-mcp": {
"command": "node",
"args": [
"/absolute/path/to/outlook-mcp/index.js"
],
"env": {
"USE_TEST_MODE": "false",
"OUTLOOK_CLIENT_ID": "your-client-id-here",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}You can connect Claude to your Microsoft Outlook data through a modular MCP server that handles authentication and provides email and calendar actions via the Microsoft Graph API. This MCP server is designed for clean separation of concerns, easy maintenance, and testable interactions with Outlook data.
You run the local MCP server configuration and connect Claude through an MCP client. The server exposes tools for managing your Outlook data, including reading and sending emails and handling calendar events. To start using it, you configure Claude Desktop to point at your local MCP server, authenticate with Microsoft, and then invoke the available Outlook tools from Claude to interact with your mailbox and calendar.
Prerequisites: you need Node.js 14.0.0 or higher and npm (or yarn) installed on your system. You also need an Azure account to register an app for Microsoft Graph access.
Install dependencies for the MCP server project:
npm installIf you are using a local MCP command configuration, the following snippet describes how the server can be started via a stdio configuration. Use your absolute path to the MCP index file in your setup.
{
"type": "stdio",
"name": "outlook_mcp",
"command": "node",
"args": ["/absolute/path/to/outlook-mcp/index.js"],
"env": {
"USE_TEST_MODE": "false",
"OUTLOOK_CLIENT_ID": "your-client-id-here",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-here"
}
}Environment variables you will configure for the MCP server are used to connect to Azure and control test mode. Create a .env file in the project root with these values.
# Get these values from your Azure App Registration
USE_TEST_MODE=false
OUTLOOK_CLIENT_ID=your-client-id-here
OUTLOOK_CLIENT_SECRET=your-client-secret-hereThe server relies on OAuth 2.0 with Microsoft Graph. Tokens are obtained through the authentication flow initiated from Claude Desktop and are stored locally for reuse. Ensure you keep client secrets confidential and rotate them periodically in Azure.
The server is designed with a modular structure. Authentication, calendar, email, and utility helpers live in separate modules to simplify maintenance and testing.
If you encounter issues starting the authentication flow, verify that the authentication server is running and that the environment variables are correctly set in both your local environment and Claude Desktop configuration.
To add or modify functionality, create new module directories (for example, calendar or email), implement handlers for the new tools, export them from module index files, and wire them into the main server entry. This keeps changes isolated and maintainable.
Initiate OAuth flow to obtain tokens for Microsoft Graph access via Claude Desktop
List emails in the connected mailbox
Read a specific email by ID or query
Search emails by keywords or filters
Send an email using the connected account
List calendar events for the connected account
Create a new calendar event
Accept an event invite
Decline a calendar invite
Tentatively accept a calendar invite
Delete a calendar event