Claude-Read-Outlook-Attachments
M365 附件读取器 MCP
一个用于 Claude 的远程 MCP 服务器,可通过 Microsoft Graph API 读取 Outlook 电子邮件并深度解析电子邮件附件。
目前支持的附件处理格式包括 PDF、带 OCR 的扫描版 PDF、Word、PowerPoint、Excel、CSV、纯文本、图像、压缩包以及 Outlook .msg 文件。
状态:早期基于 Windows 的测试版本。适用于个人使用和私有工作流,但尚未成为生产级多用户服务。
为什么存在此项目
Claude 内置的 Microsoft 365 连接器可以列出电子邮件、读取邮件正文并检查日历。但它无法读取电子邮件附件中的实际内容。
这意味着当你问“我最新邮件里的 PDF 说了什么?”时,Claude 可以看到附件的元数据,但无法看到其中的文本、表格、图像或嵌套文档。
本项目填补了这一空白。
它能做什么
该服务器作为远程 HTTP MCP 端点位于 Claude 和 Microsoft 365 之间。它能够:
通过设备代码流(device code flow)进行 Microsoft 365 身份验证
通过 Microsoft Graph 列出 Outlook 电子邮件及其附件
在后端下载附件
解析文件内容并将结构化文本和图像块直接返回给 Claude
支持的格式
格式 | 提取内容 |
全文内容 | |
扫描版 PDF | OCR 文本,以及可选的渲染页面图像 |
DOCX | 文本和嵌入图像 |
DOC | 文本内容 |
PPTX / PPTM / PPSX / POTX | 幻灯片文本、备注和嵌入图像 |
PPT | 尽力而为的旧版文本提取 |
XLSX / XLS / CSV | 所有工作表转换为 CSV |
JPG / JPEG / PNG / GIF / WEBP / BMP / TIFF | 作为 MCP 图像块返回以进行视觉分析 |
ZIP / RAR / 7Z | 递归解析压缩包内容 |
MSG | 主题、发件人、正文和嵌入附件 |
TXT / MD / JSON / XML / HTML | 原始文本 |
Outlook | 文本内容 |
图像处理是一个关键区别:服务器可以将独立的图像附件作为 MCP 图像块返回,从 DOCX 和 PPTX 文件中提取嵌入图像,并在没有文本层时对扫描版 PDF 回退使用 OCR。
MCP 工具
工具 | 描述 |
| 检查服务器是否存活 |
| 启动设备代码登录流程 |
| 检查身份验证状态 |
| 列出最近的 Outlook 电子邮件 |
| 列出特定电子邮件的附件 |
| 下载、解析并返回附件内容 |
这些简短的工具名称是服务器注册的底层 m365_* 工具的别名。
实际应用场景
零售 / 销售运营
“拉取最近 5 封每日仪表板邮件,读取 Excel 附件,并分析过去一周所有门店的销售趋势。”
金融 / 会计
“查找供应商发来的主题中包含‘发票’的最新邮件,读取 PDF 附件,并提取总金额、截止日期和明细项目。”
法律 / 合同审查
“打开来自 legal@partner.com 的最新邮件,读取 Word 或 PowerPoint 附件,并总结关键条款。”
高管报告
“读取最新 CFO 邮件中的每周董事会报告附件,并总结图表和关键指标。”
人力资源 / 招聘
“查找来自 recruiting@company.com 的带附件邮件,读取每份简历 PDF,并创建一个候选人对比表。”
供应链 / 采购
“读取最新的供应商报价压缩包,提取其中的电子表格,并将单价与之前的报价进行比较。”
架构
Claude Chat -> Cloudflare Tunnel -> Local Express Server -> Microsoft Graph API
(public URL) (localhost:8080) (Outlook data)
|
Parse attachments
(pdf-parse, tesseract.js,
mammoth, xlsx, adm-zip,
msgreader, archive tools)对于本地测试,Cloudflare Quick Tunnel 将本地服务器暴露给互联网。Claude 通过指向隧道 URL 的自定义连接器进行连接。
先决条件
带有 PowerShell 的 Windows 10/11
Node.js
Microsoft 365 / Outlook 账户
支持自定义连接器的 Claude 账户
设置
1. 创建 Microsoft Entra 应用注册
前往 Microsoft Entra 管理中心 -> 应用注册 -> 新注册。
名称:
m365-mcp-remote支持的账户类型:任何组织目录中的账户和个人 Microsoft 账户
然后:
从概览页面复制应用程序(客户端)ID 和目录(租户)ID
前往身份验证 -> 启用“允许公共客户端流” -> 保存
前往 API 权限 -> 添加权限 -> Microsoft Graph -> 委托权限 -> 添加
User.Read和Mail.Read-> 授予管理员同意
2. 克隆并安装
git clone https://github.com/Zacccck/MCP.git
cd MCP
npm install3. 配置环境变量
cp .env.example .env编辑 .env 并填入你的应用程序客户端 ID:
M365_CLIENT_ID=your-application-client-id-here
M365_TENANT_ID=common4. 启动服务器
npm start你应该看到:
Custom M365 HTTP MCP server listening at http://127.0.0.1:8080/mcp5. 通过 Cloudflare Tunnel 暴露
在新的 PowerShell 窗口中:
winget install --id Cloudflare.cloudflared然后运行:
cloudflared tunnel --url http://127.0.0.1:8080复制生成的 https://xxxxx.trycloudflare.com URL。
6. 作为自定义连接器添加到 Claude
在 Claude Chat 中:
点击输入区域附近的
+按钮打开连接器 -> 添加连接器 -> 自定义连接器
输入 URL:
https://xxxxx.trycloudflare.com/mcp
使用 https:// 并在末尾包含 /mcp。不要使用 http://127.0.0.1:8080/mcp。
7. 身份验证
在 Claude 中,输入:
Please call begin_authClaude 将返回一个登录 URL 和一个设备代码。打开 URL,输入代码,并完成 Microsoft 登录。然后通过以下方式验证:
Please call auth_status8. 使用它
Show me my recent outlook emails with attachmentsSummarize the contents of the attachments from the email重要限制
单用户:身份验证状态存储在内存中。一个服务器实例对应一个 Microsoft 账户。
需要两个进程:
node server.mjs和cloudflared tunnel在使用期间必须保持运行。Quick Tunnel 仅供测试:每次重启
cloudflared时,Cloudflare URL 都会改变。需要手动设置:Azure 应用注册、
.env配置和连接器设置仍需手动完成。
故障排除
问题 | 解决方案 |
Claude 找不到 MCP 工具 | 检查 Node 服务器和 Cloudflare 隧道是否仍在运行。隧道 URL 可能在重启后已更改。 |
| 重新检查你的应用注册:支持的账户类型、已启用公共客户端流,以及已授予 |
未显示设备代码 | 确保已成功调用 |
想要切换账户 | 停止 Node 服务器,使用 |
项目结构
MCP/
|-- server.mjs
|-- package.json
|-- .env.example
|-- .gitignore
|-- LICENSE
`-- README.md路线图
[ ] 更简单的首次设置
[ ] 无需重启即可注销和切换账户
[ ] Windows 后台服务模式
[ ] 生产部署指南
[ ] 多用户会话架构
[ ] 更深入的 OCR 语言覆盖和更好的大文件摘要功能
安全说明
这是一个本地测试和原型实现。它尚未准备好用于公共部署。在公开部署之前,你需要根据 /mcp 前端进行身份验证、实现用户会话隔离、安全令牌存储、速率限制以及适当的基础设施。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zacccck/Claude-MCP-Read-Email-Attachments'
If you have feedback or need assistance with the MCP directory API, please join our Discord server