windows-outlook-mcp

cqyefeng119/windows-outlook-mcp

3.2

If you are the rightful owner of windows-outlook-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This is an MCP server designed for seamless integration with Microsoft Outlook, enabling efficient email management, summarization, and draft generation.

Tools
  1. get_inbox_emails

    Retrieve a list of inbox emails.

  2. get_email_by_id

    Get details of a specific email by ID.

  3. search_emails

    Search emails using keywords.

  4. summarize_email

    Summarize a single email.

  5. create_draft

    Create an email draft with specified details.

Outlook MCP Server

This is an MCP (Model Context Protocol) server for integration with Microsoft Outlook. It operates the local Outlook client on Windows via COM, providing email reading, summarization, and draft generation features. Its main advantage is fast deployment on Windows without complex security authentication.

Features

šŸ“§ Email Management

  • Retrieve inbox email list
  • Get details of a specific email by ID
  • Search emails
  • Mark emails as read

šŸ“ Email Summarization

  • Intelligently summarize a single email
  • Batch summarize inbox emails
  • Automatically detect email priority
  • Identify actionable emails

āœļø Draft Generation

  • Create custom email drafts
  • Generate drafts using predefined templates
  • Intelligently generate reply drafts
  • Generate emails based on context

Installation

1. Install dependencies

cd path\to\windows-outlook-mcp
npm install

2. Compile TypeScript

npm run build

3. Configure Claude Desktop

Add the following to your Claude Desktop configuration file:

{
  "mcpServers": {
    "outlook": {
      "command": "node",
      "args": ["path/to/windows-outlook-mcp/src/index.ts"],
      "env": {}
    }
  }
}

Available Tools

Email Reading Tools

get_inbox_emails

Retrieve a list of inbox emails

  • count (optional): Number of emails to retrieve, default is 10
get_email_by_id

Get a specific email by ID

  • id (required): Email ID
search_emails

Search emails

  • query (required): Search keyword
  • count (optional): Number of results to return, default is 10

Email Summarization Tools

summarize_email

Summarize a single email

  • email_id (required): ID of the email to summarize
summarize_inbox

Summarize inbox emails

  • count (optional): Number of emails to summarize, default is 10

Draft Generation Tools

create_draft

Create an email draft

  • to (required): Array of recipient email addresses
  • cc (optional): Array of CC email addresses
  • bcc (optional): Array of BCC email addresses
  • subject (required): Email subject
  • body (required): Email content
generate_draft_from_template

Generate a draft using a template

  • template_name (required): Template name
    • meeting_request: Meeting invitation
    • follow_up: Follow-up email
    • thank_you: Thank you email
    • status_update: Status update
  • variables (required): Key-value pairs for template variables
  • recipients (required): Array of recipient email addresses
generate_reply_draft

Generate a reply draft

  • original_email_id (required): Original email ID
  • reply_type (required): Type of reply
    • agree: Agree
    • decline: Decline
    • info_request: Request for information
    • custom: Custom
  • custom_message (optional): Custom message content
generate_smart_draft

Intelligently generate a draft

  • context (required): Email context content
  • intent (required): Email intent
    • schedule_meeting: Schedule a meeting
    • request_information: Request information
    • project_update: Project update
    • general: General email
  • recipients (required): Array of recipient email addresses

Auxiliary Tools

get_draft_templates

Get the list of available templates

mark_email_as_read

Mark an email as read

  • email_id (required): Email ID

Usage Examples

Retrieve and summarize latest emails

Please fetch and summarize the latest 5 emails.

Search for specific emails

Search for emails containing the keyword "meeting".

Generate a meeting invitation draft

Generate an email using the meeting invitation template with the subject "Project Kickoff Meeting" for tomorrow at 2 PM.

Smart reply to an email

Generate an "agree" reply draft for email ID: xxx.

System Requirements

  • Windows 10/11
  • Microsoft Outlook installed and configured
  • Node.js 16.0 or higher
  • PowerShell 5.0 or higher

Notes

  1. Permissions: This tool requires access to Outlook's COM interface. Make sure Outlook is running.
  2. Security: The tool uses PowerShell scripts to interact with Outlook. Ensure your system security policy allows this.
  3. Performance: Processing a large number of emails may take time. Batch processing is recommended.
  4. Error Handling: If you encounter COM errors, restart Outlook and try again.

Development Notes

Project structure:

outlook/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # Main server file
│   ā”œā”€ā”€ outlook-manager.ts    # Outlook interface manager
│   ā”œā”€ā”€ email-summarizer.ts   # Email summarization functionality
│   └── draft-generator.ts    # Draft generation functionality
ā”œā”€ā”€ dist/                     # Compiled output directory
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
└── README.md

To extend functionality, modify the relevant TypeScript files and recompile.