name: ms-teams-setup description: 将 Microsoft Teams 连接到 Dex 以实现跨渠道上下文感知 integration: id: teams name: Microsoft Teams mcp_server: teams-mcp auth: oauth2 enhances: - skill: daily-plan capability: “Teams 摘要与 Slack 并列 — 未读聊天、提及和优先频道活动” - skill: meeting-prep capability: “Teams 对话上下文与参会者、最近线程和频道决策” new_capabilities: - name: teams-digest trigger: “当 Teams 连接时,自动包含在 /daily-plan 中” - name: teams-person-context trigger: “人员页面 enriched with latest Teams conversations” sync: direction: read entities: messages, channels, presence
Teams 设置
将您的 Microsoft Teams 工作空间连接到 Dex,使您的日常计划、会议准备和人员页面从 Teams 对话中获得更丰富的上下文。
此功能启用什么
一旦连接,Dex 可以:
- 会议准备: 在会议前查看与参会者的最近 Teams 对话
- 日常计划: 显示需要您关注的未读聊天和提及
- 人员上下文: 知道您最近在 Teams 中与某人讨论的内容
隐私
- Dex 按需读取 Teams 消息 — 不永久存储任何内容
- 消息被获取、总结,并在会话后丢弃
- 仅可访问您的租户消息(限于您的账户)
- OAuth 令牌本地保存在您的机器上,并被 gitignore 忽略
何时运行
- 用户输入
/ms-teams-setup - 用户询问连接 Teams
- 用户希望在日常计划或会议准备中获得 Teams 上下文
- 在
/integrate-mcp中如果提到 Teams
设置流程
步骤 1: 检查是否已连接
- 尝试从 Teams MCP 服务器调用
teams_health_check() - 如果健康且响应,跳转到 步骤 5(配置频道)
- 如果工具不可用或出错,继续步骤 2
步骤 2: 解释我们正在设置什么
说:
**让我们将 Microsoft Teams 连接到 Dex。**
这通过 Microsoft Entra ID(Azure AD)使用 OAuth 2.0 流程安全地访问您的 Teams 消息和频道。
**您需要:**
- 您的 Microsoft 365 / Teams 账户凭据
- 大约 5 分钟(可能需要管理员同意,取决于您的组织)
**准备好了吗?**
等待确认。
步骤 3: 添加 Teams MCP 服务器
检查用户的 MCP 配置。如果 teams-mcp 未列出:
- 解释我们正在添加的内容:
我需要将 Teams 连接器添加到您的 Dex 配置中。
这添加了一个桥接器,让 Dex 通过 Microsoft Graph API 使用 OAuth 2.0 读取您的 Teams 消息和频道。
- 添加到用户的
.mcp.json(使用/dex-add-mcp技能或手动编辑):
{
"teams-mcp": {
"command": "npx",
"args": ["-y", "teams-mcp"],
"env": {
"TEAMS_TENANT_ID": "<tenant-id>",
"TEAMS_CLIENT_ID": "<client-id>"
}
}
}
- 告诉用户 MCP 服务器需要重启以使更改生效。
步骤 4: 通过 OAuth 2.0 认证
- 指导用户完成 OAuth 流程:
**Microsoft Entra ID 认证**
您需要授权 Dex 读取您的 Teams 数据。这将打开一个浏览器窗口,您用 Microsoft 账户登录。
**步骤:**
1. 我将启动认证流程 — 浏览器窗口将打开
2. 用您的 Microsoft 365 账户登录
3. 授予请求的权限(读取消息、频道、存在状态)
4. 令牌将本地保存在您的机器上
**现在开始...**
- 运行 Teams MCP 认证命令(例如,
teams_authenticate()) - 用
teams_health_check()验证
如果健康检查成功:
已连接!我可以看到您的 Teams 租户。
如果失败 — 需要管理员同意:
嗯,您的组织需要管理员同意此应用。
**选项:**
1. **询问您的 IT 管理员** 在 Entra ID(Azure AD)中批准应用
- 所需应用权限:Chat.Read、ChannelMessage.Read、User.Read、Presence.Read
2. **使用个人账户** 如果这是个人 Teams
3. **暂时跳过** 并在管理员批准后返回
您更喜欢哪个?
如果失败 — 其他错误:
那没成功。检查以下几点:
1. **您是否登录了正确的 Microsoft 账户?**
2. **您的组织是否使用 Microsoft 365?**(Teams 需要 M365 许可证)
3. **尝试在浏览器中注销所有 Microsoft 账户**,然后重试
要重试吗?
重试最多 2 次,然后提供跳过并稍后返回的选项。
步骤 5: 配置频道
一旦连接,询问:
**哪些 Teams 频道对您的工作最重要?**
我在构建您的日常摘要和会议准备时会优先考虑这些。
一些常见选择:
- 您的 1:1 聊天(始终自动包含)
- 团队频道(例如,General、您的部门)
- 项目特定频道
- 客户或交易频道
**我应该关注哪些频道?**(只需列出名称,或说“显示可用的内容”)
如果他们说“显示可用的内容”:
- 运行
teams_list_channels()或等效命令 - 显示列表并让他们选择
将他们的选择保存到配置文件。
步骤 6: 测试连接
运行快速测试以确认一切正常:
teams_list_chats(limit=3)— 验证聊天加载teams_search_messages(query="test", count=1)— 验证搜索工作
显示简要摘要:
**快速测试结果:**
- 聊天:找到 [N] 个最近对话
- 搜索:工作正常
一切看起来很好!
如果任一失败,在继续前进行故障排除。
步骤 7: 保存配置
写入 System/integrations/config.yaml — 更新 teams 部分:
teams:
enabled: true
configured_at: YYYY-MM-DD
priority_channels:
- channel-name-1
- channel-name-2
features:
teams_digest: true
meeting_prep: true
person_enrichment: true
如果文件已存在,仅更新 teams: 部分。保留其他集成配置。
步骤 8: 共存检查(Slack + Teams)
检查 config.yaml 中是否也启用了 Slack。如果是:
**Slack 和 Teams 现已连接!**
以下是它们如何协同工作:
- **日常计划** 显示两个摘要,明确标记:“**Slack:**”和“**Teams:**”
- **会议准备** 搜索两者以获取参会者上下文
- 无重复 — 每个源都标记,并在同一人在两者中出现时去重
- 您可以随时禁用任一而不影响另一
当 Slack 和 Teams 都启用时:
/daily-plan显示两个摘要并排/meeting-prep检查两者以获取参会者上下文- 无重复 — 每个源都标记
- 如果同一人在 Slack 和 Teams 中都出现,上下文合并并标记源
步骤 9: 能力级联(确认)
**Teams 已连接!**
以下是刚刚变化的内容:
### 增强
- **`/daily-plan`** — 现在包括带有未读聊天和提及的 Teams 摘要
- **`/meeting-prep`** — 搜索 Teams 以获取与参会者的最近线程
### 新超能力
- **Teams 摘要** — 自动出现在您的日常计划中
- **Teams 人员上下文** — 人员页面包括最新的 Teams 对话
### 工作原理
- **读取:** Teams 上下文自动出现在您的计划和准备中
- **隐私:** 消息按需获取、总结,然后丢弃。不永久存储任何内容。
您可以随时通过再次运行 `/ms-teams-setup` 调整设置。
故障排除
令牌过期
OAuth 令牌定期过期(通常每 60-90 分钟,刷新令牌持续时间更长)。如果看到认证错误:
- 运行
/ms-teams-setup - OAuth 流程将自动刷新您的令牌
- 如果刷新失败,您需要再次登录
这是正常的 — Microsoft OAuth 令牌的寿命比其他一些服务短。
需要管理员同意
您的 Microsoft 365 管理员可能需要批准应用。常用所需权限:
Chat.Read— 读取您的聊天消息ChannelMessage.Read.All— 读取频道消息User.Read— 读取您的个人资料Presence.Read— 读取存在状态
请您的 IT 团队在 Entra ID > 企业应用程序 中批准这些。
“Teams MCP 未找到”
服务器可能不在您的配置中。重新运行 /ms-teams-setup,它将检测并修复此问题。
速率限制
Microsoft Graph API 有节流限制。如果看到 429 错误,等待几分钟并重试。这在正常使用中很少发生。
未找到消息
几种可能性:
- 您的租户可能限制 API 访问。请与您的 IT/管理团队核实。
- 确保您的账户有 Teams 许可证(不仅仅是 Outlook)。
- 尝试
teams_search_messages(query="hello", count=1)作为基本测试。
重新配置
如果用户在已配置时运行 /ms-teams-setup:
- 用
teams_health_check()检查当前状态 - 从
System/integrations/config.yaml显示当前配置 - 提供选项:
- 更新优先频道
- 切换功能(摘要、会议准备、人员丰富)
- 重新认证(如果令牌过期)
- 断开 Teams 连接
断开流程
如果用户想断开:
- 更新
System/integrations/config.yaml:teams: enabled: false - 确认:“Teams 已断开连接。您的日常计划和会议准备将不再包括 Teams 上下文。随时运行
/ms-teams-setup重新连接。”