jibberish69
服务介绍
增强版 Outlook MCP 服务器
这是一个增强的、模块化的 Outlook MCP(模型上下文协议)服务器实现,通过 Microsoft Graph API 将 Claude 与 Microsoft Outlook 连接起来。该服务器提供了一整套强大的工具,用于电子邮件管理、日历集成、文件夹管理和规则创建。
功能
- 完整的认证系统:支持 OAuth 2.0 认证,包括令牌刷新和多用户支持
- 电子邮件管理:列出、搜索、阅读、发送和组织电子邮件,并支持附件
- 日历集成:创建、修改和管理日历事件,并跟踪参与者
- 文件夹组织:创建、管理和导航电子邮件文件夹
- 规则引擎:创建和管理复杂的邮件处理规则
- 模块化架构:清晰地分离关注点,以提高可维护性和可扩展性
- 增强的错误处理:详细的错误信息和日志记录
- 测试模式:模拟响应以便在不进行实际 API 调用的情况下进行测试
- 速率限制:内置速率限制以防止 API 限流
- 多环境配置:支持开发、测试和生产环境
目录结构
/enhanced-outlook-mcp/
├── index.js # 主入口点
├── config.js # 配置设置
├── .env.example # 环境变量示例
├── auth/ # 认证模块
│ ├── index.js # 认证导出
│ ├── token-manager.js # 令牌存储和刷新
│ ├── multi-user-support.js # 多用户支持
│ └── tools.js # 认证相关工具
├── email/ # 电子邮件功能
│ ├── index.js # 电子邮件导出
│ ├── list.js # 列出电子邮件
│ ├── search.js # 搜索电子邮件
│ ├── read.js # 阅读电子邮件
│ ├── send.js # 发送电子邮件
│ └── attachments.js # 处理电子邮件附件
├── calendar/ # 日历功能
│ ├── index.js # 日历导出
│ ├── create-event.js # 创建日历事件
│ ├── list-events.js # 列出日历事件
│ ├── update-event.js # 更新日历事件
│ └── delete-event.js # 删除日历事件
├── folder/ # 文件夹管理
│ ├── index.js # 文件夹导出
│ ├── list.js # 列出文件夹
│ ├── create.js # 创建文件夹
│ └── move.js # 在文件夹之间移动项目
├── rules/ # 邮件规则功能
│ ├── index.js # 规则导出
│ ├── create.js # 创建邮件规则
│ ├── list.js # 列出邮件规则
│ └── delete.js # 删除邮件规则
└── utils/ # 实用函数
├── graph-api.js # Microsoft Graph API 辅助函数
├── odata-helpers.js # OData 查询构建
├── logger.js # 日志记录工具
├── rate-limiter.js # API 速率限制
└── mock-data/ # 测试模式模拟数据
├── emails.js # 模拟电子邮件数据
├── folders.js # 模拟文件夹数据
├── calendar.js # 模拟日历数据
└── rules.js # 模拟规则数据
安装
-
克隆仓库:
git clone https://github.com/your-username/enhanced-outlook-mcp.git
cd enhanced-outlook-mcp -
安装依赖项:
npm install3. 根据
.env.example创建一个.env文件,并填入您的 Microsoft 应用注册详情:MS_CLIENT_ID=your_client_id
MS_CLIENT_SECRET=your_client_secret其他配置选项
使用 Claude
-
通过在 Claude 配置中添加以下内容来配置 Claude 以使用 MCP 服务器:
json
{
"tools": [
{
"name": "enhanced-outlook-mcp",
"url": "http://localhost:3000",
"auth": {
"type": "none"
}
}
]
} -
启动 MCP 服务器:
npm start
-
在另一个终端窗口中,启动认证服务器:
npm run auth-server
-
在 Claude 中使用
authenticate工具来启动认证流程。
认证流程
- 在配置的端口(默认:3333)上启动认证服务器
- 使用
authenticate工具获取认证 URL - 在浏览器中完成认证
- 令牌将安全地存储在配置的位置
开发
要在开发模式下运行服务器并启用自动重载:
npm run dev
要运行测试:
npm test
许可证
MIT 许可证
贡献
欢迎贡献!请随时提交 Pull Request。