← 返回目录
M

MCP Teams Server

社区
通过 MCP 读取、发布并回复 Microsoft Teams 消息。
GitHub 源仓库 ↗
★ 394 Stars 分类 · 团队协作 非常热门 源版本 a61db7677b7e
59FMRS · C
可靠性
9/20
安全与权限
12/20
维护活跃度
15/20
文档质量
13/20
安装易用性
10/20

该项目由 Inditex(InditexTech)维护,非 Microsoft 官方项目,采用 Apache-2.0 许可证,配有 SonarCloud 质量徽章、OpenSSF Scorecard 徽章及正式的 CHANGELOG、贡献指南和安全策略文档,并提供官方预构建 Docker 镜像,整体呈现出较为规范的工程实践,但依赖用户自行完成 Azure/Teams 前置配置。

查看 FMRS 评分方法 →

MCP Teams Server 是一个 Model Context Protocol 服务器实现,用于对接 Microsoft Teams。它可以在频道中发起带标题和正文的新讨论串并提及成员、回复已有讨论串、读取讨论串回复、列出频道团队成员,以及读取频道消息。服务器使用 Python 编写,通过 uv 运行,需要通过 Microsoft Entra ID 应用注册(应用 ID、客户端密钥、租户信息)和目标 Team/Channel ID 进行配置。项目由 Inditex(InditexTech)开源发布,采用 Apache-2.0 许可证。

工具能力

暂未整理工具清单。

安装接入

  1. 克隆仓库并进入目录;2. 按照仓库内 doc/MS-Teams-setup.md 完成 Microsoft Teams 与 Azure(Entra ID 应用)的前置配置;3. 使用 uv venv 创建虚拟环境,再执行 uv sync --frozen --all-extras --dev 安装依赖;4. 参考 sample.env 配置 TEAMS_APP_ID、TEAMS_APP_PASSWORD、TEAMS_APP_TYPE、TEAMS_APP_TENANT_ID、TEAM_ID、TEAMS_CHANNEL_ID 等环境变量;5. 运行 uv run mcp-teams-server 启动服务器;也可以直接拉取官方预构建镜像 docker pull ghcr.io/inditextech/mcp-teams-server:latest 或自行构建/运行 Docker 镜像。

选型与风险

适合谁

  • 已经完成 Microsoft Teams 和 Azure/Entra ID 应用注册配置的团队或企业
  • 希望让 AI 代理直接在 Teams 频道中收发消息、进行协作的场景
  • 使用 uv/Python 技术栈、愿意自建或使用官方 Docker 镜像部署 MCP 服务器的开发者

不适合谁

  • 没有 Microsoft 365/Teams 账号或无法完成 Entra ID 应用注册的个人用户
  • 需要一对一私聊、会议、通话等 README 未提及能力的场景
  • 希望零配置直接使用、不想处理 OAuth 客户端密钥等敏感凭据的用户

所需权限

  • Microsoft Entra ID 应用的 App ID 与客户端密钥(TEAMS_APP_ID / TEAMS_APP_PASSWORD)
  • 租户信息(TEAMS_APP_TYPE、TEAMS_APP_TENANT_ID,单租户场景下必需)
  • 目标 MS Teams 的 Team ID 与 Channel ID(TEAM_ID / TEAMS_CHANNEL_ID)
  • 该应用需要具备在指定频道读取消息和发送/回复消息的权限

风险与副作用

  • TEAMS_APP_PASSWORD 属于客户端密钥,一旦泄露可能被用于冒充应用访问 Teams 数据,需妥善保管环境变量和 .env 文件
  • 服务器可读取整个频道的消息内容,可能将频道内的敏感信息暴露给连接的 LLM 或代理
  • 该服务器可代表应用主动在频道中发帖或回复,配置或提示不当可能导致向真实用户误发消息

常见排障

  1. 确认已按照 doc/MS-Teams-setup.md 完成 Teams 与 Azure 资源的前置配置
  2. 检查 TEAMS_APP_ID、TEAMS_APP_PASSWORD、TEAMS_APP_TYPE、TEAMS_APP_TENANT_ID 等环境变量是否正确设置(可参考 sample.env)
  3. 确认 TEAMS_CHANNEL_ID 中的特殊字符已按 URL 转义要求填写
  4. 确认 TEAMS_APP_TYPE(SingleTenant 或 MultiTenant)与实际 Entra ID 应用配置一致
  5. 如使用 Docker 运行,确认已通过 --env-file 正确传入 .env 文件中的变量
  6. 如需运行集成测试,需额外设置 TEST_THREAD_ID、TEST_MESSAGE_ID、TEST_USER_NAME 等变量

使用场景

让 AI 助手在指定 Teams 频道发起新讨论串并@提及相关成员
让 AI 助手代表用户回复现有讨论串中的消息
汇总或检索某个讨论串下的所有回复内容
读取频道消息历史以供分析或生成摘要
列出频道团队成员以便在消息中正确提及

支持客户端

暂未确认支持的客户端。