Teams集成设置Skill ms-teams-setup

这个技能用于将 Microsoft Teams 连接到 Dex 平台,通过 Microsoft Entra ID (Azure AD) 的 OAuth 2.0 认证,实现跨渠道的上下文感知。它可以增强日常计划技能,显示 Teams 的未读聊天和提及;增强会议准备技能,提供参会者的最近 Teams 对话上下文;并丰富人员页面。关键词:Microsoft Teams, Dex, 集成, 上下文感知, OAuth 认证, 日常计划, 会议准备, Teams 摘要。

Azure 0 次安装 0 次浏览 更新于 3/20/2026

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: 检查是否已连接

  1. 尝试从 Teams MCP 服务器调用 teams_health_check()
  2. 如果健康且响应,跳转到 步骤 5(配置频道)
  3. 如果工具不可用或出错,继续步骤 2

步骤 2: 解释我们正在设置什么

说:

**让我们将 Microsoft Teams 连接到 Dex。**

这通过 Microsoft Entra ID(Azure AD)使用 OAuth 2.0 流程安全地访问您的 Teams 消息和频道。

**您需要:**
- 您的 Microsoft 365 / Teams 账户凭据
- 大约 5 分钟(可能需要管理员同意,取决于您的组织)

**准备好了吗?**

等待确认。

步骤 3: 添加 Teams MCP 服务器

检查用户的 MCP 配置。如果 teams-mcp 未列出:

  1. 解释我们正在添加的内容:
我需要将 Teams 连接器添加到您的 Dex 配置中。

这添加了一个桥接器,让 Dex 通过 Microsoft Graph API 使用 OAuth 2.0 读取您的 Teams 消息和频道。
  1. 添加到用户的 .mcp.json(使用 /dex-add-mcp 技能或手动编辑):
{
  "teams-mcp": {
    "command": "npx",
    "args": ["-y", "teams-mcp"],
    "env": {
      "TEAMS_TENANT_ID": "<tenant-id>",
      "TEAMS_CLIENT_ID": "<client-id>"
    }
  }
}
  1. 告诉用户 MCP 服务器需要重启以使更改生效。

步骤 4: 通过 OAuth 2.0 认证

  1. 指导用户完成 OAuth 流程:
**Microsoft Entra ID 认证**

您需要授权 Dex 读取您的 Teams 数据。这将打开一个浏览器窗口,您用 Microsoft 账户登录。

**步骤:**
1. 我将启动认证流程 — 浏览器窗口将打开
2. 用您的 Microsoft 365 账户登录
3. 授予请求的权限(读取消息、频道、存在状态)
4. 令牌将本地保存在您的机器上

**现在开始...**
  1. 运行 Teams MCP 认证命令(例如,teams_authenticate()
  2. 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: 测试连接

运行快速测试以确认一切正常:

  1. teams_list_chats(limit=3) — 验证聊天加载
  2. 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 分钟,刷新令牌持续时间更长)。如果看到认证错误:

  1. 运行 /ms-teams-setup
  2. OAuth 流程将自动刷新您的令牌
  3. 如果刷新失败,您需要再次登录

这是正常的 — 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

  1. teams_health_check() 检查当前状态
  2. System/integrations/config.yaml 显示当前配置
  3. 提供选项:
    • 更新优先频道
    • 切换功能(摘要、会议准备、人员丰富)
    • 重新认证(如果令牌过期)
    • 断开 Teams 连接

断开流程

如果用户想断开:

  1. 更新 System/integrations/config.yaml
    teams:
      enabled: false
    
  2. 确认:“Teams 已断开连接。您的日常计划和会议准备将不再包括 Teams 上下文。随时运行 /ms-teams-setup 重新连接。”