Outlook MCP Server 是一个模型上下文协议(MCP)服务器,它借助 Microsoft Graph API 让 Claude 能够访问 Microsoft Outlook。该服务器支持多账户操作,可进行远程部署,能全面管理邮件、日历和文件夹。
npm install
http://localhost:3333/auth/callback
https://your-domain.com/auth/callback
Mail.ReadWrite
、Calendars.ReadWrite
、offline_access
将 .env.example
复制为 .env
并进行配置:
# Azure 应用注册
MS_CLIENT_ID=your-azure-client-id
MS_CLIENT_SECRET=your-azure-client-secret
OUTLOOK_CLIENT_ID=your-azure-client-id
OUTLOOK_CLIENT_SECRET=your-azure-client-secret
# 服务器配置
USE_TEST_MODE=false
MCP_PORT=3001
在你的 Claude 桌面端配置中添加以下内容:
{
"mcpServers": {
"outlook-mcp": {
"command": "node",
"args": ["/path/to/outlook-mcp/index.js"],
"env": {
"USE_TEST_MODE": "false"
}
}
}
}
npm start
通过标准输入输出与 Claude 桌面端集成运行。
npm run start-remote
在端口 3001 上运行 HTTP 服务器,MCP 端点为 /mcp
。
npm run test-mode
使用模拟数据进行开发。
authenticate
- 添加新的 Outlook 账户。check-auth-status
- 查看账户身份验证状态。list-accounts
- 列出所有已配置的账户。remove-account
- 删除账户。list-emails
- 列出带有过滤选项的邮件。read-email
- 读取特定邮件内容。send-email
- 发送新邮件。create-draft
- 创建邮件草稿。reply-to-email
- 回复现有邮件。search-emails
- 按条件搜索邮件。mark-as-read
- 将邮件标记为已读/未读。list-calendar-events
- 列出日历事件。create-calendar-event
- 创建新事件。delete-calendar-event
- 删除事件。accept-calendar-event
- 接受会议邀请。decline-calendar-event
- 拒绝会议邀请。list-folders
- 列出邮件文件夹。create-folder
- 创建新文件夹。move-email
- 将邮件移动到文件夹。Railway 的环境变量设置:
MS_CLIENT_ID=your-azure-client-id
MS_CLIENT_SECRET=your-azure-client-secret
OUTLOOK_CLIENT_ID=your-azure-client-id
OUTLOOK_CLIENT_SECRET=your-azure-client-secret
NODE_ENV=production
USE_TEST_MODE=false
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3001
CMD ["npm", "run", "start-remote"]
npm ci --production
。npm run start-remote
。outlook-mcp/
├── auth/ # 身份验证和账户管理
│ ├── index.js # 主要身份验证模块导出
│ ├── server.js # OAuth 服务器(从根目录移来)
│ ├── account-manager.js # 多账户管理
│ ├── token-manager.js # 令牌存储和刷新
│ └── tools.js # 身份验证 MCP 工具
├── calendar/ # 日历操作
├── email/ # 邮件操作
├── folder/ # 文件夹管理
├── rules/ # 邮件规则
├── utils/ # 共享工具
│ ├── graph-api.js # Graph API 助手
│ ├── odata-helpers.js # OData 查询构建器
│ ├── permissions.js # 权限检查
│ └── mock-data.js # 测试数据
├── Scripts/ # 部署和管理脚本
├── config.js # 配置管理
├── index.js # 主要服务器入口点
└── package.json # 依赖和脚本
~/.outlook-mcp-accounts/
中。“No accounts configured”
authenticate
工具添加账户。“Authentication required for account X”
浏览器中出现 CORS 错误
端口已被使用
MCP_PORT
环境变量。check-auth-status
工具。http://localhost:3001/health
。npm start
- 本地标准输入输出模式。npm run start-remote
- 远程 HTTP 模式。npm run auth-server
- 仅启动 OAuth 服务器。npm run test-mode
- 使用模拟数据运行。npm run inspect
- 使用 MCP 检查器运行。本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。