使用说明
Outlook MCP(模型上下文协议)服务器
模型上下文协议服务器,通过Microsoft Graph API与Microsoft Outlook集成,允许Claude和其他LLM检查日历事件、安排新事件、阅读电子邮件和发送消息。
特性
- 📅 日历集成:查看、列出、创建、更新和删除日历事件
- 📧 电子邮件集成:从Outlook帐户读取、发送、起草和管理电子邮件
- 🔁 模型上下文协议:遵循MCP标准进行LLM工具集成
- 🛡️ 类型安全:带Zod验证的完整TypeScript实现
先决条件
- Node.js 18+
- 具有适当权限的Microsoft 365帐户
- 使用Graph API权限注册Microsoft Azure应用程序(日历和邮件)
设置
-
在Azure Active Directory中注册应用程序:
-
首选 Azure门户
-
导航到“应用程序注册”
-
使用“公共客户端/本地(移动和桌面)”类型的重定向URI创建新注册
- 注册
http://localhost作为重定向URI
- 注册
-
配置API权限:
- 选择Microsoft Graph并键入委派,因为我们将代表用户行事
- 日历:“日历.阅读”和“日历.读写”
- 对于电子邮件:“Mail.Read”、“Mail.ReadWrite”和“Mail.Send”
- 为人民:“人民。阅读”
-
-
请注意Azure应用程序注册(概述)中的值,以用作MCP配置的环境变量:
- 客户端ID(应用程序(客户端)ID)
- 权限ID(目录(租户)ID)
- 注册MCP服务器
对于Claude Desktop,请在中创建或更新您的配置
~/.claude/config.json:
{
"mcpServers": {
"outlook": {
"command": "npx",
"args": [
"mcp_outlook"
],
"env": {
"AUTHORITY": "your-authority-id",
"CLIENT_ID": "your-client-id",
"MCP_SERVER_NAME": "outlook-mcp",
"MCP_SERVER_VERSION": "1.0.0"
}
}
}
}
确保用实际值替换路径和环境变量。
可用工具
日历工具
- list日历活动:列出指定时间范围内用户的日历事件
- createCalendarEvent:创建新的日历事件
- getCalendarEvent:获取特定日历事件的详细信息
- updateCalendarEvent:更新现有日历事件
- 删除日历事件:删除日历事件
电子邮件工具
- 电子邮件列表:列出指定文件夹(收件箱、已发送、草稿等)中的电子邮件
- 获取电子邮件:获取特定电子邮件的详细信息
- send电子邮件:发送新电子邮件
- 创建草稿:创建电子邮件草稿而不发送
- markEmailAs阅读:将电子邮件标记为已读
- markEmailAs未读:将电子邮件标记为未读
- 删除电子邮件:删除电子邮件
人员工具
- 搜索人物 查找组织中的人员或您最近的联系人
- getPerson 获取某人的信息
资源
- 日历:包含日历事件数据的资源
- 收件箱:包含收件箱邮件数据的资源
发展
在开发模式下运行并实时重新加载:
npm run dev
运行linting:
npm run lint
在本地配置MCP
{
"mcpServers": {
"outlook": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/outlook_mcp/build/index.js"
],
"env": {
"AUTHORITY": "your-authority-id",
"CLIENT_ID": "your-client-id",
"MCP_SERVER_NAME": "outlook-mcp",
"MCP_SERVER_VERSION": "1.0.0"
}
}
}
}