Skip to main content

Microsoft Outlook MCP server for Windows using COM interface - Direct integration with local Outlook application

Project description

Outlook MCP Server - Windows COM Edition

A Model Context Protocol (MCP) server that provides AI assistants with direct access to Microsoft Outlook on Windows through COM (Component Object Model) interface. This server enables seamless integration with emails, calendar events, and contacts without requiring Azure AD credentials or Microsoft Graph API setup.

Features

🔌 Direct Outlook Integration

  • Connects directly to local Outlook application using Windows COM interface
  • No Azure AD registration or Graph API credentials required
  • Works with existing Outlook installations and profiles

📧 Email Management

  • Get emails from any folder (Inbox, Sent Items, Drafts, etc.)
  • Send emails with support for CC, BCC, and rich formatting
  • Search and filter emails with pagination support
  • Read email details including sender, recipients, attachments

📅 Calendar Operations

  • View calendar events with date range filtering
  • Create new appointments with attendees and locations
  • Support for recurring events and all-day events
  • Access multiple calendars and calendar folders

👥 Contact Management

  • Browse contacts from Outlook address book
  • Create new contacts with full contact information
  • Access contact details including multiple email addresses and phone numbers
  • Company and job title information

🔧 MCP Tools

  • get-emails - Retrieve emails from specified folders
  • send-email - Send emails with full formatting support
  • get-calendar-events - Get upcoming calendar events
  • create-calendar-event - Create new calendar appointments
  • get-contacts - Browse contact directory
  • create-contact - Add new contacts

📝 MCP Prompts

  • summarize-emails - Generate email summaries
  • schedule-summary - Create calendar overviews
  • compose-email - Assist with professional email composition

Prerequisites

Windows Requirements

  • Windows OS (Windows 10/11 recommended)
  • Microsoft Outlook installed and configured
  • Python 3.8+ with pip or uv package manager

Platform Support

  • Windows: Full functionality with COM interface
  • ⚠️ macOS/Linux: Limited functionality (server will start but cannot connect to Outlook)

Installation

Using UV (Recommended)

# Clone the repository
git clone <repository-url> outlook-mcp-server-windows-com
cd outlook-mcp-server-windows-com

# Install dependencies with UV
uv sync

Using Pip

# Clone the repository
git clone <repository-url> outlook-mcp-server-windows-com
cd outlook-mcp-server-windows-com

# Create virtual environment
python -m venv venv
venv\Scripts\activate  # On Windows
# source venv/bin/activate  # On macOS/Linux

# Install dependencies
pip install -e .

Quickstart

Install

Claude Desktop

Add this to your Claude Desktop configuration file (%APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "outlook-windows-com": {
      "command": "uv",
      "args": ["--directory", "C:\\path\\to\\outlook-mcp-server-windows-com", "run", "python", "-m", "outlook_mcp_server"],
      "env": {}
    }
  }
}

Or if using system Python:

{
  "mcpServers": {
    "outlook-windows-com": {
      "command": "python",
      "args": ["-m", "outlook_mcp_server.server"],
      "cwd": "C:\\path\\to\\outlook-mcp-server-windows-com\\src",
      "env": {}
    }
  }
}

Usage

Running the Server

# Using UV
uv run python -m outlook_mcp_server

# Or directly with Python
python -m outlook_mcp_server.server

Claude Desktop Integration

Development

Project Structure

outlook-mcp-server-windows-com/
├── src/
│   └── outlook_mcp_server/
│       ├── __init__.py
│       └── server.py          # Main MCP server implementation
├── .vscode/                   # VS Code configuration
│   ├── launch.json           # Debug configurations
│   └── settings.json         # Editor settings
├── pyproject.toml            # Project configuration
├── README.md                 # This file
├── test_client.py            # Test script
└── uv.lock                   # Dependency lock file

Testing

# Test server functionality
python test_client.py

# Or test directly with UV
uv run python test_client.py

Platform Detection

The server includes automatic platform detection:

import platform

if platform.system() == "Windows":
    try:
        import win32com.client
        WINDOWS_COM_AVAILABLE = True
    except ImportError:
        WINDOWS_COM_AVAILABLE = False
else:
    WINDOWS_COM_AVAILABLE = False

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory /path/to/outlook-mcp-server-windows-com run python -m outlook_mcp_server

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

outlook_mcp_server_windows_com-0.1.0.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

outlook_mcp_server_windows_com-0.1.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file outlook_mcp_server_windows_com-0.1.0.tar.gz.

File metadata

File hashes

Hashes for outlook_mcp_server_windows_com-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6a35dab1dd68b74eb268a1cad3a0cf7a754ce93f435445008922237fdc7fae6c
MD5 df41d06e0092f1cf7d740432e1388226
BLAKE2b-256 8b2c98adc0ebdd52885287bfff18a7071bb215f2cc37c287e923bbceaed7384a

See more details on using hashes here.

File details

Details for the file outlook_mcp_server_windows_com-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for outlook_mcp_server_windows_com-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1297d5d5af27927ca8babf4a01e0e82fb7e0cb1cc860fb2a84a02d38b73b08ff
MD5 04d2710de0e7786ce9404a235f0aceab
BLAKE2b-256 b4c0eda5c11a1237c180284cd10fd6dbcd0f8a44b1dc4b0cf7afd893b1744ca9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page