Outlook Email MCP server

Enables direct access to Microsoft Outlook email functionality for reading, searching, composing, and managing emails without leaving the conversation context.
Back to servers
Setup instructions
Provider
Wallisking1991
Release date
Mar 22, 2025
Language
Python
Stats
21 stars

This server implements the Model Context Protocol (MCP) to provide AI assistants with access to Microsoft Outlook email functionality. Through a standardized interface, it allows for reading, searching, and managing emails directly within tools like Claude Desktop.

Prerequisites

  • Windows operating system
  • Python 3.10 or later
  • Microsoft Outlook installed and configured with an active account
  • Claude Desktop or another MCP-compatible client

Installation

  1. Clone or download the repository
  2. Install required dependencies:
pip install mcp>=1.2.0 pywin32>=305
  1. Configure your MCP client to use this server

Configuration

Setting Up Claude Desktop

Add the following to your MCP_client_config.json file:

{
  "mcpServers": {
    "outlook": {
      "command": "python",
      "args": ["Your path\\outlook_mcp_server.py"],
      "env": {}
    }
  }
}

Usage

Starting the Server

You can start the server directly:

python outlook_mcp_server.py

Alternatively, let your MCP client (like Claude Desktop) start it automatically via the configuration.

Available Tools

The server provides six primary tools:

  1. list_folders: Shows all available mail folders in Outlook
  2. list_recent_emails: Displays email titles from a specified time period
  3. search_emails: Finds emails by contact name or keywords
  4. get_email_by_number: Retrieves the full content of a specific email
  5. reply_to_email_by_number: Sends a reply to an existing email
  6. compose_email: Creates and sends a new email

Example Workflow

Here's a typical usage pattern:

  1. Check available folders with list_folders
  2. View recent emails using list_recent_emails
  3. Find specific emails with search_emails
  4. Read complete email content using get_email_by_number
  5. Respond to emails with reply_to_email_by_number

Usage Examples

Listing Recent Emails

Could you show me my unread emails from the last 3 days?

Searching for Emails

Search for emails about "project update OR meeting notes" in the last week

Reading Email Details

Show me the details of email #2 from the list

Replying to an Email

Reply to email #3 with: "Thanks for the information. I'll review this and get back to you tomorrow."

Composing a New Email

Send an email to [email protected] with subject "Meeting Agenda" and body "Here's the agenda for our upcoming meeting..."

Troubleshooting

  • Connection Issues: Verify Outlook is running and properly configured
  • Permission Errors: Ensure the script has appropriate access permissions
  • Search Problems: For complex searches, use OR operators between terms
  • Email Access Errors: Check if the referenced email IDs are valid
  • Server Crashes: Verify Outlook's connection and stability

Security Note

This server has full access to your Outlook email. Only use it with trusted MCP clients and in secure environments.

Limitations

  • Currently supports text emails only (not HTML)
  • Maximum email history is limited to 30 days
  • Search capabilities rely on Outlook's built-in search functionality
  • Only supports email functions (no calendar, contacts, etc.)

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "outlook" '{"command":"python","args":["Your path\\outlook_mcp_server.py"],"env":[]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "outlook": {
            "command": "python",
            "args": [
                "Your path\\outlook_mcp_server.py"
            ],
            "env": []
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "outlook": {
            "command": "python",
            "args": [
                "Your path\\outlook_mcp_server.py"
            ],
            "env": []
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later