Microsoft 365 API 服务

一个轻量级的Microsoft 365 API服务器,提供67种工具,涵盖Teams、Outlook、Calendar、SharePoint和OneDrive等功能,适用于需要高效集成Microsoft 365服务的场景。

  • by currenthandle
  • Zig
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 currenthandle/ms365-mcp

使用说明

ms365 mcp

一个足够小的Microsoft 365 MCP服务器,你会忘记它正在运行。跨团队、Outlook、日历、SharePoint和OneDrive的67个工具。内置Zig——无节点、无Python、无运行时依赖。静态链接。

重要的数字 (已测量,未估算):

度量 值
冷启动RAM 1.3 MB峰值 /1.9 MB居民
冷启动时间 约120毫秒
二进制大小 5.9毫巴 静态链接
list-emails 模型的有效载荷 4.2 KB 对比 31 KB 原始图形(减小约87%)
每个代币 list-emails 呼叫 ~1,050 与生的7800块相比
端到端测试计数,对照实时图形 94 (没有嘲笑)

上下文节省是杠杆。在200K令牌模型上,ms365 mcp允许代理在工作内存中保存约50个收件箱快照,而不是约6个。这就是“代理忘记了它在做什么”和“代理完成了任务”之间的区别

非技术读者: 看见 文档/销售代理能力.md 了解该工具解锁的内容。

安装

curl -fsSL https://raw.githubusercontent.com/currenthandle/ms365-mcp/main/install.sh | sh

下载适合您平台的二进制文件(macOS/Linux,ARM64/x86_64)到 ~/.local/bin/ms365-mcp.

设置

  1. 创建一个 Microsoft Entra应用程序注册 具有所需Graph API作用域的委派权限。

  2. 添加到MCP客户端配置(.mcp.json克劳德桌面等):

{
  "mcpServers": {
    "ms365": {
      "command": "$HOME/.local/bin/ms365-mcp",
      "env": {
        "MS365_CLIENT_ID": "your-client-id",
        "MS365_TENANT_ID": "your-tenant-id"
      }
    }
  }
}
  1. 服务器通过OAuth设备代码流进行身份验证——LLM将调用 login 并提示您访问URL。

工具

电子邮件 (15) --列出电子邮件、阅读电子邮件、发送电子邮件、回复电子邮件、回复所有电子邮件、转发电子邮件、搜索电子邮件、列出邮件文件夹、标记已阅读电子邮件、移动电子邮件、列出电子邮件附件、阅读电子邮件附件、下载电子邮件附件、删除电子邮件、批量删除电子邮件

草稿 (7) --创建草稿、发送草稿、更新草稿、删除草稿、添加附件、列出附件、删除附件

日历 (8) --列出日历事件、获取日历事件、创建日历事件、更新日历事件、删除日历事件、查找会议时间、获取日程、响应事件

团队聊天 (7) --列出聊天记录、搜索聊天记录、列出聊天消息、搜索聊天消息、发送聊天消息、创建聊天记录、删除聊天消息

团队频道 (9) --列出团队、列出频道、搜索频道、列出频道消息、获取频道消息回复、发布频道消息、回复频道消息、删除频道消息、取消频道回复

SharePoint (9) --搜索sharepoint网站、列出sharepoint驱动器、列出sharepoint项目、搜索sharepoint文件、上传sharepoint文件、上载sharepoint内容、创建sharepoint文件夹、删除sharepoint项目、下载sharepoint文件

OneDrive (6) --列出一个驱动器项目,搜索一个驱动器文件,上传一个驱动器的文件,上传驱动器的内容,下载驱动器的文件和删除驱动器的项目

身份验证和实用程序 (6) --登录、验证登录、获取邮箱设置、同步时区、搜索用户、获取个人资料

从源代码构建

需要 之字形 0.16.0.

zig build -Doptimize=ReleaseSafe

运行单元测试:

zig build test

运行实时Graph端到端套件(85个测试;需要 MS365_CLIENT_ID / MS365_TENANT_ID 配置加上 E2E_* 变量在 .env):

zig build e2e

e2e工具针对真实的Graph端点练习每个工具,包括6个跨工具用户旅程(搜索一个人→ 打开聊天→ send → 搜索索引→ 删除→ 验证已结束)。