1. 首页 > 技术教程 > 正文

MCP 连接 Outlook/Teams:邮件、通知和工作流自动化思路

MCP(Model Context Protocol)正在成为 AI Agent 连接外部服务的标准协议。如果你想让 Claude Code、Codex 或 Hermes Agent 直接读取邮件、发送 Teams 通知、管理日历,就需要让 MCP 连上 Outlook 和 Teams。这篇文章会讲清楚怎么配置 MCP Server 对接 Microsoft Graph API,以及如何用这套能力搭建实用的工作流自动化。

zhujixuan TASK 116

MCP 连接 Outlook/Teams 的核心思路

MCP 本身是一个协议,它定义了 AI Agent 如何通过标准化的工具调用与外部系统交互。要让 Agent 操作 Outlook 和 Teams,需要运行一个 MCP Server,这个 Server 封装了 Microsoft Graph API 的调用逻辑,并把 API 暴露为 MCP 工具(tools)。Agent 根据用户指令调用这些工具,Server 再向 Graph API 发起请求。

整个链路:AI Agent(如 Claude Code) ↔ MCP Server(运行在 VPS 或本地) ↔ Microsoft Graph API ↔ Outlook/Teams 服务。

准备工作:注册 Azure 应用并获取权限

连接 Microsoft 服务必须走 OAuth 2.0,所以第一步是在 Azure Portal 注册应用。

1. 登录 [Azure Portal](https://portal.azure.com),进入“Azure Active Directory” → “应用注册” → “新注册”。
2. 填写名称,重定向 URI 选 Web,填入 `http://localhost:3000/callback`(本地测试用,生产环境换成你的实际域名)。
3. 注册成功后,记录下“应用程序(客户端) ID”和“目录(租户) ID”。
4. 在“证书和密码”下创建客户端密码,保存值(只显示一次)。
5. 进入“API 权限”,添加 Microsoft Graph 的委托权限:
– `Mail.ReadWrite`(读写邮件)
– `Mail.Send`(发送邮件)
– `Chat.ReadWrite`(读写 Teams 聊天)
– `OnlineMeetings.ReadWrite`(管理会议)
– `User.Read`(读取用户信息)
注意:权限最小化,只申请你真正需要的。

部署 MCP Server:以社区项目为例

目前 GitHub 上有多个开源的 MCP Server 实现,比如 `microsoft/mcp-server-outlook`(微软官方示例)和社区版 `modelcontextprotocol/servers` 中的邮件模块。这里以通用方法说明,具体命令请以仓库 README 为准。

使用 Node.js 版 MCP Server

git clone https://github.com/microsoft/mcp-server-outlook.git
cd mcp-server-outlook

npm install

cat > .env <<EOF
CLIENT_ID=你的应用程序ID
CLIENT_SECRET=你的客户端密码
TENANT_ID=你的租户ID
REDIRECT_URI=http://localhost:3000/callback
EOF

npm start

启动后,MCP Server 会监听本地端口,并通过标准输入输出(stdio)或 HTTP 与 Agent 通信。你需要根据 AI Agent 的配置方式,将 MCP Server 的地址或进程注册给它。

使用 Python 版 MCP Server

如果你更熟悉 Python,可以用 `mcp` 库配合 `msal` 实现:

pip install mcp msal

写一个简单的 MCP Server 脚本,暴露 `send_email`、`list_emails`、`send_teams_message` 等工具。篇幅有限不贴完整代码,核心逻辑是用 `msal` 获取 token,然后调用 Graph API 的 `https://graph.microsoft.com/v1.0/me/messages` 和 `https://graph.microsoft.com/v1.0/me/chats` 端点。

配置 AI Agent 连接 MCP Server

不同 Agent 的集成方式略有不同:

Claude Code:在 `~/.claude/claude.json` 中添加 MCP 配置,指向本地运行的 Server 地址(如 `http://localhost:3000`)。

Codex:通过 `mcp` 命令行工具注册 Server,例如 `mcp add outlook –url http://localhost:3000`。

Hermes Agent:在配置文件里指定 MCP 工具列表,并启动 Server 进程。

配置完成后,Agent 就可以理解“帮我给张三发一封邮件,主题是项目进度,正文是……”这样的自然语言指令,并自动调用 MCP 工具完成操作。

工作流自动化思路:结合 n8n 或其他平台

MCP 连接 Outlook/Teams 不只是让 Agent 发邮件,还能触发更复杂的自动化。比如:

1.邮件触发 → 通知 Teams:当 MCP Server 检测到新邮件(通过 Graph API 的 Webhook 或轮询),自动调用 `send_teams_message` 发送通知到指定频道。
2.Teams 消息 → 创建任务:Agent 解析 Teams 消息中的关键词,调用第三方任务管理 API 创建待办。
3.日历事件 → 邮件提醒:Agent 读取日历事件,提前 15 分钟通过邮件发送会议资料。

这些流程可以借助 n8n 这样的低代码平台编排。n8n 本身也支持 MCP 协议,你可以把 n8n 作为 MCP Client,调用 Outlook/Teams MCP Server,再连接其他节点(如数据库、Slack 等)。

老鸟叮嘱:避坑指南

权限别给太大:`Mail.ReadWrite` 和 `Chat.ReadWrite` 已经能读写所有邮件和聊天,生产环境建议用 `Mail.Read` + `Mail.Send` 分开,并限制到特定邮箱或组。

Token 刷新是个坑:OAuth 2.0 的 access token 有效期通常 1 小时,MCP Server 必须实现 refresh token 逻辑。很多新手只配了初始 token,跑一天就断联。

不要裸奔端口:MCP Server 默认监听 localhost,如果暴露在公网且没有认证,任何人都可以操控你的邮件和 Teams。务必用 Nginx 反向代理加 Basic Auth 或 IP 白名单。

日志排错:Graph API 返回错误时,先看 HTTP 状态码和 `error` 字段。常见 403 是权限不足,401 是 token 过期或无效。

Agent 不要直接操作生产数据:测试阶段用单独的测试邮箱/Teams 账号,避免误发邮件或误删消息。

FAQ

Q: MCP Server 必须跑在 VPS 上吗?
A: 不一定。如果你只是本地测试,可以跑在开发机上。但要让 Agent 长期在线(比如 7×24 小时监听邮件),建议部署到 VPS,并配置 systemd 自启。

Q: 能用免费 Azure 账号吗?
A: 可以。Azure 免费账号包含 Azure AD 基础功能,但 Graph API 调用有额度限制(每月 100 万次),日常自动化足够。

Q: 如何让 MCP Server 支持多用户?
A: 需要实现 OAuth 2.0 授权码流程,每个用户独立登录。MCP Server 可以存储多组 token,通过用户 ID 路由请求。

Q: 发送 Teams 消息需要什么特殊权限?
A: 需要 `ChatMessage.Send` 或 `ChannelMessage.Send`,具体取决于你是发到 1:1 聊天还是频道。官方文档有详细权限列表。

Q: 为什么 Agent 调用工具后报错“unauthorized”?
A: 最常见原因是 token 过期或 scope 不匹配。检查 MCP Server 日志中的 Graph API 返回信息,重新授权或刷新 token 即可。

Q: 工作流自动化可以用 n8n 代替 MCP 吗?
A: n8n 本身也能直接调用 Graph API,但 MCP 的优势在于与 AI Agent 深度集成。两者可以互补:n8n 做复杂编排,MCP 做 Agent 工具调用。

总结

MCP 连接 Outlook/Teams 的核心就是通过 MCP Server 桥接 AI Agent 和 Microsoft Graph API。配置好 Azure 应用、部署好 Server、再接入 Agent,就能实现邮件收发、Teams 通知、日历管理等自动化。注意权限最小化和 token 刷新,生产环境一定要加安全层。这套思路不仅适用于 Outlook/Teams,也可以扩展到 SharePoint、OneDrive 等其他 Microsoft 服务。

**相关阅读:**

– [VPS部署AI工具100讲:AI Agent、Codex、Claude Code、Hermes Agent、Ollama与自动化工作流实战教程](https://www.zhujixuan.com/jishujiaocheng/9606.html)
– [n8n VPS 部署教程:搭建自己的自动化工作流平台](https://www.zhujixuan.com/jishujiaocheng/9892.html)
– [AI Agent自动化运维实战100讲:VPS巡检、日志分析、告警处理与工作流教程](https://www.zhujixuan.com/jishujiaocheng/10066.html)

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9843.html 商家投稿邮箱:zhujixuanblog@qq.com