这是一个模块化的Outlook MCP(模型上下文协议)服务器实现,通过Microsoft Graph API连接Claude与Microsoft Outlook。
认证由MCPHub提供:https://mcphub.com/mcp-servers/ryaker/outlook-mcp
/modular/
├── index.js # 主入口点
├── config.js # 配置设置
├── auth/ # 认证模块
│ ├── index.js # 认证导出
│ ├── token-manager.js # 令牌存储和刷新
│ └── tools.js # 与认证相关的工具
├── calendar/ # 日历功能
│ ├── index.js # 日历导出
│ ├── list.js # 列出事件
│ ├── create.js # 创建事件
│ ├── delete.js # 删除事件
│ ├── cancel.js # 取消
│ ├── accept.js # 接受事件
│ ├── tentative.js # 暂时接受事件
│ ├── decline.js # 拒绝事件
├── email/ # 邮件功能
│ ├── index.js # 邮件导出
│ ├── list.js # 列出邮件
│ ├── search.js # 搜索邮件
│ ├── read.js # 阅读邮件
│ └── send.js # 发送邮件
└── utils/ # 工具函数
├── graph-api.js # Microsoft Graph API辅助
├── odata-helpers.js # 构建OData查询
└── mock-data.js # 测试模式数据
npm install.env.example到.env并添加您的Azure凭据npm run auth-servernpm install
这将安装所需的依赖项,包括:
@modelcontextprotocol/sdk - MCP协议实现dotenv - 环境变量管理要使用此MCP服务器,您需要首先在Azure门户中注册和配置一个应用。以下步骤将引导您完成注册新应用、配置其权限以及生成客户端密钥的过程。
在项目根目录中通过复制示例创建一个.env文件:
cp .env.example .env
编辑.env并添加您的Azure凭据:
# 从Azure门户 > 应用注册 > 您的应用获取这些值
MS_CLIENT_ID=your-application-client-id-here
MS_CLIENT_SECRET=your-client-secret-VALUE-here
USE_TEST_MODE=false
重要提示:
.env文件中使用MS_CLIENT_ID和MS_CLIENT_SECRETOUTLOOK_CLIENT_ID和OUTLOOK_CLIENT_SECRET从claude-config-sample.json复制配置到您的Claude Desktop配置文件,并更新路径和凭据:
{
"mcpServers": {
"outlook-assistant": {
"command": "node",
"args": [
"/absolute/path/to/outlook-mcp/index.js"
],
"env": {
"USE_TEST_MODE": "false",
"OUTLOOK_CLIENT_ID": "your-client-id-here",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
要配置服务器行为,您可以编辑config.js来更改:
npm run auth-serverauthenticate工具获取OAuth URL您可以使用以下命令测试服务器:
./test-modular-server.sh
这将使用MCP Inspector直接连接到服务器,让您测试可用工具。
认证过程需要两个步骤:
npm run auth-server
这将在端口3333上启动一个本地服务器,处理来自Microsoft的OAuth回调。
⚠️重要:必须在尝试认证之前运行认证服务器。如果服务器未运行,认证URL将无法工作。
authenticate工具http://localhost:3333/auth?client_id=your-client-id~/.outlook-mcp-tokens.json认证服务器可以在成功认证后停止(令牌已保存)。但是,如果您需要重新认证,则需要重新启动它。
解决方案:先安装依赖项:
npm install
解决方案:端口3333已被占用。终止现有进程:
npx kill-port 3333
然后重新启动认证服务器:npm run auth-server
根本原因:您使用的是Secret ID而不是Secret Value。
解决方案:
.env文件:MS_CLIENT_SECRET=actual-secret-valueOUTLOOK_CLIENT_SECRET=actual-secret-valuenpm run auth-server根本原因:认证服务器没有运行。
解决方案:
npm run auth-server根本原因:令牌可能已过期或损坏。
解决方案:
~/.outlook-mcp-tokens.json解决方案:
OUTLOOK_CLIENT_ID和OUTLOOK_CLIENT_SECRET解决方案:
.env文件.env中使用MS_CLIENT_ID和MS_CLIENT_SECRET.env文件中的值周围添加引号~/.outlook-mcp-tokens.json并重新认证如果您仍然遇到问题:
npm run auth-server的控制台输出以获取详细错误信息要添加更多功能:
calendar/)index.js中导入并添加工具到TOOLS数组