如何在 Cursor 中读取 Microsoft Teams 而无需 Graph API(Claude、VS Code、Windsurf)
让 Cursor、Claude Desktop、VS Code 或任何 MCP 客户端在 Mac 上访问 Microsoft Teams 消息。无需 Graph API,无需 OAuth,无需 Azure AD。直接通过 LevelDB 从本地 Teams 缓存读取。
问题所在
你正深入一段编码会话,这时有人在 Teams 上提到 API 端点的 schema 变了。或者三小时前有同事在某个频道里发布了新的数据库凭据。通常,你不得不切换到 Teams,翻看各个对话,找到相关消息,复制信息,再切换回你的编辑器。
以编程方式访问 Teams 的官方途径是 Microsoft Graph API,它需要注册一个 Azure AD 应用、配置 OAuth scope、处理 token 刷新,还要应对速率限制。对于一个只想在编码时读一条消息的开发者来说,这是荒谬到极点的繁琐手续。
LMCP 如何解决
LMCP 采用了一种完全不同的方式。它不经过 Microsoft 的云端 API,而是直接从你 Mac 上的本地缓存读取 Teams 数据。Teams 桌面应用将其消息存储在一个 LevelDB 数据库中(即其基于 Chromium 的渲染器所用的 IndexedDB 后端存储)。LMCP 在本地读取这个数据库,这意味着:
- 无需 Microsoft Graph API 注册
- 无需 OAuth token 或 Azure AD 配置
- 没有速率限制或 API 配额
- 不向 Microsoft 服务器发出任何网络请求
- 即使你的 VPN 或企业代理屏蔽了 Graph API 也能工作
安装完成后,你可以向你的 AI 助手提出这样的请求:
总结我 Teams 频道中关于 API 迁移的未读消息
你的 AI 会通过 LMCP 读取这些消息,并直接在你的编辑器中给出总结。无需切换上下文,无需复制粘贴。
工作原理
Mac 上的 Microsoft Teams 桌面应用(即新版 Teams,版本 2.x)基于 Electron 构建,并将其数据存储在一个基于 Chromium 的 LevelDB 数据库中,路径为:
~/Library/Containers/com.microsoft.teams2/.../https_teams.microsoft.com_0.indexeddb.leveldb
LMCP 使用 ccl_chromium_reader(一个用于读取 Chromium IndexedDB 存储的开源库)来解析这个数据库。它提取聊天消息、频道帖子、团队名称以及对话元数据 — 全程不发出任何一次网络请求。
这些数据是只读的。LMCP 无法发送消息、修改对话或向 Teams 数据库写入。它只读取 Teams 应用已经缓存在本地的内容。
第 1 步:在你的 Mac 上安装 LMCP
下载 LMCP 并安装:
- 从你的下载文件夹中打开下载好的
.dmg文件 - 将 Local MCP 拖到你的应用程序文件夹
- 从应用程序文件夹中打开 Local MCP — 它会出现在你的菜单栏中
大约只需 30 秒。你的 AI 客户端会被自动配置。
第 2 步:重启你的 AI 客户端
安装完成后,重启你的 AI 客户端,使其能识别新的 MCP 工具:
- Cursor — 重启编辑器
- Claude Desktop — 完全退出(Cmd+Q)后重新打开
- VS Code — 重新加载窗口(Cmd+Shift+P → “Reload Window”)
- ChatGPT / Windsurf — 重启应用程序
第 3 步:确保 Teams 正在运行
LMCP 从本地 Teams 缓存读取数据,因此 Teams 桌面应用需要已安装,并且你至少登录过一次。查询时该应用不一定要正在运行 — 缓存的数据会持久保存在磁盘上。但为了获取最新的消息,请让 Teams 保持运行,以便它同步新数据。
第 4 步:从你的 AI 查询 Teams
打开你的 AI 客户端,试试这样的提示:
- “列出我最近的 Teams 聊天” — 查看你的一对一和群组对话。
- “今天后端团队在 #deployments 频道发了什么?” — 搜索特定频道。
- “总结我 Teams 频道中关于 API 迁移的未读消息” — 获取聚焦的总结。
- “找到 Sarah 分享新 staging URL 的那条消息” — 在所有对话中搜索。
有哪些 Teams 数据可用?
LMCP 向你的 AI 助手开放以下 Teams 工具:
- 列出聊天 — 浏览你的一对一对话和群组聊天
- 读取聊天消息 — 获取任意聊天对话的内容
- 列出团队 — 查看你所属的所有 Teams
- 列出频道 — 浏览某个团队内的频道
- 读取频道消息 — 获取任意频道的帖子和回复
所有操作都是只读的。你无法通过 LMCP 发送消息。
开发者工作流
代码审查上下文
查看我的 Teams 消息中是否有关于支付服务重构的讨论,然后看看这个仓库里待处理的 PR,并把两者一起总结。
你的 AI 会同时从 Teams 和你的代码库中提取上下文,在你开始审查之前为你呈现全貌。
事故响应
读取 Teams 上 #incidents 频道里的最新消息,并查看这个项目的错误日志。是什么可能导致了这些 500 错误?
在事故期间,让 Teams 的上下文直接呈现在你的编辑器中,能节省关键的几分钟。
常见问题
这适用于旧版 Teams 应用(Teams Classic)吗?
不适用。本地 LevelDB 方式适用于新版 Microsoft Teams(版本 2.x),即 Microsoft 自 2023 年以来一直发布的基于 Electron 的应用。旧版 Teams Classic 使用了不同的存储格式。如果你仍在使用 Teams Classic,请更新到新版本 — Microsoft 已推进这次迁移两年多了。
LMCP 能在 Teams 上发送消息吗?
不能。Teams 访问是只读的。LMCP 从本地缓存读取,但无法向其写入。发送消息需要 Graph API,而这会违背本地优先方式的初衷。如果你需要发送消息,请直接使用 Teams。
如果我的 Teams 数据过期了怎么办?
LMCP 读取的是本地缓存中的任何内容。如果 Teams 桌面应用正在运行并已连接,缓存就会保持最新。如果 Teams 已经关闭了一段时间,数据将反映它上次同步时的状态。为了获取最新数据,请确保 Teams 在后台运行。
适用于所有主流 AI 客户端
虽然本指南聚焦于 Cursor,但 LMCP 适用于任何兼容 MCP 的客户端。你也可以从 Claude Desktop、带 Copilot 的 VS Code、Windsurf、ChatGPT、Zed 等访问 Teams。它们的安装命令都是一样的。
LMCP 还能做什么?
Teams 只是 LMCP 连接到你 AI 助手的众多应用之一。你还可以访问 Mail 和电子邮件、无需 OAuth 的 Calendar、Contacts、OneDrive、Outlook 等等。查看 完整的指南列表 了解所有可用的集成。