← 返回目录
M

MCP Teams Server

社区
通过 MCP 读取、发布并回复 Microsoft Teams 消息。
分类
团队协作 第 12 / 55
Stars
★ 447 非常热门
传输方式
stdio(本地进程)
运行环境
Python 3.10 · Docker · 预编译二进制
凭据
需要 API Key / 凭据
许可证
Apache-2.0
最近提交
59FMRS · C

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

最强项 · 维护活跃度 15/20 最弱项 · 可靠性 9/20

可靠性
9/20
安全与权限
12/20
维护活跃度
15/20
文档质量
13/20
安装易用性
10/20
查看各项评分依据
可靠性 9/20
README 提到集成测试(uv run pytest -m integration)存在,但仓库未提供 CI workflow 文件或可核实的测试覆盖证据,也没有缓存的 server manifest,因此无法核实声明的工具(读消息、发消息、回复、@提及)与实际行为是否一致。静态审阅规则规定,没有可验证的执行证据(真实 CI + 已提交测试覆盖关键路径)时可靠性不得超过 12 分,鉴于证据缺失且工具契约不可验证,评为 9 分。
安全与权限 12/20
凭据通过环境变量传入(TEAMS_APP_ID、TEAMS_APP_PASSWORD 等),未见硬编码密钥或明文令牌示例,sample.env 仅作模板,做法基本规范。但 README 未说明最小权限范围、未描述对外发消息/回复等具有对外可见副作用的操作是否有确认机制,也未披露与 Microsoft Graph/Teams API 之间的数据流细节或速率限制处理,权限边界和确认机制不完整,故不给高分,亦无红线级问题,评为 12 分。
维护活跃度 15/20
项目采用 Apache-2.0 许可证,附带 CHANGELOG.md、CONTRIBUTING.md、SECURITY.md,并接入 SonarCloud 与 OpenSSF Scorecard 徽章,显示出持续的工程治理;390 星、仅 9 个未关闭 issue 且未被归档,表明有人维护。但缺少发布节奏、依赖更新策略的直接证据,故未给满分,评为 15 分。
文档质量 13/20
README 给出了清晰的安装步骤、环境变量表格、Docker 构建/运行说明,并链接到 MS-Teams-setup.md 与 llms-install.md 等补充文档。但未提供工具参数的详细清单(无 manifest)、故障排查章节、速率限制或成本说明,存在文档层次但覆盖不完整,评为 13 分。
安装易用性 10/20
安装依赖 uv、Python 3.10,并需要在 Microsoft Entra ID/Azure 中完成应用注册及 Teams 频道配置,官方文档明确说明其 MS-Teams-setup.md 「不是分步指南」,配置步骤较为繁琐且依赖外部 Azure 资源,属于人工/易出错的安装路径。按静态审阅规则,没有可验证执行证据时安装易用性不得超过 15 分,综合复杂度评为 10 分。

静态评测 · 未实际运行收录于 2026-08-26

查看 FMRS 评分方法 →

选型与风险

能访问什么访问网络修改第三方账户数据

适合谁

  • 已经完成 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 或代理
  • 该服务器可代表应用主动在频道中发帖或回复,配置或提示不当可能导致向真实用户误发消息

安装接入

准备工作

运行环境:Python 3.10 · Docker · 预编译二进制

TEAMS_APP_ID 必填 MS Entra ID 应用的 UUID,来自 Azure 注册的应用。
TEAMS_APP_PASSWORD 必填密钥 应用的客户端密钥(secret),在 Azure 应用注册中生成。
TEAMS_APP_TYPE 必填 应用租户类型,取值 SingleTenant 或 MultiTenant。
TEAM_ID 必填 MS Teams 团队(Group)ID。
TEAMS_CHANNEL_ID 必填 MS Teams 频道 ID,需对 URL 特殊字符转义。
其他可选配置项(4 个)
TEAMS_APP_TENANT_ID 可选 SingleTenant 模式下所需的租户 UUID。
TEST_THREAD_ID 可选 集成测试用:线程 ID 的 timestamp。
TEST_MESSAGE_ID 可选 集成测试用:消息 ID 的 timestamp。
TEST_USER_NAME 可选 集成测试用:测试用户名。
  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 镜像。

验证是否装好

运行 uv run mcp-teams-server 或拉取 docker 镜像后启动,客户端连接成功时应在工具列表中看到 Teams 消息读写、回复、提及成员等相关工具,然后可请求列出频道团队成员来验证连通性。

常见排障

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

详细介绍

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

同类可选方案

源版本 b0f3251377f7 数据同步于 2026-10-19 查看 FMRS 评分方法