使用说明
M365 MCP服务器
通过模型上下文协议(MCP)将AI助手连接到Microsoft 365 Outlook Mail
这是一个在Cloudflare Workers上运行的开源MCP服务器,允许像Claude这样的AI助手与您的Outlook Mail帐户进行交互。用户创建自己的Azure应用程序注册,以完全控制权限和数据访问。
特性
- 14 Outlook邮件工具 -阅读、发送、回复、转发、起草、搜索、组织
- 自动令牌刷新 -无缝重新身份验证,无需用户交互
- 安全OAuth流 -用户使用Microsoft工作/学校帐户进行身份验证
- 自托管 -部署到您自己的Cloudflare Workers帐户
- 完全控制 -您创建自己的Azure应用程序注册
- 有意义的会议 -由Cloudflare持久对象提供支持
- 生产就绪 -CSRF保护、状态验证、安全Cookie
可用工具
消息检索
outlook_list_messages-使用筛选功能列出文件夹中的电子邮件outlook_get_message-收到一封包含全文内容的电子邮件outlook_search_messages-按查询字符串搜索电子邮件
发送和回复
outlook_send_message-发送新电子邮件outlook_reply-回复电子邮件outlook_reply_all-回复所有收件人outlook_forward-转发电子邮件
草稿
outlook_create_draft-创建新草稿outlook_update_draft-更新现有草稿outlook_send_draft-发送草稿
消息操作
outlook_delete_message-删除邮件(移至垃圾箱)outlook_mark_read-标记为已读/未读
文件夹
outlook_list_folders-列出所有邮件文件夹outlook_move_message-将邮件移动到文件夹
快速开始
先决条件
- 启用Workers的Cloudflare帐户
- Microsoft 365工作/学校帐户(非个人帐户)
- 已安装Node.js 18+
1.克隆和安装
git clone https://github.com/adz80/m365-mcp-server.git
cd m365-mcp-server
npm install
2.创建Azure应用程序注册
按照指南 docs/setup-azure.md 创建您的Azure应用注册。
您需要:
MICROSOFT_CLIENT_ID-应用程序(客户端)IDMICROSOFT_CLIENT_SECRET-客户端机密值MICROSOFT_TENANT_ID-目录(租户)ID
配置:
- 帐户类型:“仅此组织目录中的帐户(单租户)”
- 重定向URI:
http://localhost:8788/callback(本地),https://your-worker.workers.dev/callback(生产),https://claude.ai/api/mcp/auth_callback和https://claude.com/api/mcp/auth_callback(克劳德·奥古斯特) - API权限:
Mail.Read,Mail.ReadWrite,Mail.Send
3.设置Cloudflare
# Create KV namespace for OAuth state
npx wrangler kv namespace create "OAUTH_KV"
# Update wrangler.jsonc with the KV namespace ID
# Set secrets
npx wrangler secret put MICROSOFT_CLIENT_ID
npx wrangler secret put MICROSOFT_CLIENT_SECRET
npx wrangler secret put MICROSOFT_TENANT_ID
npx wrangler secret put COOKIE_ENCRYPTION_KEY # Use: openssl rand -hex 32
4.部署
npm run deploy
您的MCP服务器将在 https://your-worker-name.workers.dev/mcp
5.联系克劳德·科沃克
- 首选 claude.ai
- 点击 设置 → 定制 → 连接器
- 点击 添加自定义连接器
- 输入您的MCP服务器URL:
https://your-worker-name.workers.dev/mcp - 使用您的Microsoft 365帐户进行身份验证
重新身份验证: 如果您的身份验证过期(在大约90天不活动后),您将收到一条清晰的错误消息,其中包含分步说明。只需断开并重新连接连接器即可重新进行身份验证,而不会丢失您的对话。
本地开发
# Start local dev server
npm run dev
# In another terminal, run MCP Inspector
npx @modelcontextprotocol/inspector@latest
# Connect to http://localhost:8788/mcp
文档
建筑
- Cloudflare员工 -MCP服务器的无服务器运行时
- 耐用物品 -每个MCP客户端的状态会话
- KV命名空间 -OAuth状态存储
- Microsoft Graph API -Outlook邮件操作
- OAuth 2.1 -安全身份验证流程
安全特性
- CSRF保护 -令牌和授权流验证
- 状态约束 -Cookie将OAuth状态绑定到浏览器会话
- 安全Cookie -
__Host-前缀、HttpOnly、安全、SameSite - HMAC签名 -使用密钥签名的已批准客户端列表
- 一次性使用 -OAuth状态令牌在单次使用后过期
扩展到其他M365服务
此服务器旨在支持Outlook Mail之外的其他Microsoft 365服务。未来的工具可以使用 calendar_, onedrive_, teams_ 前缀用于维护组织。
贡献
欢迎投稿!请在GitHub上打开问题或PR。
许可证
MIT许可证-请参阅 许可证 详情
致谢
内置: