Token导航 LogoToken导航TokenDH.com
Teams MCP logo
办公协作stdio官方级别未说明来源级核验

Teams MCP

MCP Server

@floriscornel/teams-mcp@latest

MCP server providing comprehensive Microsoft Teams and Graph API access for AI assistants including messaging, search, and user management.

工具数

19

提示词数

0

GitHub Stars

99

资源数

0
TypeScriptClaude团队协作ClaudeCursorVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

floriscornel

提供方

floriscornel

最后核验

2026/5/18 04:07

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @floriscornel/teams-mcp@latest {}

详细介绍

MCP团队

](https://www.npmjs.com/package/@floriscornel/teams-mcp) ](https://www.npmjs.com/package/@floriscornel/teams-mcp) ![codecov](https://app.codecov.io/gh/floriscornel/teams-mcp) ![License: MIT](https://opensource.org/licenses/MIT) ](https://github.com/floriscornel/teams-mcp/stargazers)

一种模型上下文协议(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设备代码身份验证流程
  • 安全令牌管理、缓存持久性和刷新令牌更新
  • 身份验证状态检查和注销支持
  • 范围缩小的只读模式
  • 直接的 AUTH_TOKEN 支持预先发行的Microsoft Graph访问令牌

👥 用户管理

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

🏢 Microsoft团队集成

  • 团队管理

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

  • 渠道运营

- 列出团队内的频道 - 检索频道消息和回复 - 向团队频道发送消息 - 对现有通道线程的回复 - 编辑和软删除频道消息和回复 - 支持消息重要性级别(normal, high, urgent) - 通过URL或base64数据支持内联图像附件

  • 团队成员

- 列出团队成员及其角色 - 访问会员信息 - 搜索用户 @mentions

💬 聊天和消息

  • 1:1和小组聊天

- 列出用户的聊天记录 - 创建新的1:1或群组对话 - 通过过滤、排序和分页检索聊天消息历史记录 - 通过获取所有可用消息 @odata.nextLink 分页 - 向现有聊天室发送消息 - 编辑以前发送的聊天消息 - 软删除聊天信息

✏️ 消息管理

  • 编辑和删除

- 更新(编辑)聊天和频道中发送的消息 - 软删除聊天和频道中的消息(标记为已删除,不永久删除) - 只有邮件发件人可以更新/删除自己的邮件 - 支持Markdown格式、提及和编辑重要性级别

📎 媒体和附件

  • 托管内容

- 从聊天和频道消息下载托管内容(图像、文件) - 访问对话中共享的内联图像和附件 - 可选择将托管内容直接保存到磁盘

  • 文件上传

- 上传并发送任何文件类型(PDF、DOCX、XLSX、ZIP、图像等)到频道和聊天室 - 通过可恢复的上传会话支持大文件(>4 MB) - 频道上传转到SharePoint,聊天上传转到OneDrive - 可选消息文本、自定义文件名、格式和重要性级别

🔍 高级搜索和发现

  • 邮件搜索

- 使用Microsoft Search API搜索所有团队频道和聊天 - 支持KQL(关键字查询语言)语法 - 按发件人、提及、附件、阅读状态和日期范围筛选 - 使用高级筛选选项获取最近的邮件 - 查找提及当前用户的消息

丰富的邮件格式支持

以下工具支持Teams频道和聊天中的丰富消息格式:

  • send_channel_message
  • send_chat_message
  • reply_to_channel_message
  • update_channel_message
  • update_chat_message
  • send_file_to_channel
  • send_file_to_chat

格式选项

您可以指定 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",
  "importance": "high"
}
{
  "chatId": "...",
  "message": "Simple plain text message",
  "format": "text"
}

安全特性

  • HTML净化:所有markdown内容都转换为HTML并经过净化,以删除潜在的危险元素(脚本、事件处理程序等)
  • 允许的标签:只允许使用安全的HTML标签(p、strong、em、a、ul、ol、li、h1-h6、code、pre等)
  • 安全属性:只允许使用安全属性
  • XSS预防:内容会自动净化,以防止跨站点脚本攻击

支持的Markdown功能

  • 文字格式:粗体(**text**),斜体(_text_),罢工(~~text~~)
  • 链接: [text](url)
  • 列表:子弹(- item)并编号(1. item)
  • 代码:内联 ` code ` 和围栏代码块
  • 标题: # H1 通过 ###### H6
  • 引用: > quoted text
  • 表格:GitHub风格的降价表

LLM友好内容格式

从Microsoft Graph API检索到的消息将作为包含特定于团队的标记的原始HTML返回。为了让AI助手更容易理解这些内容,以下工具支持HTML到Markdown的自动转换:

  • get_chat_messages
  • get_channel_messages
  • get_channel_message_replies
  • search_messages
  • get_my_mentions

内容格式选项

使用 contentFormat 用于控制消息内容返回方式的参数:

  • markdown (默认):将Teams HTML转换为干净的Markdown,针对LLM消费进行了优化
  • raw:从Microsoft Graph API返回原始HTML

什么被转换

HTML元素Markdown输出
Name (团队提及)@Name (使用提及元数据合并的多单词名称)
text**text**
text*text*
text` text `
text[text](url)
`

item

| - item | | ... |GFM Markdown表格| | | {attachment:id} | | | *(已删除)* | | | --- | | , &`等等。|解码为普通字符|

附件元数据

包含文件附件或内联图像的邮件包括 attachments 响应中的数组,其中包含每个附件的元数据(id、名称、contentType、contentUrl、thumbnailUrl)。内联 {attachment:id} markdown内容中的标记与此数组中的条目相关联,允许消费者通过以下方式识别和下载附件 download_message_hosted_contentdownload_chat_hosted_content.

示例用法

{
  "chatId": "19:meeting_...",
  "limit": 10,
  "contentFormat": "markdown"
}

要获取原始HTML:

{
  "chatId": "19:meeting_...",
  "limit": 10,
  "contentFormat": "raw"
}

📦 安装

# Install dependencies
npm install

# Build the project
npm run build

# Set up authentication
npm run auth

🔧 配置

先决条件

  • Node.js 18+
  • 具有适当权限的Microsoft 365帐户
  • Microsoft Graph为以下范围委派了权限

所需的Microsoft图形权限

全模式(默认):

  • User.Read -读取用户资料
  • User.ReadBasic.All -读取基本用户信息
  • Team.ReadBasic.All -阅读团队信息
  • Channel.ReadBasic.All -读取频道信息
  • ChannelMessage.Read.All -读取频道消息
  • ChannelMessage.Send -发送频道消息和回复
  • ChannelMessage.ReadWrite -编辑和删除频道消息
  • Chat.Read -阅读聊天消息(通过只读范围包含)
  • Chat.ReadWrite -创建和管理聊天,发送/编辑/删除聊天消息(取代 Chat.Read)
  • TeamMember.Read.All -阅读团队成员
  • Files.ReadWrite.All -文件上传到频道和聊天时需要

只读模式 (TEAMS_MCP_READ_ONLY=true)--只请求这些范围:

  • User.Read
  • User.ReadBasic.All
  • Team.ReadBasic.All
  • Channel.ReadBasic.All
  • ChannelMessage.Read.All
  • TeamMember.Read.All
  • Chat.Read

身份验证模式

完全访问权限:

npx @floriscornel/teams-mcp@latest authenticate

只读访问:

npx @floriscornel/teams-mcp@latest authenticate --read-only

使用现有的Microsoft Graph JWT直接注入令牌:

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

令牌存储

  • 身份验证元数据存储在本地 ~/.msgraph-mcp-auth.json
  • 令牌缓存存储在本地 ~/.teams-mcp-token-cache.json

🛠️ 用法

启动服务器

# Development mode with hot reload
npm run dev

# Production mode
npm run build && node dist/index.js

# Start in read-only mode (disables all write tools)
TEAMS_MCP_READ_ONLY=true node dist/index.js

CLI命令

npx @floriscornel/teams-mcp@latest authenticate              # Authenticate with full scopes
npx @floriscornel/teams-mcp@latest authenticate --read-only  # Authenticate with read-only scopes
npx @floriscornel/teams-mcp@latest check                     # Check authentication status
npx @floriscornel/teams-mcp@latest logout                    # Clear authentication
npx @floriscornel/teams-mcp@latest auth                      # Alias for authenticate
npx @floriscornel/teams-mcp@latest                           # Start MCP server (default)

环境变量

  • TEAMS_MCP_READ_ONLY=true -以只读模式启动MCP服务器
  • AUTH_TOKEN= -使用预先存在的Microsoft Graph访问令牌,而不是使用SQL登录

只读模式

服务器支持只读模式,该模式禁用所有写入操作(发送消息、创建聊天、上传文件、编辑/删除消息),并仅请求Microsoft Graph的读取权限范围。

启用只读模式 使用以下任一方法:

  • 环境变量: TEAMS_MCP_READ_ONLY=true
  • CLI标志: --read-only

使用缩小的范围进行身份验证:

npx @floriscornel/teams-mcp@latest authenticate --read-only

MCP服务器配置(只读):

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

切换模式: 从只读模式切换到完整模式时,服务器会检测到作用域不匹配,并警告您重新进行身份验证:

npx @floriscornel/teams-mcp@latest authenticate

只读工具(16): auth_status, get_current_user, search_users, get_user, list_teams, list_channels, get_channel_messages, get_channel_message_replies, list_team_members, search_users_for_mentions, download_message_hosted_content, list_chats, get_chat_messages, download_chat_hosted_content, search_messages, get_my_mentions

在只读模式下禁用写入工具(10): send_channel_message, reply_to_channel_message, update_channel_message, delete_channel_message, send_file_to_channel, send_chat_message, create_chat, update_chat_message, delete_chat_message, send_file_to_chat

可用的MCP工具

认证

  • auth_status -检查当前身份验证状态

用户运营

  • get_current_user -获取经过身份验证的用户信息
  • search_users -按姓名或电子邮件搜索用户
  • get_user -通过ID或电子邮件获取详细的用户信息

团队运营

  • list_teams -列出用户加入的团队
  • list_channels -列出特定团队中的频道
  • get_channel_messages -使用附件摘要和内容格式选择从团队频道检索邮件
  • get_channel_message_replies -获取特定频道消息的回复
  • send_channel_message -向团队频道发送包含可选提及、重要性和图像附件的消息
  • reply_to_channel_message -回复现有频道消息
  • update_channel_message -编辑以前发送的频道消息或回复
  • delete_channel_message -软删除频道消息或回复
  • list_team_members -列出特定团队的成员
  • search_users_for_mentions -搜索要在邮件中@提及的团队成员
  • send_file_to_channel -上传本地文件并将其作为消息发送到通道

聊天操作

  • list_chats -列出用户的聊天记录(1:1和组)
  • get_chat_messages -使用分页、过滤器、排序和 fetchAll
  • send_chat_message -向聊天室发送消息
  • create_chat -创建新的1:1或群聊
  • update_chat_message -编辑以前发送的聊天消息
  • delete_chat_message -软删除聊天消息
  • send_file_to_chat -上传本地文件并将其作为消息发送到聊天室

媒体运营

  • download_message_hosted_content -从频道消息中下载托管内容(图像、文件)
  • download_chat_hosted_content -从聊天消息中下载托管内容(图像、文件)

搜索操作

  • search_messages -使用KQL语法在所有团队消息中搜索
  • get_my_mentions -查找最近提及当前用户的消息

📋 例子

认证

首先,使用Microsoft Graph进行身份验证:

# Full access (default)
npx @floriscornel/teams-mcp@latest authenticate

# Read-only (reduced permission scopes)
npx @floriscornel/teams-mcp@latest authenticate --read-only

检查您的身份验证状态:

npx @floriscornel/teams-mcp@latest check

如有需要,请注销:

npx @floriscornel/teams-mcp@latest logout

聊天分页示例

{
  "chatId": "19:meeting_...",
  "limit": 100,
  "fetchAll": true,
  "orderBy": "createdDateTime",
  "descending": true,
  "contentFormat": "markdown"
}

带有提及和图像的频道信息

{
  "teamId": "team-id",
  "channelId": "channel-id",
  "message": "Please review **today's update**",
  "format": "markdown",
  "importance": "high",
  "mentions": [
    {
      "mention": "alex.chen",
      "userId": "00000000-0000-0000-0000-000000000000"
    }
  ],
  "imageUrl": "https://example.com/status.png"
}

文件上传示例

{
  "chatId": "19:meeting_...",
  "filePath": "/absolute/path/to/report.pdf",
  "message": "Please review the attached report",
  "format": "markdown"
}

与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令牌处理的
  • 刷新令牌支持:访问令牌会使用缓存的刷新令牌自动续订,因此您不需要每小时重新进行身份验证
  • 令牌缓存存储在本地 ~/.teams-mcp-token-cache.json
  • 身份验证元数据存储在本地 ~/.msgraph-mcp-auth.json
  • 在将HTML发送给团队之前,对Markdown内容进行净化
  • AUTH_TOKEN 经过验证,以确保其目标 https://graph.microsoft.com
  • 没有记录或暴露敏感数据
  • 遵循Microsoft Graph API安全最佳实践

📝 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行构建、linting和测试
  5. 提交拉取请求

📞 支持

对于问题和疑问:

  • 检查现有的GitHub问题
  • 查看Microsoft Graph API文档
  • 确保配置了正确的身份验证和权限

目录标签

目录标签

TypeScriptClaude团队协作[\\\"mcp\\\"\\\"teams\\\"\\\"microsoft-teams\\\"\\\"ms-teams\\\"\\\"model-context-protocol\\\"\\\"mcp-server\\\"]MicrosoftTeams集成本地部署消息管理文件共享AI助手集成

支持客户端

ClaudeCursorVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

@floriscornel/teams-mcp@latest

工具数量(toolCount,工具数)

19

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP