使用说明
MCP Outlook服务器
用于Microsoft Outlook集成的MCP(模型上下文协议)服务器,支持多帐户。
特性
- 🔐 与Microsoft进行OAuth2身份验证
- 📅 日历管理(读、写、创建事件)
- 📧 电子邮件管理(读取、发送、文件夹)
- 🏢 多帐户支持(多个Microsoft帐户)
- 💾 自动令牌刷新
- 🔄 所有账户的并发操作
安装
# Clone the repository
git clone https://github.com/renkosteenbeek/mcp-outlook-server.git
cd mcp-outlook-server
# Install dependencies
npm install
# Build the project
npm run build
配置
1.Azure应用程序注册
对于要连接的每个Microsoft帐户,您都需要一个应用程序注册。
直接链接到应用程序注册:
https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade
创建应用程序注册的步骤:
-
转到 应用程序注册页面
-
点击“新建注册”
-
配置应用程序:
- 名字:
MCP Outlook Integration(或您喜欢的任何名称) - 支持的帐户类型:根据您的需求进行选择:
- 对于个人Microsoft帐户:“任何组织目录中的帐户和个人Microsoft帐户”
- 仅适用于工作/学校帐户:“仅适用于此组织目录中的帐户”
- 对于多租户:“任何组织目录中的帐户”
- 重定向URI:
- 平台:
Web - URI:
http://localhost:3000/auth/callback
- 平台:
- 点击“注册”
- 名字:
-
注册后,保存这些值:
- 应用程序(客户端)ID:在概述页面上找到
- 目录(租户)ID:在概述页面上找到(个人帐户使用“常用”)
-
创建客户端密码:
- 转到左侧菜单中的“证书和机密”
- 点击“新建客户端密码”
- 添加描述并选择过期时间
- 点击“添加”
- 重要:立即复制机密值(不会再次显示)
-
配置API权限:
- 转到左侧菜单中的“API权限”
- 点击“添加权限”
- 选择“Microsoft Graph”
- 选择“委派权限”
- 选择这些权限:
User.ReadMail.ReadMail.ReadWriteMail.SendCalendars.ReadCalendars.ReadWrite
- 点击“添加权限”
- 如果您是管理员,请单击“授予管理员同意”(可选)
-
配置身份验证设置:
- 转到左侧菜单中的“身份验证”
- 在“平台配置”下,确保您有一个“Web”平台
- 验证重定向URI是否为:
http://localhost:3000/auth/callback - 在“隐性拨款和混合资金流”下,不勾选这两个选项
- 点击“保存”
2.配置文件
创建一个 config.json 项目根目录中的文件:
{
"accounts": [
{
"name": "Personal",
"tenantId": "common",
"clientId": "your-client-id",
"clientSecret": "your-client-secret"
},
{
"name": "Work",
"tenantId": "your-tenant-id",
"clientId": "your-client-id",
"clientSecret": "your-client-secret"
}
],
"server": {
"port": 3000,
"redirectUri": "http://localhost:3000/auth/callback"
}
}
3.克劳德桌面配置
添加到您的Claude桌面配置(claude_desktop_config.json):
{
"mcpServers": {
"outlook": {
"command": "node",
"args": ["/path/to/mcp-outlook-server/dist/index.js"],
"env": {}
}
}
}
Claude中的用法
认证
Login to your accounts: outlook_auth_login
日历功能
- List calendars: outlook_calendar_list
- View events: outlook_calendar_events_list
- Create event: outlook_calendar_event_create with subject, startDateTime, endDateTime
电子邮件功能
- List folders: outlook_mail_folders_list
- View emails: outlook_mail_messages_list
- Send email: outlook_mail_send with to, subject, body
多账户支持
- 默认情况下,所有操作都在所有配置的帐户上运行
- 使用
account针对特定帐户的参数 - 为清楚起见,回复中包括帐户名称
发展
# Run in development mode
npm run dev
# Test authentication
npm run test
多账户功能
- 配置多个Microsoft帐户(个人、工作等)
- 所有账户同时执行操作
- 按帐户名筛选结果
- 每个帐户都维护自己的身份验证状态
安全
- 客户端机密安全地存储在配置文件中
- 每个帐户加密存储令牌
- 每个帐户自动刷新令牌
- OAuth2与PKCE结合,增强安全性
故障排除
- “未注册回复地址”:在Azure门户中添加重定向URI
- “客户端密码无效”:检查密码是否已过期
- “权限被拒绝”:验证Azure门户中的API权限
- 令牌已过期:服务器会自动刷新,请重试