MCP Outlook服务器
服务器 模型上下文协议(MCP) 对于Microsoft Outlook,允许AI代理 克劳德桌面 通过Microsoft Graph API与邮箱和日历交互。
______________________________________________________________________
✨ 功能
- 📧 邮件 :阅读、查看和发送电子邮件
- 📅 日历 :使用自动团队链接列出和创建事件
- 🔐 认证 :具有持久令牌缓存的Azure AD设备代码流
- 🔄 自动刷新 :令牌自动续订
______________________________________________________________________
🛠️ 可用工具
| 工具 | 描述 | 设置 |
|---|---|---|
list_messages | 列出收件箱中最后10封电子邮件 | - |
get_message | 阅读电子邮件的全部内容 | message_id |
send_message 发送电子邮件 | subject, toRecipients, content, contentType | |
list_events | 列出未来7天的活动 | - |
create_event | 创建事件(具有自动团队链接) | subject, startDateTime, endDateTime, location, content, attendees |
______________________________________________________________________
🧰 先决条件
- Microsoft帐户(个人或工作)
______________________________________________________________________
🚀 逐步安装
步骤1-克隆项目
git clone https://github.com/FRESHSK/mcp_outlook_01.git
cd mcp_outlook_01
npm install______________________________________________________________________
步骤2-创建Azure AD应用程序(一次)
- 继续 Azure门户-应用程序注册
- 点击 “新注册”
- 填写表格:
- 名字 : MCP Outlook - 支持的帐户类型 :选择第三个选项 *(多租户+个人Microsoft帐户)* - 重定向URI : Public client/native → http://localhost - 点击 注册
- 启用公共流:
- 菜单粗鲁→ 认证 - 滚动底座→ 高级设置 - 允许公共客户端流 → 是 - 点击 保存
- 复印机l'应用程序(客户端)ID 从那时起 概述
______________________________________________________________________
步骤3-添加Microsoft图形API权限
- 在 Azure 门户,转到您的应用程序注册
- 菜单粗鲁→ API权限
- 点击 “添加权限”
- 选择 微软图形
- 选择 委托权限
- 搜索并检查以下权限:
| 权限 | 类型 | 描述 |
|---|---|---|
User.Read | 委托 | 阅读登录用户的个人资料 |
Mail.Read | 授权阅读电子邮件 | |
Mail.Read.Shared | 授权阅读共享电子邮件 | |
Mail.ReadBasic | 授权阅读电子邮件的基本信息 | |
Mail.ReadWrite | 授权阅读和编辑电子邮件 | |
Mail.ReadWrite.Shared | 授权阅读和编辑共享电子邮件 | |
Mail.Send | 委托发送电子邮件 | |
Mail.Send.Shared | 代表他人发送电子邮件 | |
Calendars.Read | 授权阅读日历 | |
Calendars.Read.Shared | 授权阅读共享日历 | |
Calendars.ReadBasic | 授权阅读基本日历信息 | |
Calendars.ReadWrite | 授权阅读和编辑日历 | |
Calendars.ReadWrite.Shared | 委派 | 阅读和编辑共享日历 |
- 点击 “添加权限”
- 点击 “授予管理员对…的同意” 然后确认
Azure门户的预期结果:
✅ User.Read (Delegated) - Granted
✅ Mail.Read (Delegated) - Granted
✅ Mail.Read.Shared (Delegated) - Granted
✅ Mail.ReadBasic (Delegated) - Granted
✅ Mail.ReadWrite (Delegated) - Granted
✅ Mail.ReadWrite.Shared (Delegated) - Granted
✅ Mail.Send (Delegated) - Granted
✅ Mail.Send.Shared (Delegated) - Granted
✅ Calendars.Read (Delegated) - Granted
✅ Calendars.Read.Shared (Delegated) - Granted
✅ Calendars.ReadBasic (Delegated) - Granted
✅ Calendars.ReadWrite (Delegated) - Granted
✅ Calendars.ReadWrite.Shared (Delegated) - Granted______________________________________________________________________
步骤4-配置环境变量
cp .env.example .env编辑 .env :
MICROSOFT_CLIENT_ID=ton-client-id-azure
MICROSOFT_TENANT_ID=common⚠️ 永远不要提交文件.env-他在.gitignore
ℹ️ 利用 common 个人账户或组织账户的账户持有人ID。______________________________________________________________________
步骤5-首次Microsoft身份验证
node server.js您将在终端中看到:
To sign in, use a web browser to open the page
https://microsoft.com/devicelogin and enter the code XXXXXXXX- 打开 https://microsoft.com/devicelogin
- 输入终端中显示的代码
- 使用您的Microsoft帐户登录
- 文件
token_cache.json将自动创建
✅ 此步骤只需要一次。令牌自动更新。
______________________________________________________________________
步骤6-设置Claude桌面
编辑文件 claude_desktop_config.json de Claude桌面:
- 视窗 :
C:\Users\\AppData\Roaming\Claude\claude_desktop_config.json - 苹果电脑 :
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"outlook": {
"command": "node",
"args": [
"C:\\chemin\\absolu\\vers\\mcp_outlook_01\\server.js"
]
}
}
}______________________________________________________________________
步骤7-重新启动Claude桌面
关闭并重新启动Claude桌面。你现在可以问克劳德:
- *“给我看我最新的电子邮件”*
- *“Lis l'email de GitHub”*
- *“给我的同事发电子邮件”*
- *“这周我有什么计划?”*
- *“安排明天上午10点与\[电子邮件\]会面”* (自动创建团队链接)
______________________________________________________________________
📁 项目结构
mcp_outlook_01/
├── server.js # Serveur MCP principal
├── .env # Variables d'environnement (non commité)
├── .env.example # Template des variables d'environnement
├── .gitignore # Fichiers ignorés par Git
├── token_cache.json # Cache du token MSAL (non commité)
└── package.json # Dépendances Node.js______________________________________________________________________
📦 主要依赖项
| 包装 | 用法 |
|---|---|
@modelcontextprotocol/sdk MCP服务器 | |
@azure/msal-node | 身份验证Microsoft |
node-fetch 对图形API的HTTP请求 | |
dotenv | 环境变量 |
zod | 验证工具设置 |
______________________________________________________________________
🔒 安全
- 文件
.env包含键在.gitignore - 乐
token_cache.json包含Microsoft令牌的是.gitignore - 永远不要在GitHub中提交API密钥或令牌
______________________________________________________________________
🐛 故障排除
MCP在Claude桌面中没有响应? →检查日志: AppData\Roaming\Claude\logs\mcp-server-outlook.log
身份验证错误还是新权限? →删除 token_cache.json 并重新启动 node server.js 为了重新验证
错误 fetch is not a function ? →检查 node-fetch 安装良好: npm install node-fetch
发送电子邮件时出错? →代码处理202接受的响应-验证 server.js 是最新的
______________________________________________________________________
📝 许可证
麻省理工学院
