在 Mac 上使用 Claude 读取和发送 Microsoft Teams 消息 — 无需 Graph API
Claude、ChatGPT、Cursor 或 VS Code 可以在 Mac 上读取并发送 Microsoft Teams 消息 — 无需 OAuth、Graph API 或管理员批准。
要让 Claude 在 Mac 上读取你的 Microsoft Teams 聊天,请安装 LMCP — 这是一个免费、本地运行的 MCP 服务器,可读取你电脑上 Teams 桌面应用自身的本地数据库。由于它从不调用 Microsoft Graph,因此无需注册 Azure 应用、无需管理员同意,也无需 API 密钥 — 避开了由 IT 管理租户时通常会遇到的障碍。你的 AI 可以搜索聊天和频道、读取历史记录并发送消息。
如果所选 AI 客户端使用云端 AI 提供商,该提供商可能会接收和处理完成任务所请求的消息内容,并适用其自身条款。
你可以访问什么
通过 LMCP,你的 AI 助手可以:
- 列出你的聊天 — 查看你所有的一对一和群组对话及其最近活动
- 读取聊天消息 — 获取任意聊天对话的完整消息历史
- 列出你的团队 — 查看你所属的 Teams 工作区
- 列出频道 — 浏览某个团队内的频道
- 读取频道消息 — 获取你有权访问的任意频道的消息
- 发送聊天消息 — 回复或发起对话,在发送任何内容前会显示预览
预览和确认行为取决于工具、平台和 AI 客户端。在授权真实调用前,请查看工具要求并核对预期操作。
如何安装
下载 LMCP 并安装:
- 从“下载”文件夹打开已下载的
LMCP-Installer.pkg - 按照安装向导操作 — 它会替你将 Local MCP 安装到“应用程序”(无需手动移动文件)
- 从“应用程序”文件夹打开 Local MCP — 它会出现在菜单栏中
大约需要 30 秒。你的 AI 客户端会被自动配置好。
安装完成后,重启你的 AI 客户端,让它加载新的 MCP 工具:
- Claude Desktop — 完全退出(Cmd+Q)后重新打开
- Cursor — 重启编辑器
- VS Code — 重新加载窗口(Cmd+Shift+P → “Reload Window”)
- ChatGPT / Windsurf — 重启应用程序
确保已安装 Microsoft Teams 并且你已登录。LMCP 会自动检测你的 Teams 数据。
Teams 无需任何额外配置 — 没有 API 密钥,也没有要授予的权限。只要你的 Teams 数据在磁盘上,LMCP 就能找到它。
示例提示词
连接成功后,试试用这些提示词与你的 AI 助手交流:
- “团队今天在 General 频道里讨论了什么?” — 读取最近的频道消息并总结要点
- “显示我和 Marco 的对话” — 列出某个特定聊天的最近消息
- “查找任何关于部署截止日期的消息” — 在你的聊天和频道中进行搜索
- “总结一下我今天上午在 Teams 里错过的内容” — 汇总多个对话中的消息
- “今天哪些频道有新消息?” — 扫描你的团队以查看最近活动
- “设计团队对新的原型说了什么?” — 查找并总结相关讨论
你的 AI 助手在帮你追赶繁忙频道的进度方面尤其有用。你不必翻阅数百条消息,只需让它总结出真正重要的内容即可。
为什么其他方案都需要 Graph API
Microsoft Teams 是最难与 AI 助手集成的生产力应用之一。以编程方式访问 Teams 数据的官方途径是通过 Microsoft Graph API,而它要求:
- Azure AD 应用注册 — 你需要在 Microsoft Entra(前身为 Azure AD)中创建一个应用,并赋予正确的权限
- 管理员同意 — 租户管理员必须批准你的应用访问 Teams 数据,而大多数 IT 部门都不愿意授予这一权限
- OAuth 令牌管理 — 访问令牌会过期,需要刷新,并且必须安全存储
- 委派权限与应用权限之分 — 权限模型十分复杂,要取得正确的作用域往往要反复试错
- 速率限制 — Graph API 对请求进行激进的限流,对 Teams 端点尤其如此
对大多数个人和小团队而言,这根本行不通。你无法像连接一个文件或一个数据库那样,简单地“把你的 AI 连接到 Teams”。其中的组织开销极其庞大。
LMCP 如何以不同的方式读取 Teams
LMCP 完全绕开了 Graph API。它不向 Microsoft 的服务器发起网络请求,而是从 Teams 桌面应用在你 Mac 上维护的本地缓存中读取 Teams 数据。
Microsoft Teams(新版本,也称为 Teams 2.0)是一款基于 Electron 的应用,它把数据存储在一个由磁盘上的 LevelDB 支撑的 IndexedDB 数据库中。该数据库包含你最近的聊天、频道消息、团队成员关系以及对话元数据 — 这些都作为 Teams 正常运行的一部分存储在本地。
LMCP 使用一个专门的解析器直接读取这个 LevelDB 数据库。没有网络请求,没有 API 令牌,没有管理员同意。只要安装了 Teams 并且你已登录,你的消息就已经在你的磁盘上,LMCP 就能读取它们。
技术深入:LevelDB 解析的工作原理
对于对技术感兴趣的读者,下面介绍 LMCP 如何从本地缓存中提取 Teams 数据。
Microsoft Teams(新版本)将其数据存储在一个 IndexedDB 数据库中,位置为:
~/Library/Containers/com.microsoft.teams2/Data/Library/Application Support/Microsoft/Teams/Profiles/*/IndexedDB/https_teams.microsoft.com_0.indexeddb.leveldb这是一个 Chromium 风格的 LevelDB 数据库,与 Chrome、Electron 应用以及其他基于 Chromium 的应用所使用的格式相同。这些数据包括序列化的 JavaScript 对象,其中含有消息内容、元数据、时间戳和参与者信息。
LMCP 使用 ccl_chromium_reader 库 — 一个最初为数字取证开发的开源工具 — 来解析这种 LevelDB 格式。该库处理了 Chromium 的 IndexedDB 实现中的各种复杂细节,包括:
- 用于 JavaScript 对象的 V8 序列化格式
- LevelDB 的仅追加日志结构和压缩
- IndexedDB 的对象存储和索引组织方式
- 对已删除和已覆盖记录的处理
解析后的数据随后会被过滤并组织成干净的 JSON,供你的 AI 助手使用。消息内容、发送者信息、时间戳和对话元数据会被提取出来,并通过 MCP 工具提供。
这种方式在设计上就是只读的 — LevelDB 以读取模式打开,不会写回任何数据。LMCP 无法损坏或修改你的 Teams 缓存。
与其他方案的对比
让 AI 访问 Teams 数据有几种方式。下面是它们的对比:
- Microsoft Graph API — 完整的读写访问,但需要 Azure AD、管理员同意和令牌管理。最适合有 IT 支持的企业部署。
- Microsoft 365 Connector(Anthropic 官方) — 底层使用 Graph API,需要 Entra 租户管理员配置。如果你的 IT 部门配合,这是个不错的选择。
- LMCP(本地缓存) — 零配置即可立即读取,也能发送消息(需要先确认)。最适合需要快速访问的个人和小团队。
真实工作流
读取单条消息只是起点。真正的价值在于你让 AI 助手跨越多个对话综合信息并采取行动:
每日站会总结
读取今天工程频道的消息,提取每个人正在做的工作,找出阻碍因素,并创建一份总结笔记。
你不必翻阅一个繁忙的频道,AI 会读取全部内容,按人整理,并突出显示阻碍因素。对于需要随时了解情况但又无法逐条阅读消息的管理者来说堪称完美。
从 Teams 准备会议
查看团队在过去一周里在所有频道中关于 Project X 的讨论,总结关键决策,并列出我应该在明天会议上提出的待解决问题。
你的 AI 会扫描多个频道,找到相关讨论,并准备一份简报文档。你可以做到充分准备地走进会议,而不必手忙脚乱地临时补课。
从聊天创建任务
梳理我今天的 Teams 聊天,找出任何看起来像我做出的任务或承诺的内容,并列出谁提出的以及何时提出的。
Teams 中的对话常常包含隐含的承诺 — “我会去看看那个”或“让我把那份文档发给你”。你的 AI 会找出这些内容并将其呈现出来,让一切都不会被遗漏。
项目文档
读取 #architecture 频道里的最后 50 条消息,提取关于 API 设计所做出的决策,并创建一份包含架构决策日志的 Word 文档。
重要的决策常常被埋没在聊天历史中。你的 AI 会把它们提取出来,整理成一份正式的文档并保存下来,让你的团队拥有一份永久记录。
LMCP 还能把你的 AI 助手连接到电子邮件、Outlook、Calendar、Contacts、OneDrive 以及本地文件。查看完整的指南列表,或在 local-mcp.com 了解更多。
局限性
由于 LMCP 是从本地缓存而非实时 API 读取数据,因此存在一些固有的局限性需要注意:
- 只有已缓存的消息可用 — Teams 会缓存最近的对话,但非常久远的消息可能不在磁盘上。如果你已经几个月没打开某个聊天,它的消息可能不在缓存中。
- 只能发送,不能编辑或删除 — LMCP 可以发送新的聊天消息(带确认预览),但不能通过 Teams 编辑或删除现有消息
- 需要 Teams 桌面应用 — Teams 的网页版不会创建 LMCP 可读取的本地缓存
- 缓存新鲜度 — 缓存会在 Teams 同步时更新,而这通常在 Teams 运行时近乎实时地发生。如果 Teams 已关闭,缓存反映的是它上次打开时的状态。
- 多租户 — 如果你登录了多个组织,LMCP 可以读取来自所有这些组织的数据
常见问题
可以不用 Graph API 读取 Microsoft Teams 吗?
可以。LMCP 读取桌面应用已经保存在 Mac 上的本地 Teams 缓存 — 无需 Microsoft Graph API、OAuth 令牌或 Azure AD 应用注册。
需要管理员批准吗?
不需要。由于 LMCP 读取的是磁盘上已经存在的数据,因此无需请求租户管理员同意 — 这正是通常阻止个人将 AI 连接到 Teams 的障碍。
Claude 可以发送 Teams 消息吗?
可以 — 既能发送直接聊天消息,也能在频道发帖。LMCP 会在真正发送任何内容前显示预览并要求确认。读取和发送使用同一个本地缓存,因此读取已经正常工作后,无需再单独配置写入。
Microsoft 官方的 Teams MCP 服务器(Work IQ)呢?
Microsoft 正在预览 Work IQ 中的 Teams MCP 服务器,但它需要 Microsoft 365 Copilot 许可证,通过 Copilot Studio 运行,并使用 Copilot Credits 按用量计费。它面向在租户级别配置智能体的企业。LMCP 不需要其中任何一项:不需要 Copilot 许可证、Copilot Studio 或租户设置,也不按调用收费 — 它会免费读取 Mac 上已经安装的 Teams 应用。
现成方案
将 Teams 与其他应用一起使用的复制粘贴工作流:
相关指南
评论
评论在发布前需要审核。