Microsoft Teams & Outlook MCP Server

使用说明(Markdown 格式)

项目简介

  • 这是一个基于 MCP(Model Context Protocol)的服务器实现,名为 Microsoft Teams MCP Server,能够通过 Microsoft Graph API 提供对 Teams、Outlook、日历、SharePoint 文件等资源的访问,以及丰富的操作工具,供 MCP 客户端(如 Claude、VS Code MCP 客户端等)调用和渲染。

主要功能点

  • 资源与数据访问
    • list_teams、list_channels、list_channel_messages:查看团队、渠道及消息
    • list_chats、list_chat_messages、send_chat_message、reply_to_chat_message、create_chat:1 对 1/群组聊天及消息操作
    • list_emails、read_email、search_emails、list_mail_folders:Outlook 邮件及文件夹读取
    • read_channel_file、list_channel_files:SharePoint/Teams 文件读取
    • list_calendar_events、list_mail_folders 等日历相关操作
  • 发送与回复动作
    • send_channel_message、reply_to_channel_message:向频道发送或回复消息
    • send_email、reply_email、forward_email:发送、回复、转发邮件
    • send_chat_message、reply_to_chat_message:发送/回复聊天信息
  • 日历与事件管理
    • create_calendar_event、update_calendar_event、delete_calendar_event、create_recurring_event、create_reminder:创建、更新、删除及周期性事件与提醒
  • 文件索引与检索
    • build_file_index、search_file_index:对可访问文件建立关键词索引并搜索
  • 用户与综合摘要
    • search_users、get_unread_summary:用户搜索与未读摘要
  • 认证与版本更新
    • authenticate、authenticate_complete、auth_status、check_update:设备码登录、认证状态与更新检查
  • MCP 服务端能力
    • 通过 FastMCP 实现,工具通过 @mcp.tool() 装饰器暴露给 MCP 客户端,支持分页、next_link、URL 签名等特性
  • 兼容性与容错
    • 对 Graph API 的响应进行统一处理,给出面向客户端的友好错误信息
    • 支持多种调用方式(path 传参、next_link、url 重定向等)以实现分页和增量加载

安装与运行

  • 该服务器通过 uvx(Astral uvx)运行,底层通过环境变量完成 Microsoft Graph 的授权。
  • 典型依赖与前提:需要在 Azure AD 中注册应用,获取 MS_CLIENT_ID、MS_CLIENT_SECRET、MS_TENANT_ID;并在本地或服务器上安装 uvx。
  • 启动方式通常为将服务器作为 MCP 服务器加载到 MCP 客户端(Claude/VS Code/Claude Desktop 等)中,或直接使用 uvx 运行并指向仓库中的 ms-teams-mcp。

服务器配置示例(MCP 客户端配置需提供启动命令与参数,服务器端配置信息供 MCP 客户端在连接阶段使用) { "server_name": "ms-teams-mcp", "command": "uvx", "args": [ "--from", "git+https://github.com/giljoonseok/ms-teams-mcp.git", "ms-teams-mcp" ], "env": { "MS_CLIENT_ID": "<your-client-id>", "MS_CLIENT_SECRET": "<your-client-secret>", "MS_TENANT_ID": "<your-tenant-id>" }, "notes": "该配置用于 MCP 客户端在集成时启动服务器。服务器端会通过 Azure AD 进行 Device Code Flow 认证,首次认证需要在浏览器中完成登录。" } 说明

  • server_name:在 MCP 客户端中用于标识该 MCP 服务的名称(如 Claude/VS Code 配置中的服务器标识)
  • command 与 args:用于启动服务器的命令及其参数,客户端无需修改,只需正确指向该服务器启动命令
  • env:用于传递 Azure AD 应用的凭据,确保服务器能够获取访问 Graph 的令牌
  • 备注:如果你使用的是其他 MCP 客户端,确保其支持 uvx 启动组合并且能够传递环境变量

基本使用方法(简明操作)

  • 准备工作
    • 在 Azure AD 注册应用,获取 MS_CLIENT_ID、MS_CLIENT_SECRET、MS_TENANT_ID
    • 安装 uvx(按文档执行安装脚本,确保 uvx 命令可用)
  • 启动服务器
    • 在 MCP 客户端中添加服务器,使用以下启动信息(对应上面的配置示例)
    • 第一次使用需要进行设备码登录:调用 authenticate/authenticate_complete 进行登录,浏览器完成登录后服务器获得访问令牌
  • 常用操作
    • 使用 MCP 客户端调用工具,如 list_teams、list_channels、list_emails、send_email 等工具,获取结构化文本返回
    • 针对分页数据,使用 next_link/skip/top 进行分页读取
  • 维护与更新
    • 服务器在启动时会检查更新并给出更新提示(可通过 check_update 工具触发)
    • 认证失败或令牌过期时,重新执行 authenticate 流程完成重新认证

注意点与限制

  • 该实现依赖 Microsoft Graph 的多种权限,确保在 Azure Portal 授权并管理员同意相应权限
  • 受 Graph API 限流影响,出现 429 时需稍后重试
  • 读取大文件/二进制文件时有特定处理逻辑,文本读取对 Excel 文件有专门的处理
  • 服务器强调“在调用前需要得到用户确认”这一交互原则(尤其是发送邮件、发送消息等操作)
  1. 关键词 Microsoft Graph, Teams, Outlook, 日历, SharePoint

  2. 分类ID 5

服务器信息