内容
# outlook-mcp
[](https://pypi.org/project/outlook-mcp-server/)
[](https://pypi.org/project/outlook-mcp-server/)
[](https://opensource.org/licenses/MIT)
适用于 Outlook 的 MCP 服务器 — 通过 Windows COM 接口使 AI 助手能够访问电子邮件、联系人和日历。
基于 [模型上下文协议](https://modelcontextprotocol.io/)(MCP)构建,与 [Claude Code](https://claude.ai/code) 和其他 MCP 兼容的客户端配合使用。
## 功能特点
- **电子邮件**:搜索、读取、发送、回复、转发、标记、移动、删除
- **联系人**:按姓名或电子邮件搜索
- **日历**:列出日历、创建事件
- **多账户**:支持 Outlook 中配置的所有账户
- **安全设计**:发送/回复/转发打开 Outlook 撰写窗口以供用户确认 — 绝不自动发送
- **本地运行**:所有操作通过本地 COM 接口进行,无需云 API 或 OAuth
## 系统要求
- 安装并运行 Outlook 桌面客户端的 Windows 系统
- Python >= 3.10
## 安装
```bash
pip install outlook-mcp-server
```
验证安装:
```bash
outlook-mcp-server --version
```
## 与 Claude Code 配合使用
在项目的 `.mcp.json` 中添加:
```json
{
"mcpServers": {
"outlook": {
"command": "outlook-mcp-server"
}
}
}
```
然后重启 Claude Code。14 个 Outlook 工具将自动可用于 Claude。
### 替代:从源码运行
```bash
git clone https://github.com/lihaokun/outlook-mcp.git
cd outlook-mcp
pip install -e .
```
```json
{
"mcpServers": {
"outlook": {
"command": "uv",
"args": [
"--directory", "C:\\path\\to\\outlook-mcp",
"run", "outlook-mcp-server"
]
}
}
}
```
## 可用工具
### 账户和文件夹
| 工具 | 描述 |
|------|-------------|
| `listAccounts` | 列出所有配置的电子邮件账户(名称、电子邮件、类型) |
| `listFolders` | 列出所有文件夹及其消息数量和未读数量 |
| `createFolder` | 在指定父文件夹下创建新的子文件夹 |
### 电子邮件搜索和阅读
| 工具 | 描述 |
|------|-------------|
| `searchMessages` | 按关键词(主题/发件人/收件人)搜索,支持日期范围和排序 |
| `getRecentMessages` | 按天数、文件夹和未读筛选获取近期消息 |
| `getMessage` | 读取完整消息内容(正文、HTML、附件) |
### 电子邮件操作
| 工具 | 描述 |
|------|-------------|
| `sendMail` | 撰写新电子邮件(打开 Outlook 撰写窗口) |
| `replyToMessage` | 回复或回复全部(打开撰写窗口) |
| `forwardMessage` | 转发带有原始附件的消息(打开撰写窗口) |
| `updateMessage` | 标记为已读/未读、标记/取消标记、移动到文件夹或删除 |
| `deleteMessages` | 批量删除消息 |
### 联系人和日历
| 工具 | 描述 |
|------|-------------|
| `searchContacts` | 按姓名或电子邮件搜索联系人 |
| `listCalendars` | 列出所有日历及其项目数量和可写入状态 |
| `createEvent` | 创建日历事件(打开 Outlook 事件窗口) |
## 安全
该服务器以安全为首要考虑因素进行设计:
- **不自动发送**:`sendMail`、`replyToMessage`、`forwardMessage` 和 `createEvent` 都调用 `.Display()` 而不是 `.Send()` / `.Save()`。这会打开 Outlook 撰写窗口,以便用户可以审查并确认后再发送。
- **Outlook 对象模型防护**:Outlook 可能会为发送操作显示额外的安全提示。这是预期行为。
- **本地运行**:所有数据保留在您的机器上。无需外部 API 调用,无需云服务,无需 OAuth 令牌。
## 技术细节
- **COM 接口**:使用 `pywin32`(`win32com.client`)控制 Outlook
- **MCP 传输**:标准输入/输出(stdio)
- **消息 ID**:使用 Outlook 的 `EntryID` 作为唯一标识符
- **搜索**:使用 `Items.Restrict()` 和 DASL 过滤器进行高效的服务器端筛选
- **国际化**:自动处理“Inbox”和“收件箱”等文件夹名称
## 相关项目
- [mail-assistant](https://github.com/lihaokun/mail-assistant) — 使用 MCP 的 AI 邮件助手,适用于 Thunderbird 和 Outlook
- [thunderbird-mcp](https://github.com/TKasperczyk/thunderbird-mcp) — Thunderbird 的 MCP 服务器
## 许可证
MIT