关于 Owa Exchange Mcp
OWA Exchange MCP 是连接 Microsoft Exchange / OWA 部署的 MCP 服务,面向需要通过 AI Agent 管理邮件与日历的用户。它提供邮件、会议、目录搜索、空闲时间查询和会议分析工具,并支持加密凭据与会话 Cookie。
主要功能
- 01邮件读取、发送与整理
- 02日历会议管理
- 03Active Directory 人员搜索
- 04查找个人或多人空闲时段
- 05会议统计与联系人分析
- 06加密凭据和会话 Cookie
适用场景
- 01检索、回复或整理 Exchange 邮件
- 02安排会议并查看参与者空闲时间
- 03搜索目录中的人员
- 04分析团队会议频率与联系情况
MCP 相关
它向 MCP 客户端提供 30 个 Exchange / OWA 工具,涵盖邮件、日历、目录、文件夹、可用时间及会议分析。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
OWA Exchange MCP 服务
适用于任何 Microsoft Exchange / OWA(Outlook Web Access)部署的 MCP(Model Context Protocol)服务。通过 30 个工具,让 LLM Agent 能够访问电子邮件、日历、目录搜索、文件夹、可用时间和会议分析。
适用于任何提供 OWA 的本地部署或托管 Exchange 服务。
快速开始
# 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 .
安装
添加到 MCP 客户端配置中。将 https://owa.example.com 替换为你的 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"
}
}
}
}
配置
| 变量 | 必填 | 描述 |
|---|---|---|
EXCHANGE_OWA_URL | 是 | OWA 实例的基础 URL |
EXCHANGE_COOKIE_FILE | 否 | 会话 Cookie 文件的路径(默认值:session-cookies.txt) |
登录
选项 A:通过 MCP 工具(推荐)
login 工具会在 MCP 会话中处理凭据设置和身份验证,无需另开终端。
首次使用(设置 + 登录):
login(master_password="...", username="[email protected]", password="...")
后续登录(解密已存储的凭据):
login(master_password="...")
选项 B:通过 CLI
python3 login.py --setup # First time: save encrypted credentials
python3 login.py # Login with 2FA
两种方式都会:
- 打开无头浏览器并访问你的 OWA URL
- 提交凭据
- 等待 2FA 批准(最多 90 秒)
- 将加密后的会话 Cookie 保存到
session-cookies.txt
凭据和会话 Cookie 在静态存储时使用 AES-256 加密(PBKDF2 密钥派生,迭代 480k 次)。
工具(30 个)
电子邮件(10 个)
| 工具 | 描述 |
|---|---|
get_emails | 列出文件夹中的电子邮件,并支持筛选 |
get_email | 根据 ID 获取完整的电子邮件内容 |
send_email | 发送新邮件 |
reply_email | 回复邮件 |
forward_email | 转发邮件 |
delete_email | 删除邮件 |
move_email | 将邮件移至其他文件夹 |
mark_email_read | 将邮件标记为已读或未读 |
download_attachments | 下载邮件中的文件附件 |
get_email_links | 提取邮件正文中的超链接 |
日历(7 个)
| 工具 | 描述 |
|---|---|
get_calendar_events | 获取指定日期范围内的事件(支持展开重复事件) |
create_meeting | 创建会议并添加与会者 |
update_meeting | 更新现有会议 |
cancel_meeting | 取消会议并通知与会者 |
respond_to_meeting | 接受、拒绝或暂定接受会议 |
download_event_attachments | 下载日历事件中的文件附件 |
get_event_links | 提取事件描述中的超链接 |
目录(1 个)
| 工具 | 描述 |
|---|---|
find_person | 在 Active Directory 中搜索人员 |
文件夹(7 个)
| 工具 | 描述 |
|---|---|
get_folders | 列出邮件文件夹及未读邮件数 |
create_folder | 创建新邮件文件夹 |
rename_folder | 重命名现有文件夹 |
empty_folder | 清空文件夹中的所有项目 |
delete_folder | 删除邮件文件夹 |
move_folder | 将文件夹移至其他父文件夹 |
check_session | 检查 OWA 会话是否已通过身份验证 |
可用时间(2 个)
| 工具 | 描述 |
|---|---|
find_free_time | 查找日历中的空闲时段 |
find_meeting_time | 查找多人共同空闲的时段 |
分析(2 个)
| 工具 | 描述 |
|---|---|
get_meeting_stats | 统计多人的会议数量 |
get_meeting_contacts | 联系矩阵——统计你最常与哪些人开会 |
身份验证(1 个)
| 工具 | 描述 |
|---|---|
login | 登录 OWA(凭据设置 + 2FA 登录) |
文件
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
警告
每个 Exchange / OWA 部署都有自己的身份验证设置——有些需要 2FA(推送通知、TOTP、SMS),其他则使用单因素登录或 SSO。本项目中的登录逻辑(login.py 和 exchange_mcp/auth.py)针对特定的 2FA 流程(移动推送批准)编写。如果你的 OWA 服务使用其他 2FA 方式或完全不使用 2FA,则需要修改或移除登录逻辑,以适配你的环境。
安全性
- 凭据和会话 Cookie 使用 AES-256-Fernet 加密
- 主密码从不存储
- 使用 PBKDF2 进行密钥派生,迭代 480,000 次
- 凭据和 Cookie 文件的权限为
0600 - Cookie 仅解密到内存中——绝不会以明文形式写入磁盘(通过 MCP 工具)
- 会话 Cookie 绝不会传输到你的 OWA 服务以外的任何地方
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。