Enables interaction with Microsoft Outlook for calendar management (viewing and adding appointments), email operations (sending emails with formatting), and email search functionality.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Outlook Toolsadd a meeting with John for tomorrow at 2pm about the Q3 review"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Outlook Tools
A Model Context Protocol (MCP) server implementation that enables AI assistants to interact with Microsoft Outlook for calendar management, email operations, and search functionality.
Features
π Calendar Management
Get calendar items within a date range
Add new appointments with full details
Support for categories and busy status
π§ Email Operations
Send emails with To/CC recipients
Display confirmation before sending
Full body formatting support
π Email Search
Search emails by date and keyword
Extract user information from addresses
Japanese text encoding support
Related MCP server: Gmail MCP Server
Requirements
Windows OS (required for pywin32)
Microsoft Outlook installed and configured
Python 3.10 or higher
MCP-compatible AI assistant (e.g., Claude Desktop)
Installation
Clone the repository:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-toolsInstall dependencies using uv:
uv pip install -e .Or using pip:
pip install -e .Configuration
For Claude Desktop
Add the following to your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"outlook-tools": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/mcp-outlook-tools",
"run",
"--with-editable",
".",
"-m",
"outlook_tools.server"
],
"cwd": "C:/path/to/mcp-outlook-tools",
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}Usage
Once configured, the following tools are available in your AI assistant:
add_appointment
Add a new appointment to Outlook calendar
Parameters:
- subject: Appointment title
- start_time: Start datetime (YYYY-MM-DD HH:MM)
- end_time: End datetime (YYYY-MM-DD HH:MM)
- location: Meeting location (optional)
- description: Detailed description (optional)
- categories: Comma-separated categories (optional)
- busy_status: 0=Free, 1=Tentative, 2=Busy, 3=Out of Office (default: 1)get_calendar
Get calendar items for a date range
Parameters:
- start_date: Start date (YYYY-MM-DD)
- end_date: End date (YYYY-MM-DD)send_email
Send an email via Outlook
Parameters:
- to: Recipient email addresses (semicolon-separated)
- cc: CC recipients (semicolon-separated)
- subject: Email subject
- body: Email body textProject Structure
mcp-outlook-tools/
βββ src/
β βββ outlook_tools/
β βββ __init__.py
β βββ server.py # MCP server implementation
β βββ calendar_service.py # Calendar operations
β βββ search_service.py # Email search operations
βββ test/ # Test files
βββ pyproject.toml # Project configuration
βββ README.md # This fileDevelopment
Running Tests
pytest test/Type Checking
pyright src/Linting
ruff check src/Security Notes
This tool requires access to your local Outlook installation
Emails are displayed before sending for user confirmation
No credentials are stored in the code
All operations use Windows COM interface with existing Outlook authentication
Limitations
Windows only (due to pywin32 dependency)
Requires Outlook to be installed and configured
Time zone handling assumes JST (+9 hours)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with FastMCP framework
Uses pywin32 for Outlook COM interface