使用说明
Outlook MCP服务器
此存储库包含用于Microsoft Outlook的模型上下文协议(MCP)服务器。它有效地弥合了Microsoft Graph API和自主人工智能代理(如Roo Code或Claude Desktop)之间的差距,使人工智能能够安全地在Outlook收件箱和日历中执行操作。
建筑
此服务器遵循双应用程序拓扑:
- 快速HTTP服务器: 持续运行
localhost:3000等待最终用户批准OAuth 2.0 Microsoft身份验证流程。 - MCP服务器: 在本地运行
stdio严格等待从任何连接的符合MCP的AI代理接收工具调用JSON-RPC模式。
设置和安装
1.注册Microsoft应用程序
在开始之前,您必须在 Azure门户:
- 姓名:
Outlook MCP Server - 账户类型: 组织间+个人帐户(如果使用标准outlook.com/hotmail.com,则需要)。
- 重定向URI: 选择 网络 并添加
http://localhost:3000/auth/callback. - 创建一个 客户端密钥 (暂时保存)。
- 授予以下权利 委派 图形API权限:
User.ReadMail.ReadMail.SendCalendars.ReadCalendars.ReadWrite
2.本地配置
克隆此仓库并配置您的 .env 基于Azure密钥的文件。
npm install
精确创建 .env 根:
AZURE_CLIENT_ID="your_client_id_here"
AZURE_CLIENT_SECRET="your_client_secret_here"
AZURE_TENANT_ID="common" # usually "common" for outlook.com personal accounts
REDIRECT_URI="http://localhost:3000/auth/callback"
PORT=3000
测试和使用(连接到VS代码/Roo代码)
- 启动本地服务器实例:
node src/server.js - 将您的web浏览器导航到
http://localhost:3000/login. - 登录Microsoft并授予权限。系统将在内存中主动保存您的令牌,并自动请求静默刷新机制!
- VS代码链接: 在VS Code中,打开Roo代码扩展的MCP设置,并附加本地执行环境:
{
"mcpServers": {
"outlook-mcp": {
"command": "node",
"args": ["C:/absolute/path/to/repo/src/server.js"],
"disabled": false,
"autoApprove": []
}
}
}
注意:将上面的路径替换为您的绝对系统路径 src/server.js.
配置后,您可以向Roo Code询问以下内容:
"Hey Roo, show me the 3 latest emails I received.""What meetings do I have tomorrow? Create one with John at 3 PM UTC."
开发人员指南:添加新功能
如果您正在扩展此代码库以支持新的Microsoft端点(例如OneDrive或ToDo),则必须遵循标准协议实现步骤:
- 服务层(
src/services/graphService.js): 将原始查询映射起草回graphClient.js本地。 - 工具定义(
src/tools/outlookTools.js): 公开描述输入要求的JSON模式TOOLS注册表显式。将您的函数字符串块注册到handleToolCall代理有效载荷路由器。 - 重要限制: 从不使用
console.log()跨代码库。当MCP通过Stdout流建立连接时,标准日志会致命地操纵JSON有效载荷并导致AI连接崩溃。 总是使用console.error()用于诊断调试。
