MCP server for Outlook — enables AI assistants to access email, contacts, and calendars via win32com
Project description
outlook-mcp
MCP server for Outlook — enables AI assistants to access email, contacts, and calendars via Windows COM interface.
Built on the Model Context Protocol (MCP), works with Claude Code and other MCP-compatible clients.
Features
- Email: Search, read, send, reply, forward, flag, move, delete
- Contacts: Search by name or email
- Calendar: List calendars, create events
- Multi-account: Supports all accounts configured in Outlook
- Safe by design: Send/reply/forward opens Outlook compose window for user confirmation — never auto-sends
- Local only: All operations via local COM interface, no cloud API or OAuth needed
Requirements
- Windows with Outlook desktop client installed and running
- Python >= 3.10
Install
pip install outlook-mcp-server
Verify installation:
outlook-mcp-server --version
Usage with Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"outlook": {
"command": "outlook-mcp-server"
}
}
}
Then restart Claude Code. The 14 Outlook tools will be available to Claude automatically.
Alternative: run from source
git clone https://github.com/lihaokun/outlook-mcp.git
cd outlook-mcp
pip install -e .
{
"mcpServers": {
"outlook": {
"command": "uv",
"args": [
"--directory", "C:\\path\\to\\outlook-mcp",
"run", "outlook-mcp-server"
]
}
}
}
Available Tools
Accounts & Folders
| Tool | Description |
|---|---|
listAccounts |
List all configured email accounts (name, email, type) |
listFolders |
List all folders with message counts and unread counts |
createFolder |
Create a new subfolder under a specified parent |
Email Search & Read
| Tool | Description |
|---|---|
searchMessages |
Search by keyword (subject/sender/recipient), with date range and sort |
getRecentMessages |
Get recent messages by days, folder, and unread filter |
getMessage |
Read full message content (body, HTML, attachments) |
Email Operations
| Tool | Description |
|---|---|
sendMail |
Compose new email (opens Outlook compose window) |
replyToMessage |
Reply or reply-all (opens compose window) |
forwardMessage |
Forward with original attachments (opens compose window) |
updateMessage |
Mark read/unread, flag/unflag, move to folder, or trash |
deleteMessages |
Batch delete messages |
Contacts & Calendar
| Tool | Description |
|---|---|
searchContacts |
Search contacts by name or email |
listCalendars |
List all calendars with item count and writable status |
createEvent |
Create calendar event (opens Outlook event window) |
Safety
This server is designed with safety as a priority:
- No auto-send:
sendMail,replyToMessage,forwardMessage, andcreateEventall call.Display()instead of.Send()/.Save(). This opens the Outlook compose window so the user can review and confirm before sending. - Outlook Object Model Guard: Outlook may show additional security prompts for send operations. This is expected behavior.
- Local only: All data stays on your machine. No external API calls, no cloud services, no OAuth tokens.
Technical Details
- COM interface: Uses
pywin32(win32com.client) to control Outlook - MCP transport: stdio (standard input/output)
- Message ID: Uses Outlook's
EntryIDas unique identifier - Search: Uses
Items.Restrict()with DASL filters for efficient server-side filtering - Internationalization: Automatically handles both "Inbox" and "收件箱" folder names
Related Projects
- mail-assistant — AI-powered mail assistant using MCP, works with Thunderbird and Outlook
- thunderbird-mcp — MCP server for Thunderbird
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file outlook_mcp_server-0.1.1.tar.gz.
File metadata
- Download URL: outlook_mcp_server-0.1.1.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b73245bf2b060cb632e76d4f2843ca8f83235078ffe2f0f65fc736b453a92973
|
|
| MD5 |
09769ba9e61ca1ea455aa3208e83e015
|
|
| BLAKE2b-256 |
8e0388154b2eba268345e335b4f05c4822bc884ff3ca6fb332bce4c7d83029c7
|
File details
Details for the file outlook_mcp_server-0.1.1-py3-none-any.whl.
File metadata
- Download URL: outlook_mcp_server-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09b32da008fe979b82fae03caec2e0ef0420c13409cbb329c9248786f8f1d75a
|
|
| MD5 |
2b75073747ca1b74763a6082587095d4
|
|
| BLAKE2b-256 |
ca66e60e8443a592df7bcdac718e8a39419dd4272a08a5d5592b44949f14972d
|