Microsoft 365 Copilot 服务器
一个MCP服务器,通过GitHub Copilot代理启用运行Microsoft 365命令的CLI,允许用户使用自然语言与Microsoft 365服务进行交互。
服务介绍
Microsoft 365 MCP 服务器
💡 说明
目前这是一个正在进行中的工作,更像是一个概念验证而不是一个完整的解决方案。
目标是创建一个MCP服务器,允许运行任何类型的Microsoft 365命令行界面(CLI)命令。
📦 先决条件
- Node.js 20.x 或更高版本
🚀 如何构建和运行
在开始之前,请先运行 npm install 以安装所有依赖项。
然后,为了构建项目,请运行:
npm run build
为了测试此工具,您需要创建一个Entra应用程序请求和证书,以便此MCP服务器可以作为应用程序对Microsoft 365进行身份验证。要创建证书并将应用程序请求与所需范围一起添加到您的租户中,并附带证书,请运行 createApp.ps1 脚本并按照说明操作。在创建证书时,除了密码外,大多数内容都可以留空。密码是必需的。由于脚本使用 CLI for Microsoft 365 创建应用程序请求和其他内容,因此您首先需要全局安装CLI for Microsoft 365,使用 npm i -g @pnp/cli-microsoft365 并以管理员身份登录到您的租户。执行脚本后,您应该会在Entra ID上看到一个带有必要范围和证书的“MCP Server Test”应用注册。您还应该在 temp 文件夹中看到证书文件和导出的Base64编码证书。稍后您将需要这些。
使用检查器运行MCP
测试M365 MCP服务器的一种方法是使用 MCP Inspector。
首先使用以下命令启动M365 MCP服务器:
npm run start
现在,为了让您的MCP服务器也能通过环境变量传递所需的参数,以便MCP服务器可以使用它们来对Microsoft 365进行身份验证,您可以运行以下命令:
npx @modelcontextprotocol/inspector -e CertificatePassword='YOUR_PASSOWRD' -e AppId='ENTRA_APP_REG_ID' -e TenantId='TENANT_ID' -e TenantUrl='TENANT_URL' -e CertificateBase64Encoded='BASE64_ENCODED_VALUE_OF_YOUR_CERT' node dist/index.js
之后等待检查器启动并在浏览器中打开检查器。您应该能看到正在运行的MCP服务器,并且能够查询工具并在本地执行它们。

在VS Code中运行MCP
也可以从本地构建在VS Code中运行MCP服务器,以便它可以被GitHub Copilot Agent使用。
目前这仅支持在VS Code Insiders中。
首先使用以下命令启动M365 MCP服务器:
npm run start
现在进入VS Code GitHub Copilot Agent模式,点击工具图标并选择“添加更多工具”。然后选择“添加MCP服务器”,接着选择“命令(stdio)”并输入以下命令:
node FULL_PATH_TO_YOUR_PROJECT/dist/index.js
按回车键并为其命名。建议将其添加到workspace作用域以供测试。之后打开您的 .vscode/mcp.json 文件并修改它以传递身份验证所需的环境变量。
{
"servers": {
"m365-mcp-server": {
"type": "stdio",
"command": "node",
"args": [
"FULL_PATH_TO_YOUR_PROJECT/dist/index.js" // e.g. C:/workspace/repo/microsoft-365-mcp-server/dist/index.js
],
"env": {
"CertificateBase64Encoded": "BASE64_ENCODED_VALUE_OF_YOUR_CERT",
"CertificatePassword": "YOUR_PASSOWRD",
"AppId": "ENTRA_APP_REG_ID",
"TenantId": "TENANT_ID",
"TenantUrl": "TENANT_URL" // e.g. https://tenanttocheck.sharepoint.com/
}
}
}
}
点击开始,您应该会看到有4个新工具被添加到了您的GitHub Copilot Agent中。请测试它们。

🎬 演示
👉 视频 🎬