mcpField
O
Owa Exchange Mcp

Owa Exchange Mcp

Local
github.com/nhypeCommunication11Updated 36w ago

About Owa Exchange Mcp

OWA Exchange MCP connects AI agents to Microsoft Exchange / OWA deployments. It provides tools for email, calendars, directory search, availability, and meeting analytics, with encrypted credentials and session cookies.

Key features

  1. 01Read, send, and organize email
  2. 02Manage calendar meetings
  3. 03Search people in Active Directory
  4. 04Find individual or shared availability
  5. 05Meeting statistics and contact analysis
  6. 06Encrypted credentials and session cookies

Use cases

  1. 01Find, reply to, or organize Exchange email
  2. 02Schedule meetings and check attendee availability
  3. 03Search for people in the directory
  4. 04Review team meeting frequency and connections

MCP support

It exposes 30 Exchange / OWA tools to MCP clients, covering email, calendars, directory, folders, availability, and meeting analytics.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"owa-exchange": {
"command": "uvx",
"args": [
"exchange-mcp-server"
],
"env": {
"EXCHANGE_OWA_URL": "<EXCHANGE_OWA_URL>",
"EXCHANGE_COOKIE_FILE": "<EXCHANGE_COOKIE_FILE>"
}
}
}
}
Run commanduvx exchange-mcp-server
Environment variables to set
EXCHANGE_OWA_URLBase URL of your OWA instance (e.g. https://owa.example.com)
EXCHANGE_COOKIE_FILEPath to session cookies file (default: session-cookies.txt)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiexchange-mcp-server1.0.1

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

OWA Exchange MCP Server

MCP (Model Context Protocol) server for any Microsoft Exchange / OWA (Outlook Web Access) deployment. Gives LLM agents access to email, calendar, directory search, folders, availability, and meeting analytics via 30 tools.

Works with any on-premise or hosted Exchange server that exposes OWA.

Quick Start

# Copy and edit the MCP config with your OWA URL
cp .mcp.json.example .mcp.json

# One-time: set up encrypted credentials
python3 login.py --setup

# Login (opens headless browser, 2FA approval required)
python3 login.py

# Install the MCP server
pip install -e .

Install

Add to your MCP client config. Replace https://owa.example.com with your OWA URL.

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "exchange": {
      "command": "uvx",
      "args": ["exchange-mcp-server"],
      "env": {
        "EXCHANGE_OWA_URL": "https://owa.example.com"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "exchange": {
      "command": "uvx",
      "args": ["exchange-mcp-server"],
      "env": {
        "EXCHANGE_OWA_URL": "https://owa.example.com"
      }
    }
  }
}

Claude Code (.mcp.json):

{
  "mcpServers": {
    "exchange": {
      "command": "uvx",
      "args": ["exchange-mcp-server"],
      "env": {
        "EXCHANGE_OWA_URL": "https://owa.example.com"
      }
    }
  }
}

Configuration

VariableRequiredDescription
EXCHANGE_OWA_URLYesBase URL of your OWA instance
EXCHANGE_COOKIE_FILENoPath to session cookies file (default: session-cookies.txt)

Login

Option A: Via MCP tool (recommended)

The login tool handles credential setup and authentication within the MCP session — no separate terminal needed.

First time (setup + login):

login(master_password="...", username="[email protected]", password="...")

Subsequent logins (decrypts stored credentials):

login(master_password="...")
Option B: Via CLI
python3 login.py --setup   # First time: save encrypted credentials
python3 login.py            # Login with 2FA

Both methods:

  1. Open a headless browser to your OWA URL
  2. Submit credentials
  3. Wait for 2FA approval (up to 90 seconds)
  4. Save encrypted session cookies to session-cookies.txt

Credentials and session cookies are encrypted at rest with AES-256 (PBKDF2 key derivation, 480k iterations).

Tools (30)

Email (10)
ToolDescription
get_emailsList emails from a folder with filtering
get_emailGet full email content by ID
send_emailSend a new email
reply_emailReply to an email
forward_emailForward an email
delete_emailDelete an email
move_emailMove email to another folder
mark_email_readMark email as read/unread
download_attachmentsDownload file attachments from an email
get_email_linksExtract hyperlinks from an email body
Calendar (7)
ToolDescription
get_calendar_eventsGet events in a date range (supports recurring expansion)
create_meetingCreate a meeting with attendees
update_meetingUpdate an existing meeting
cancel_meetingCancel a meeting and notify attendees
respond_to_meetingAccept, decline, or tentatively accept
download_event_attachmentsDownload file attachments from a calendar event
get_event_linksExtract hyperlinks from an event description
Directory (1)
ToolDescription
find_personSearch people in Active Directory
Folders (7)
ToolDescription
get_foldersList mail folders with unread counts
create_folderCreate a new mail folder
rename_folderRename an existing folder
empty_folderEmpty all items from a folder
delete_folderDelete a mail folder
move_folderMove a folder to a different parent
check_sessionCheck if the OWA session is authenticated
Availability (2)
ToolDescription
find_free_timeFind free slots in your calendar
find_meeting_timeFind common free slots for multiple people
Analytics (2)
ToolDescription
get_meeting_statsMeeting count statistics for multiple people
get_meeting_contactsConnection matrix — who you meet with most
Auth (1)
ToolDescription
loginAuthenticate to OWA (credential setup + 2FA login)

Files

login.py                  # Browser-based 2FA login (standalone CLI)
exchange_mcp/
  server.py               # FastMCP server entry point
  owa_client.py           # OWA HTTP client
  auth.py                 # Async login logic (shared by MCP tool)
  tools/
    email.py              # Email tools
    calendar.py           # Calendar tools
    people.py             # Directory search
    folders.py            # Folder management & session check
    availability.py       # Free time / meeting time
    analytics.py          # Meeting stats & contacts
    auth.py               # Login tool
pyproject.toml            # Package config

Warning

Every Exchange / OWA deployment has its own authentication setup — some require 2FA (push notifications, TOTP, SMS), others use single-factor login or SSO. The login logic in this project (login.py and exchange_mcp/auth.py) is written for a specific 2FA flow (mobile push approval). If your OWA server uses a different 2FA method or no 2FA at all, you will need to modify or remove the login logic to match your environment.

Security

  • Credentials and session cookies encrypted with AES-256-Fernet
  • Master password never stored
  • PBKDF2 with 480,000 iterations for key derivation
  • Credential and cookie files have 0600 permissions
  • Cookies decrypted into memory only — never written to disk as plaintext (via MCP tool)
  • Session cookies never transmitted except to your OWA server

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.