PluginBench
MCP Server

Outlook Personal MCP MCP Server

io.github.salahawad/outlook-personal-mcp

What is the Outlook Personal MCP MCP server?

Full-control MCP server for a personal Outlook.com mailbox and calendar (Microsoft Graph).

How to install Outlook Personal MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • OUTLOOK_MCP_CLIENT_ID
    required

    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_AUTHORITY

    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_ROOT

    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_BYTES

    Maximum bytes allowed for local attachment reads and attachment downloads. Defaults to 3145728.

  • OUTLOOK_MCP_ALLOW_PERMANENT_DELETE

    Set to 'true' to enable the permanent_delete tool which irrecoverably erases messages (bypasses Deleted Items). Disabled by default for safety.

  • OUTLOOK_MCP_DEBUG

    Set to 'true' to enable debug-level logging for Graph API requests and responses.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "outlook-personal-mcp": {
      "command": "uvx",
      "args": [
        "mcp-outlook-personal"
      ],
      "env": {
        "OUTLOOK_MCP_CLIENT_ID": "<YOUR_OUTLOOK_MCP_CLIENT_ID>",
        "OUTLOOK_MCP_AUTHORITY": "<YOUR_OUTLOOK_MCP_AUTHORITY>",
        "OUTLOOK_MCP_FILE_ROOT": "<YOUR_OUTLOOK_MCP_FILE_ROOT>",
        "OUTLOOK_MCP_MAX_FILE_BYTES": "<YOUR_OUTLOOK_MCP_MAX_FILE_BYTES>",
        "OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<YOUR_OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
        "OUTLOOK_MCP_DEBUG": "<YOUR_OUTLOOK_MCP_DEBUG>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "outlook-personal-mcp": {
      "command": "uvx",
      "args": [
        "mcp-outlook-personal"
      ],
      "env": {
        "OUTLOOK_MCP_CLIENT_ID": "<YOUR_OUTLOOK_MCP_CLIENT_ID>",
        "OUTLOOK_MCP_AUTHORITY": "<YOUR_OUTLOOK_MCP_AUTHORITY>",
        "OUTLOOK_MCP_FILE_ROOT": "<YOUR_OUTLOOK_MCP_FILE_ROOT>",
        "OUTLOOK_MCP_MAX_FILE_BYTES": "<YOUR_OUTLOOK_MCP_MAX_FILE_BYTES>",
        "OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<YOUR_OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
        "OUTLOOK_MCP_DEBUG": "<YOUR_OUTLOOK_MCP_DEBUG>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "outlook-personal-mcp": {
      "command": "uvx",
      "args": [
        "mcp-outlook-personal"
      ],
      "env": {
        "OUTLOOK_MCP_CLIENT_ID": "<YOUR_OUTLOOK_MCP_CLIENT_ID>",
        "OUTLOOK_MCP_AUTHORITY": "<YOUR_OUTLOOK_MCP_AUTHORITY>",
        "OUTLOOK_MCP_FILE_ROOT": "<YOUR_OUTLOOK_MCP_FILE_ROOT>",
        "OUTLOOK_MCP_MAX_FILE_BYTES": "<YOUR_OUTLOOK_MCP_MAX_FILE_BYTES>",
        "OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<YOUR_OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
        "OUTLOOK_MCP_DEBUG": "<YOUR_OUTLOOK_MCP_DEBUG>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "outlook-personal-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-outlook-personal"
      ],
      "env": {
        "OUTLOOK_MCP_CLIENT_ID": "<YOUR_OUTLOOK_MCP_CLIENT_ID>",
        "OUTLOOK_MCP_AUTHORITY": "<YOUR_OUTLOOK_MCP_AUTHORITY>",
        "OUTLOOK_MCP_FILE_ROOT": "<YOUR_OUTLOOK_MCP_FILE_ROOT>",
        "OUTLOOK_MCP_MAX_FILE_BYTES": "<YOUR_OUTLOOK_MCP_MAX_FILE_BYTES>",
        "OUTLOOK_MCP_ALLOW_PERMANENT_DELETE": "<YOUR_OUTLOOK_MCP_ALLOW_PERMANENT_DELETE>",
        "OUTLOOK_MCP_DEBUG": "<YOUR_OUTLOOK_MCP_DEBUG>"
      }
    }
  }
}
Claude Code
claude mcp add outlook-personal-mcp --env OUTLOOK_MCP_CLIENT_ID=<YOUR_OUTLOOK_MCP_CLIENT_ID> --env OUTLOOK_MCP_AUTHORITY=<YOUR_OUTLOOK_MCP_AUTHORITY> --env OUTLOOK_MCP_FILE_ROOT=<YOUR_OUTLOOK_MCP_FILE_ROOT> --env OUTLOOK_MCP_MAX_FILE_BYTES=<YOUR_OUTLOOK_MCP_MAX_FILE_BYTES> --env OUTLOOK_MCP_ALLOW_PERMANENT_DELETE=<YOUR_OUTLOOK_MCP_ALLOW_PERMANENT_DELETE> --env OUTLOOK_MCP_DEBUG=<YOUR_OUTLOOK_MCP_DEBUG> -- uvx mcp-outlook-personal

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository →

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository →

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository →

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository →

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository →