Teams Mcp

Teams Mcp

🚀 Teams MCP

Teams MCP 是一个模型上下文协议(MCP)服务器,它能与 Microsoft Graph API 实现无缝集成,让 AI 助手可以与 Microsoft Teams、用户以及组织数据进行交互。

🚀 快速开始

若要在 Cursor/Claude/VS Code 中使用此 MCP 服务器,请添加以下配置:

{
"mcpServers": {
"teams-mcp": {
"command": "npx",
"args": ["-y", "@floriscornel/teams-mcp@latest"]
}
}
}

✨ 主要特性

🔐 身份验证

  • 支持与 Microsoft Graph 的 OAuth 2.0 身份验证流程。
  • 提供安全的令牌管理和刷新功能。
  • 可进行身份验证状态检查。

👥 用户管理

  • 获取当前用户信息。
  • 按姓名或电子邮件搜索用户。
  • 检索详细的用户资料。
  • 访问组织目录数据。

🏢 Microsoft Teams 集成

团队管理

  • 列出用户加入的团队。
  • 访问团队详细信息和元数据。

频道操作

  • 列出团队内的频道。
  • 检索频道消息。
  • 向团队频道发送消息。
  • 支持消息重要级别(普通、高、紧急)。

团队成员

  • 列出团队成员及其角色。
  • 访问成员信息。

💬 聊天与消息

一对一和群组聊天

  • 列出用户的聊天记录。
  • 创建新的一对一或群组对话。
  • 通过过滤和分页检索聊天消息历史记录。
  • 向现有聊天发送消息。

🔍 高级搜索与发现

消息搜索

  • 使用 Microsoft Search API 在所有 Teams 频道和聊天中进行搜索。
  • 支持 KQL(关键字查询语言)语法。
  • 可按发送者、提及、附件、重要性和日期范围进行过滤。
  • 通过高级过滤选项获取最近的消息。
  • 查找提及特定用户的消息。

富消息格式支持

以下工具现在支持在 Teams 频道和聊天中进行富消息格式设置:

  • send_channel_message
  • send_chat_message
  • reply_to_channel_message

格式选项

你可以指定 format 参数来控制消息格式:

  • text(默认):纯文本。
  • markdown:Markdown 格式(粗体、斜体、列表、链接、代码等) - 转换为经过清理的 HTML。

format 设置为 markdown 时,消息内容将使用安全的 Markdown 解析器转换为 HTML,并在发送到 Teams 之前进行清理,以删除潜在的危险内容。

如果未指定 format,消息将作为纯文本发送。

示例用法

{
"teamId": "...",
"channelId": "...",
"message": "**Bold text** and _italic text_\n\n- List item 1\n- List item 2\n\n[Link](https://example.com)",
"format": "markdown"
}
{
"chatId": "...",
"message": "Simple plain text message",
"format": "text"
}

安全特性

  • HTML 清理:所有 Markdown 内容都转换为 HTML 并进行清理,以删除潜在的危险元素(脚本、事件处理程序等)。
  • 允许的标签:仅允许安全的 HTML 标签(p、strong、em、a、ul、ol、li、h1 - h6、code、pre 等)。
  • 安全属性:仅允许安全的属性(href、target、src、alt、title、width、height)。
  • 跨站脚本攻击预防:自动清理内容以防止跨站脚本攻击。

支持的 Markdown 特性

  • 文本格式:粗体 (**text**)、斜体 (_text_)、删除线 (~~text~~)。
  • 链接[text](url)
  • 列表:无序列表 (- item) 和有序列表 (1. item)。
  • 代码:内联 `code` 和代码块 code
  • 标题# H1###### H6
  • 换行:自动将换行符转换为
    标签。
  • 块引用> quoted text
  • 表格:GitHub 风格的 Markdown 表格。

📦 安装指南

# 安装依赖
npm install

# 构建项目
npm run build

# 设置身份验证
npm run auth

🔧 技术细节

先决条件

  • Node.js 18+
  • 具有适当权限的 Microsoft 365 帐户
  • 具有 Microsoft Graph 权限的 Azure 应用注册

所需的 Microsoft Graph 权限

  • User.Read - 读取用户资料
  • User.ReadBasic.All - 读取基本用户信息
  • Team.ReadBasic.All - 读取团队信息
  • Channel.ReadBasic.All - 读取频道信息
  • ChannelMessage.Read.All - 读取频道消息
  • ChannelMessage.Send - 发送频道消息
  • Chat.Read - 读取聊天消息
  • Chat.ReadWrite - 创建和管理聊天
  • Mail.Read - Microsoft Search API 所需
  • Calendars.Read - Microsoft Search API 所需
  • Files.Read.All - Microsoft Search API 所需
  • Sites.Read.All - Microsoft Search API 所需

🛠️ 使用示例

启动服务器

# 开发模式,支持热重载
npm run dev

# 生产模式
npm run build && node dist/index.js

可用的 MCP 工具

身份验证

  • authenticate - 启动 OAuth 身份验证流程
  • logout - 清除身份验证令牌
  • get_current_user - 获取已认证用户信息

用户操作

  • search_users - 按姓名或电子邮件搜索用户
  • get_user - 按 ID 或电子邮件获取详细的用户信息

团队操作

  • list_teams - 列出用户加入的团队
  • list_channels - 列出特定团队中的频道
  • get_channel_messages - 通过分页和过滤从团队频道检索消息
  • send_channel_message - 向团队频道发送消息
  • list_team_members - 列出特定团队的成员

聊天操作

  • list_chats - 列出用户的聊天记录(一对一和群组)
  • get_chat_messages - 通过分页和过滤从特定聊天中检索消息
  • send_chat_message - 向聊天发送消息
  • create_chat - 创建新的一对一或群组聊天

搜索操作

  • search_messages - 使用 KQL 语法在所有 Teams 消息中进行搜索
  • get_recent_messages - 通过高级过滤选项获取最近的消息
  • get_my_mentions - 查找提及当前用户的消息

📋 详细文档

身份验证

首先,使用以下命令与 Microsoft Graph 进行身份验证:

npx @floriscornel/teams-mcp@latest authenticate

检查你的身份验证状态:

npx @floriscornel/teams-mcp@latest check

如有需要,可使用以下命令注销:

npx @floriscornel/teams-mcp@latest logout

与 Cursor/Claude 集成

此 MCP 服务器旨在通过模型上下文协议与 Claude/Cursor/VS Code 等 AI 助手配合使用。

{
"mcpServers": {
"teams-mcp": {
"command": "npx",
"args": ["-y", "@floriscornel/teams-mcp@latest"]
}
}
}

🔒 安全说明

  • 所有身份验证均通过 Microsoft 的 OAuth 2.0 流程处理。
  • 令牌安全存储并自动刷新。
  • 不会记录或暴露敏感数据。
  • 遵循 Microsoft Graph API 安全最佳实践。

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

🤝 贡献指南

  1. 分叉仓库。
  2. 创建功能分支。
  3. 进行更改。
  4. 运行代码检查和格式化。
  5. 提交拉取请求。

📞 支持与反馈

若遇到问题或有疑问:

  • 查看现有的 GitHub 问题。
  • 查阅 Microsoft Graph API 文档。
  • 确保正确配置了身份验证和权限。
  • 0 关注
  • 0 收藏,24 浏览
  • system 提出于 2025-10-03 14:36

相似服务问题

相关AI产品