Teams MCP Server
Microsoft Teams MCP 服务器与命令行工具
使用您标准的 Teams 登录方式,轻松让 AI 访问 Microsoft Teams。
[!NOTE]
无需 Azure 设置、应用注册、Graph 权限或 IT 支持。
搜索消息和邮件,查看未读聊天,阅读讨论串,回复消息,获取会议记录等更多功能。
为什么选择 msteams-mcp?
真正地完成工作 - 搜索、未读聊天、讨论串、回复、联系人、频道、会议、记录、文件、反应等更多功能。
一次登录 - 令牌自动刷新,浏览器在日常操作中保持关闭状态。
安全 - 助手仅拥有您现有的 Teams 权限,加密的会话数据存储在本地。
随处可用 - 所有功能均可通过 MCP 客户端和附带的
msteams命令行工具使用。
Related MCP server: teams-mcp
快速入门
前提条件
Node.js 18+
具有 Teams 访问权限的 Microsoft 帐户
已安装 Google Chrome、Microsoft Edge 或 Chromium 浏览器
配置您的 MCP 客户端
添加到您的 MCP 客户端配置(例如,Claude Desktop、Windsurf、Cursor):
{
"mcpServers": {
"teams": {
"command": "npx",
"args": ["-y", "msteams-mcp@latest"]
}
}
}仅此而已。npx 会下载并运行最新版本。让您的助手调用一次 teams_login,在浏览器中完成标准的 Microsoft 登录,然后即可开始使用 Teams。
工作原理
该服务器直接调用 Microsoft 的 Teams 服务(Substrate、chatsvc、CSA),使用 Teams Web 应用创建的身份验证会话。
teams_login会打开一个浏览器,进行您的标准 Microsoft 登录。生成的 OAuth 令牌和会话数据被加密并缓存在本地。
常规操作直接使用这些令牌,无需浏览器自动化。
过期的令牌会通过 HTTP 自动刷新,无头浏览器 SSO 作为备用方案。
您的访问权限仍仅限于您的 Teams 帐户已有的可见和操作范围。
从源代码运行(备选方案)
如果您更喜欢从本地克隆运行:
git clone https://github.com/m0nkmaster/msteams-mcp.git
cd msteams-mcp
npm install && npm run build然后配置您的 MCP 客户端:
{
"mcpServers": {
"teams": {
"command": "node",
"args": ["/path/to/msteams-mcp/dist/index.js"]
}
}
}服务器会使用您系统上的 Chrome(macOS/Linux)或 Edge(Windows)进行身份验证。
命令行工具
同样的功能也可用作独立的命令行工具 msteams。当您需要在 shell 或脚本中使用 Teams 而非 MCP 客户端时,这非常有用。
从 npm 全局安装:
npm install -g msteams-mcp这会安装两个可执行文件:msteams-mcp(MCP 服务器)和 msteams(命令行包装器)。或者无需安装直接运行:
npx -y msteams-mcp msteams status命令请参见命令行工具用法。
可用工具
搜索与发现
工具 | 描述 |
| 使用操作符搜索 Teams 消息( |
| 在邮箱中搜索电子邮件(与 Teams 使用相同的身份验证 - 无需额外登录) |
| 列出最近的会话(一对一、群组、会议、频道),带有最后一条消息预览 |
| 根据 ID 获取单条消息的完整内容(不限时间);包含反应 |
| 获取会话/讨论串中的消息;包含反应; |
| 按名称查找频道(您的团队 + 组织范围发现) |
| 列出团队的频道标签,用于标签 @提及 |
| 获取活动提要(提及、反应、回复、通知) |
消息
工具 | 描述 |
| 发送消息(默认:自我聊天/笔记)。 |
| 阻塞直到有新消息到达(服务器端轮询,上限约 110 秒);幂等的 |
| 编辑您自己的一条消息(支持 |
| 删除您自己的一条消息(软删除) |
人员与联系人
工具 | 描述 |
| 获取当前用户资料(电子邮件、姓名、ID) |
| 按姓名或电子邮件搜索人员 |
| 获取经常联系的人(有助于名称解析) |
| 将一个或多个 MRI 解析为完整资料(姓名、电子邮件、职位、部门) |
| 获取与某个人的一对一聊天的会话 ID |
| 与多人(2 个以上其他人)创建新的群组聊天 |
组织
工具 | 描述 |
| 获取置顶/收藏的会话 |
| 置顶一个会话 |
| 取消置顶一个会话 |
| 收藏一条消息 |
| 取消收藏一条消息 |
| 获取已收藏/书签的消息列表,包含来源引用 |
| 获取已关注的讨论串列表,包含来源引用 |
| 获取未读计数(总计或按会话) |
| 将会话标记为已读,直至某条消息 |
反应
工具 | 描述 |
| 按名称搜索表情符号(标准表情符号 + 自定义组织表情符号) |
| 为消息添加表情符号反应 |
| 移除消息的表情符号反应 |
快速反应: like、heart、laugh、surprised、sad、angry 可以直接使用,无需搜索。
日历与会议
工具 | 描述 |
| 从日历获取会议(默认为接下来 7 天) |
| 获取会议记录(需要来自 |
teams_get_meetings 返回:主题、时间、组织者、加入 URL、用于会议聊天的 threadId。将 threadId 与 teams_get_thread 结合使用可阅读会议聊天,或与 teams_get_transcript 结合使用可获取包含发言人和时间戳的完整记录。
文件
工具 | 描述 |
| 获取在会话中共享的文件和链接(支持分页) |
返回文件(名称、扩展名、URL、大小)和链接(URL、标题),以及每个项目的共享者。适用于频道、群组聊天、一对一聊天和会议聊天。
会话
工具 | 描述 |
| 触发手动登录(打开浏览器) |
| 检查身份验证和会话状态 |
搜索操作符
teams_search(Teams 消息)和 teams_search_email(电子邮件)都支持原生操作符:
from:sarah@company.com # Messages/emails from person
sent:2026-01-20 # From specific date
sent:>=2026-01-15 # Since date
in:project-alpha # Messages in channel (Teams only)
subject:"budget" # By subject (email)
"Rob Smith" # Find @mentions (name in quotes)
hasattachment:true # With files
is:unread # Unread emails (email only)
NOT from:email@co.com # Exclude results组合操作符:from:sarah@co.com sent:>=2026-01-18 hasattachment:true
注意: @me、from:me、to:me 不起作用。请先使用 teams_get_me 获取您的电子邮件/显示名称。sent:today 有效,但 sent:lastweek 和 sent:thisweek 无效 - 请使用明确日期或省略(结果按时间倒序排列)。
MCP 资源
服务器还公开了用于上下文发现的被动资源:
资源 URI | 描述 |
| 当前用户的资料 |
| 置顶的会话 |
| 身份验证状态 |
命令行工具用法
msteams 公开了 MCP 服务器的每一个工具 - 功能完全一致,使用相同的身份验证和相同的会话文件。不带参数运行以列出所有工具和快捷方式。
如果您已全局安装(npm install -g msteams-mcp),请直接调用:
# List available tools and shortcuts
msteams
# Check authentication status
msteams status
# Log in (opens a browser; tries silent SSO first)
msteams login
msteams login --force # clear session and re-login
# Search messages
msteams search "meeting notes"
msteams search "project" --from 0 --size 50
# Search emails
msteams teams_search_email --query "from:sarah@company.com"
# Send a message (default: your own notes/self-chat)
msteams send "Hello from Teams MCP!"
msteams send "Message" --to "conversation-id"
# People, contacts, favourites, activity, unread
msteams people "john smith"
msteams favorites
msteams activity
msteams unread
# Any tool by name (the teams_ prefix is optional)
msteams teams_search_emoji --query "heart"
msteams find_channel --query "support"
# Machine-readable output
msteams search "query" --json命令格式: msteams <command> [primaryArg] [--key value ...]。任何无法识别的命令都会被当作工具名称(会自动添加 teams_ 前缀)。常见的标志如 --to、--from、--size、--query、--force 会映射到相应的工具参数;不带参数运行 msteams 可查看完整列表。
从仓库克隆运行
如果您正在从源代码工作,同样的命令行工具已连接到 npm run cli(通过 tsx 运行,无需构建):
npm run cli # list tools
npm run cli -- search "your query"
npm run cli -- status
npm run cli -- send "Hi" --to "conversation-id"限制
需要登录 - 运行
teams_login进行身份验证(会打开浏览器)令牌过期 - 令牌约 1 小时后过期;会尝试无头刷新,或需要时再次运行
teams_login未文档化的 API - 使用 Microsoft 的内部 API,可能随时变更,恕不另行通知
搜索限制 - 仅支持全文搜索;与搜索词不匹配的线程回复不会显示(但 LLM 很可能会使用
teams_get_thread获取完整上下文)
会话文件
会话文件存储在用户配置目录中(已加密):
macOS/Linux:
~/.teams-mcp-server/Windows:
%APPDATA%\teams-mcp-server\
内容:session-state.json、token-cache.json、browser-profile/
如果会话过期,请调用 teams_login 或删除配置目录。
开发
本地开发:
git clone https://github.com/m0nkmaster/msteams-mcp.git
cd msteams-mcp
npm install
npm run build开发命令:
npm run dev # Run MCP server in dev mode
npm run build # Compile TypeScript
npm run lint # Run ESLint
npm test # Run unit tests
npm run typecheck # TypeScript type checking如需热重载开发,请配置 MCP 客户端:
{
"mcpServers": {
"teams": {
"command": "npx",
"args": ["tsx", "/path/to/msteams-mcp/src/index.ts"]
}
}
}详见 AGENTS.md 了解详细架构和贡献指南。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables AI assistants to interact with Microsoft 365 through the Microsoft Graph API, including searching Teams messages, managing chats, and sending messages.77MIT
- Alicense-qualityBmaintenanceEnables AI assistants to interact with Microsoft Teams, users, chats, files, and organizational data via Microsoft Graph APIs, with added support for creating, updating, listing, and inspecting Teams meetings and calendar events.20MIT
- Alicense-qualityBmaintenanceEnables AI assistants to manage Microsoft Teams through the Graph API, including sending messages, managing chats, creating teams, and searching communications.MIT
- Alicense-qualityDmaintenanceEnables AI assistants to interact with Microsoft Teams, users, and organizational data via Microsoft Graph APIs, including sending messages, managing chats and channels, and searching messages.MIT
Related MCP Connectors
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/m0nkmaster/msteams-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server