← 返回目录
M

Microsoft 365 MCP Server

社区
通过 Graph API 与 Microsoft 365 和 Office 服务交互的 MCP 服务器。
GitHub 源仓库 ↗
★ 937 Stars 分类 · 云存储 非常热门 源版本 3c44ae2ed420
61FMRS · C
可靠性
8/20
安全与权限
13/20
维护活跃度
10/20
文档质量
16/20
安装易用性
14/20

该项目功能强大,覆盖 Microsoft 365 大部分 Graph API,支持多种部署模式和高级配置,但需注意权限管理、令牌存储和第三方风险。适合技术用户,建议仔细阅读文档。

查看 FMRS 评分方法 →

ms-365-mcp-server 是一个 Model Context Protocol (MCP) 服务器,通过 Microsoft Graph API 提供对 Microsoft 365 和 Office 服务的访问。它支持多个 Microsoft 云环境(全球版、中国 21Vianet 版),提供超过 300 种工具,涵盖邮件、日历、OneDrive 文件、Excel、OneNote、待办事项、Planner、联系人、用户资料、搜索,以及组织模式的 Teams、SharePoint、在线会议等。支持多种认证方式(设备代码流、OAuth 授权码流、自带令牌),并提供多账户支持、工具预设、动态工具发现、TOON 输出格式(减少 Token 使用)、只读模式、工具过滤、范围限制等高级功能。该项目是第三方开源项目(MIT 许可证),非微软官方。

工具能力

login
通过设备代码流程登录,获取或验证现有令牌。
list-mail-messages
列出邮箱消息。
get-mail-message
获取指定邮件消息的详情。
list-calendar-events
列出日历事件。
list-drives
列出 OneDrive 或 SharePoint 驱动器。
get-drive-item
获取驱动器项目详情。
download-bytes
通用二进制读取工具,用于下载文件、附件、照片等。
graph-batch
执行批处理 Graph API 请求。
list-shared-mailbox-messages
列出共享邮箱的消息(需要组织模式和委托权限)。
list-users
列出组织中的用户和共享邮箱(组织模式)。

安装接入

  1. 确保已安装 Node.js 20 或更高版本。
  2. 在 Claude Desktop 配置文件中添加以下配置(Settings > Developer 编辑):
{
  "mcpServers": {
    "ms365": {
      "command": "npx",
      "args": ["-y", "@softeria/ms-365-mcp-server"]
    }
  }
}
  1. 保存配置并重启 Claude Desktop。
  2. 在客户端中调用 login 工具进行认证(设备代码流程)。
claude_desktop_config.json
{
  "mcpServers": {
    "ms365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}

选型与风险

适合谁

  • 希望将 Microsoft 365 数据集成到 AI 助手或自定义应用中的开发者。
  • 需要跨多服务(邮件、日历、文件、Teams 等)统一访问的场景。
  • 寻求通过 MCP 协议与 Graph API 交互的轻量级解决方案。

不适合谁

  • 对安全性要求极高的企业生产环境(需自行评估 scope 管理和部署复杂性)。
  • 需要管理 Microsoft 365 管理员权限(如安全警报、审计日志)的场景——可考虑 ms-365-admin-mcp-server(补充项目)。
  • 未安装 Node.js 的环境。
  • 需要非 Microsoft 云(如 GCC High)支持的环境(目前仅支持全球版和中国 21Vianet)。

所需权限

  • 需要 Microsoft Graph API 权限,具体随启用工具自动请求。例如:User.Read、Mail.Read、Files.Read 等。
  • 组织模式(--org-mode)需要额外的 Graph 权限,如 Teams、SharePoint 相关权限(例如 Sites.Read.All)。
  • 共享邮箱访问需要 Mail.Read.Shared 或 Mail.Send.Shared 委托权限。
  • 可使用 --allowed-scopes 限制工具暴露的 scope,--extra-scopes 添加额外 scope。注意:--allowed-scopes 只会收窄权限,不会扩大。

风险与副作用

  • 令牌安全性:文件存储的令牌可能被非授权访问,建议使用 OS 凭据存储或自定义安全路径。
  • 权限过宽:默认请求所有工具隐含的 scope,可能过大,需使用 allowed-scopes 或工具过滤来限制。
  • 多租户令牌风险:使用默认 'common' 租户时,个人账户的刷新令牌自 2026 年 6 月起可能被拒绝,导致会话失效。
  • 第三方项目风险:非微软官方,可能不如官方支持稳定。
  • HTTP 模式下 OAuth 配置复杂:需要正确设置 Azure AD 应用注册和重定向 URI。

常见排障

  1. 认证失败:检查是否已运行 --login 或调用 login 工具;确认设备代码流程步骤。
  2. 令牌丢失:默认令牌缓存可能因 npm 更新而丢失,设置 MS365_MCP_TOKEN_CACHE_PATH 和 MS365_MCP_SELECTED_ACCOUNT_PATH 到持久路径。
  3. 权限不足:使用 --list-permissions 查看所需权限,确保租户管理员已同意。
  4. 工具不可用:确认使用了正确的模式(个人 vs 组织)和预设(--preset)。
  5. 个人账户刷新令牌问题:设置 MS365_MCP_TENANT_ID=consumers 以避免 'common' 租户问题。
  6. HTTP 模式端口冲突:使用 --http [port] 指定端口,默认 3000。
  7. 代理问题:如果 OAuth 重定向不可达,设置 --public-url 为公网地址。

使用场景

个人账户:管理邮件、日历、OneDrive 文件、Excel、OneNote、待办事项等。
工作/学校账户:访问 Teams、SharePoint、共享邮箱、用户管理等组织功能。
构建自动化工作流:通过 MCP 直接与 Microsoft 365 数据交互,实现邮件处理、日历日程管理、文件操作等。
AI 助手集成:在 Claude 等 AI 工具中直接读取和操作 M365 数据,提高生产力。

支持客户端

Claude Desktop完整支持
Open WebUI完整支持