mcpField
O
Outlook Classic

Outlook Classic

本地服务
github.com/jli-software通信协作02 周前更新

关于 Outlook Classic

Outlook Classic 是面向 Windows AI 助手的 MCP 服务,通过现有 COM 会话操作经典版 Outlook。它在本机访问邮件、日历和联系人,默认禁用发送,并将更改记录到审计日志。

主要功能

  1. 01搜索、阅读、起草和整理邮件
  2. 02管理日历约会与邀请
  3. 03搜索联系人和公司目录
  4. 04在允许的目录保存和附加文件
  5. 05发送功能需明确启用
  6. 06本地 JSON 行审计日志

适用场景

  1. 01查找并总结近期邮件
  2. 02起草回复并整理文件夹
  3. 03查看空闲时间并管理约会
  4. 04查询同事并准备邀请

MCP 相关

通过 stdio 和 COM 将 MCP 客户端连接到经典版 Outlook,提供邮件、日历和联系人工具。除非明确启用,否则不能发送邮件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpboutlook-classic-mcp.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Outlook Classic MCP 徽标

Outlook Classic MCP

适用于 Microsoft Outlook 的 MCP 服务——Windows 经典桌面应用。
让 Claude、Codex 和其他 AI 助手读取、搜索和整理你的邮箱与日历,
查找同事并为你撰写草稿——通过你在电脑上已登录的 Outlook。

发布版本 平台 Outlook 许可证 使用 Go 构建


Claude / Codex  ──MCP──▶  outlook-classic-mcp.exe  ──COM──▶  Outlook (classic)  ──▶  your mailbox

优势

  • 无需 Azure 应用、Graph API 或令牌。 它通过 COM 与正在运行的 Outlook 通信,并 使用你已登录的会话。无需注册,也无需管理员同意。
  • 可在 Microsoft Graph 受阻时使用——例如受到条件访问或令牌保护策略限制时。只要 Outlook 能在你的电脑上运行,它就能正常工作。
  • 仅在本地运行。 除了你使用的 AI 客户端,你的邮件绝不会离开你的电脑。
  • 仅在你允许时发送。 默认情况下,所有外发内容都会变成草稿,由你审核并自行发送——也包括会议邀请和对邀请的回复。 发送功能需明确选择启用(--allow-send),即便启用,也只会发送草稿。
  • 审计日志。 助手所做的每项更改——草稿、发送、移动、删除、日历操作—— 都会在本地记录为一行 JSON,不包含邮件正文。
  • 文件受到严格限制。 附件只能从你的用户配置文件和 %TEMP% 添加,也只能保存到这些位置,这样精心构造的邮件就无法诱使 助手附加任意文件。
  • 小巧的单个 EXE。 无需 Python、PowerShell、运行时或后台服务。

要求

  • 安装并配置了邮箱的 Windows 电脑,需使用经典版 Outlook(Outlook for Microsoft 365 / 2016 / 2019 / 2021 桌面版, 即 Win32 应用)。 新版 Outlook(“Outlook for Windows”,olk.exe)没有 COM 接口—— 请参阅下方的正在使用新版 Outlook?。
  • 一个 MCP 客户端:Claude Desktop、Claude Code、Codex、Cursor、VS Code 等。
  • 请以普通用户身份运行,不要提权(管理员进程无法连接到你的 Outlook)。

安装

在 PowerShell 中运行:

irm https://raw.githubusercontent.com/jli-software/outlook-classic-mcp/main/install.ps1 | iex

此命令会将最新版本下载到 %LOCALAPPDATA%\Programs\outlook-classic-mcp, 验证其 SHA-256,并将其注册为 Claude Desktop、Claude Code 和 Codex 中的 outlook 服务。重启客户端即可完成。

仅适用于 Claude Desktop: 从 最新版本 下载 outlook-classic-mcp.mcpb 并打开,Claude Desktop 会将其安装为扩展。

手动安装
  1. 从 最新版本 下载 outlook-classic-mcp-windows-x64.exe,并将其保存为 outlook-classic-mcp.exe,位置不限。
  2. 注册:
    .\outlook-classic-mcp.exe install           # Claude Desktop, Claude Code, Codex
    .\outlook-classic-mcp.exe install --allow-send  # same, with sending enabled
    .\outlook-classic-mcp.exe install --print   # dry run: only show the config files
    .\outlook-classic-mcp.exe install codex     # only one target (desktop | code | codex)
    
    保留现有配置;在写入新配置前会先创建 .outlook-classic-mcp.bak 备份。

Windows SmartScreen 可能会警告该 EXE 未签名——选择“更多信息 → 仍要运行”。

其他 MCP 客户端(Cursor、VS Code、Windsurf 等)

在客户端的 MCP 配置中添加一个 stdio 服务:

{
  "mcpServers": {
    "outlook": {
      "command": "C:\\Users\\you\\AppData\\Local\\Programs\\outlook-classic-mcp\\outlook-classic-mcp.exe",
      "args": ["serve"]
    }
  }
}
## 可以询问的内容

“总结一下我今天的未读邮件。” “在所有文件夹中查找 Contoso 的发票,并保存 PDF。” “起草一封回复 Anna 最近邮件的草稿:周四可以,上午 10 点。” “将本周所有新闻简报移到 Archive 并标记为已读。” “Anna Smith 的电子邮件地址和部门是什么?为她起草一封周五的邀请。” “我这周的日历安排是什么?周二 Anna 和 Beat 什么时候都有空?” “把我下午 2 点的牙医预约改到周四,并设置提前 1 小时提醒。”

工具

工具功能
mail_list列出文件夹(Inbox、Sent Items、Drafts 等或任意文件夹)中的最新邮件
mail_search搜索主题、发件人和正文——可搜索单个文件夹,也可使用 folder: "all" 搜索所有文件夹
mail_read获取完整邮件,包括正文和附件名称(可一次读取多封)
mail_create_draft新建邮件草稿,支持填写 To / CC / BCC
mail_reply创建回复草稿,包含邮件会话和引用内容,可选择添加附件
mail_forward创建转发草稿,在原邮件上方添加你的文字(包含附件)
mail_send_draft发送草稿——仅在使用 --allow-send 时可用,请参阅发送
mail_update_draft修改草稿;回复草稿中仅替换你的文字,引用内容和签名保持不变
mail_attachments列出附件
mail_save_attachment将附件保存到磁盘,以便助手读取
mail_folders获取包含 ID 和数量的完整文件夹树
mail_create_folder创建文件夹
mail_move将邮件移到文件夹
mail_mark_read标记为已读 / 未读
mail_categorize设置 Outlook 类别(颜色标签)
mail_delete移到 Deleted Items(不会永久删除)
mail_sync触发发送/接收,以刷新本地缓存
contacts_search在你的联系人和公司目录(全局地址列表)中查找人员
contacts_resolve将姓名转换为电子邮件地址;存在歧义时会列出候选项,而不是猜测
contacts_get获取联系人的所有详细信息,或目录条目的所有详细信息(电话、部门、经理等)
contacts_list列出你自己的联系人
outlook_whoami查看已登录邮箱、Outlook 版本、连接状态及此服务的设置
calendar_list查看指定时间范围内的约会(默认:未来 7 天),包括重复约会
calendar_get获取详细信息:说明、参会者及其响应、Teams 链接、提醒
calendar_create创建约会;添加参会者后会成为会议,但只保存,不会发送
calendar_update修改时间、主题、地点等——可修改单次约会或整个系列
calendar_delete删除约会或单次约会;拒绝删除你组织且已发送的会议
calendar_respond接受 / 暂定 / 拒绝邀请——响应会保存为草稿
calendar_free_busy查看同事在指定日期的忙碌时间(以 30 分钟为间隔)

不使用 --allow-send 时,完全没有发送工具。在日历中,这意味着:新会议会保持未发送状态,直到你在 Outlook 中点击“发送”;对邀请的响应会进入 Drafts;修改或删除会议不会通知任何人——如果你组织的会议已发送邀请,则无法删除,以免参会者留下一个并不存在的会议(请改为在 Outlook 中取消)。

时间输入和输出均使用当地时间的 ISO 8601 格式(2026-10-29T14:00);仅输入日期(2026-10-29)时会创建全天事件。带偏移量的时间(+01:00、Z)会转换为当地时间。

电子邮件地址始终以 SMTP 地址形式返回([email protected]),Exchange 发件人和目录条目也不例外——绝不会返回 /O=…/CN=…。

发送

默认情况下,发送功能处于关闭状态。要启用该功能,请使用 install --allow-send 注册服务(或在客户端的 args 中 "serve" 后添加 "--allow-send"), 然后重启客户端。不带该标志运行 install 会再次关闭此功能。

启用发送后,助手仍会先撰写草稿;随后由 mail_send_draft 发送,并且只有在你确认了 该确切草稿后,工具才会指示助手发送。它只接受 Drafts 文件夹中的电子邮件或会议回复, 其他内容一律拒绝;如果无法解析收件人,则不会发送任何内容。会议永远不会由服务发送—— 邀请、更新和取消仍由你在 Outlook 中处理。

已发送邮件会先进入 Outbox;经典版 Outlook 会在下一次同步时发送邮件(需保持 Outlook 运行,通常只需几秒)。

Outlook 安全提示: Outlook 可能会显示警告:“某个程序正试图代表你发送电子邮件” (Object Model Guard)。在安装了最新版本且受认可的防病毒软件的电脑上,通常不会出现此提示; 如果出现,发送操作会等待你点击确认,并在 90 秒后超时。管理员可以通过 Outlook 策略 Programmatic Access Security 控制此功能。

审计日志

每个会更改内容的操作都会以一行 JSON 追加到 %LOCALAPPDATA%\outlook-classic-mcp\audit.log:

{"time":"2026-10-29T10:32:33+01:00","tool":"mail_send_draft","id":"00000000…","ok":true,"subject":"Offer","to":["[email protected]"]}

日志会记录时间、工具、ID、收件人、主题和结果,但绝不会记录邮件正文。 文件达到 5 MB 时会轮换(audit.log.1)。在服务的环境变量中设置 OUTLOOK_MCP_AUDIT_LOG 可指定其他路径,或将其设为 off。outlook_whoami 会显示日志写入位置。

附件文件夹

mail_reply(attachments)和 mail_save_attachment(dir)只接受位于 你的用户配置文件(%USERPROFILE%)或 %TEMP% 下的路径;其他路径一律拒绝。要取消此限制, 请在服务的环境变量中设置 OUTLOOK_MCP_ALLOW_ANY_PATH=1,例如:

"outlook": { "command": "…\\outlook-classic-mcp.exe", "args": ["serve"],
             "env": { "OUTLOOK_MCP_ALLOW_ANY_PATH": "1" } }

正在使用新版 Outlook?

你可以继续使用新版 Outlook。只需安装经典版 Outlook,并偶尔运行它,因为此服务会读取其本地缓存:

  • 最佳方式: 随 Windows 启动经典版 Outlook,并将其最小化。你不会注意到它,而缓存也会保持最新。关闭其桌面通知,以免每封邮件都收到两次提醒 (File → Options → Mail → Display a Desktop Alert)。
    $s  = New-Object -ComObject WScript.Shell
    $sc = $s.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\Outlook (classic).lnk")
    $sc.TargetPath  = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE').'(default)'
    $sc.WindowStyle = 7   # minimized
    $sc.Save()
    
  • 按需操作: 先让助手运行 mail_sync。

如果经典版 Outlook 已关闭,服务会在后台启动它,并在 5 分钟没有调用后将其关闭。

故障排查

问题解决方法
0x80080005 / “server execution failed”MCP 客户端以提升的权限运行,或 Outlook 正在启动。请以普通用户身份运行客户端,并保持 Outlook 打开。
新版 Outlook 中看不到草稿经典版 Outlook 尚未同步——运行 mail_sync 或保持经典版 Outlook 运行。
folder not found使用 mail_folders,并传入文件夹 ID 或完整路径。未知文件夹会按预期报错,绝不会静默回退到 Inbox。
首次 contacts_search 需要几秒钟Outlook 无法筛选公司目录,因此首次搜索会读取所有姓名(每条约 2 ms),并将其缓存 30 分钟。之后的搜索会立即完成。
搜索所有文件夹需要几秒钟该操作会扫描每封邮件的文本(几千封邮件约需 5–10 秒)。尽可能只搜索一个文件夹。
Outlook 中的对话框阻塞操作调用会在 90 秒后超时;请关闭对话框并重试。
找不到 mail_send_draft发送功能已关闭——使用 install --allow-send 注册,并重启客户端。
已发送邮件仍留在 Outbox经典版 Outlook 处于脱机状态或未运行;请打开它或运行 mail_sync。

从源代码构建

git clone https://github.com/jli-software/outlook-classic-mcp
cd outlook-classic-mcp
go build -o outlook-classic-mcp.exe .
go test .

纯 Go(不使用 CGO),使用 go-ole 处理 COM, 并使用 mcp-go 处理 MCP。

免责声明

这是一个独立的开源项目,与 Microsoft 无关,也未获其认可或赞助。“Microsoft”和“Outlook” 是 Microsoft 集团公司的商标。

License

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。