Full-control MCP server for a personal Outlook.com mailbox and calendar (Microsoft Graph).
Connect Runs on your machine
claude mcp add outlook-personal-mcp -e OUTLOOK_MCP_CLIENT_ID=<OUTLOOK_MCP_CLIENT_ID> -e OUTLOOK_MCP_AUTHORITY=<OUTLOOK_MCP_AUTHORITY> -e OUTLOOK_MCP_FILE_ROOT=<OUTLOOK_MCP_FILE_ROOT> -e OUTLOOK_MCP_MAX_FILE_BYTES=<OUTLOOK_MCP_MAX_FILE_BYTES> -e OUTLOOK_MCP_ALLOW_PERMANENT_DELETE=<OUTLOOK_MCP_ALLOW_PERMANENT_DELETE> -e OUTLOOK_MCP_DEBUG=<OUTLOOK_MCP_DEBUG> -- uvx mcp-outlook-personal==0.1.1
{
"mcpServers": {
"outlook-personal-mcp": {
"command": "uvx",
"args": [
"mcp-outlook-personal==0.1.1"
],
"env": {
"OUTLOOK_MCP_CLIENT_ID": "<OUTLOOK_MCP_CLIENT_ID>",
"OUTLOOK_MCP_AUTHORITY": "<OUTLOOK_MCP_AUTHORITY>",
"OUTLOOK_MCP_FILE_ROOT": "<OUTLOOK_MCP_FILE_ROOT>",
"OUTLOOK_MCP_MAX_FILE_BYTES": "<OUTLOOK_MCP_MAX_FILE_BYTES>",
"OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
"OUTLOOK_MCP_DEBUG": "<OUTLOOK_MCP_DEBUG>"
}
}
}
}
{
"mcpServers": {
"outlook-personal-mcp": {
"command": "uvx",
"args": [
"mcp-outlook-personal==0.1.1"
],
"env": {
"OUTLOOK_MCP_CLIENT_ID": "<OUTLOOK_MCP_CLIENT_ID>",
"OUTLOOK_MCP_AUTHORITY": "<OUTLOOK_MCP_AUTHORITY>",
"OUTLOOK_MCP_FILE_ROOT": "<OUTLOOK_MCP_FILE_ROOT>",
"OUTLOOK_MCP_MAX_FILE_BYTES": "<OUTLOOK_MCP_MAX_FILE_BYTES>",
"OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
"OUTLOOK_MCP_DEBUG": "<OUTLOOK_MCP_DEBUG>"
}
}
}
}
{
"servers": {
"outlook-personal-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-outlook-personal==0.1.1"
],
"env": {
"OUTLOOK_MCP_CLIENT_ID": "<OUTLOOK_MCP_CLIENT_ID>",
"OUTLOOK_MCP_AUTHORITY": "<OUTLOOK_MCP_AUTHORITY>",
"OUTLOOK_MCP_FILE_ROOT": "<OUTLOOK_MCP_FILE_ROOT>",
"OUTLOOK_MCP_MAX_FILE_BYTES": "<OUTLOOK_MCP_MAX_FILE_BYTES>",
"OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
"OUTLOOK_MCP_DEBUG": "<OUTLOOK_MCP_DEBUG>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
OUTLOOK_MCP_CLIENT_IDRequired | Azure App Registration client ID (Application ID). Required. Create a free app at https://portal.azure.com — see README for the three-minute setup. |
OUTLOOK_MCP_AUTHORITYOptional | Azure AD authority URL. Defaults to https://login.microsoftonline.com/consumers which covers personal Microsoft accounts (Outlook.com, Hotmail, Live). Change only if you target a different tenant. |
OUTLOOK_MCP_FILE_ROOTOptional | Only files under this directory can be read by add_attachment or written by download_attachment. Defaults to ~/.local/share/outlook-personal-mcp/files. |
OUTLOOK_MCP_MAX_FILE_BYTESOptional | Maximum bytes allowed for local attachment reads and attachment downloads. Defaults to 3145728. |
OUTLOOK_MCP_ALLOW_PERMANENT_DELETEOptional | Set to 'true' to enable the permanent_delete tool which irrecoverably erases messages (bypasses Deleted Items). Disabled by default for safety. |
OUTLOOK_MCP_DEBUGOptional | Set to 'true' to enable debug-level logging for Graph API requests and responses. |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 28 Jun 2026 |
| Last updated | 28 Jun 2026 |
| Registry name | io.github.salahawad/outlook-personal-mcp |
More communication servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
