小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
2
最近更新:1个月前

使用MCP服务器管理Microsoft 365

Microsoft 365 MCP 服务器

💡 描述

目前,该项目正在进行中,更多的是一种概念验证(POC),而非完整的解决方案。
目标是创建一个 MCP 服务器,允许运行任何种类的 Microsoft 365 CLI 命令。

📦 先决条件

  • Node.js 20.x 或更高版本

🚀 如何构建和运行

在开始之前,首先运行 npm install 来安装所有依赖项。

然后,为了构建项目,请运行:

复制代码
npm run build

为了测试此工具,您需要创建一个 Entra 应用注册以及一个证书,以便该 MCP 服务器能够以应用身份对 Microsoft 365 进行身份验证。为了创建证书并使用所需的范围注册应用,并将其添加到您的租户以及关联的证书,请运行 createApp.ps1 脚本并按照说明操作。创建证书时,大多数内容可以留空,但密码是必需的。由于脚本使用 CLI for Microsoft 365 创建应用注册和其他内容,因此您首先需要通过 npm i -g @pnp/cli-microsoft365 全局安装 CLI for Microsoft 365,并以管理员身份登录到您的租户。执行脚本后,您应该会在 Entra ID 中看到一个名为“MCP Server Test”的应用注册,并附带所需的范围和证书。您还应该在 temp 文件夹中看到证书文件以及导出的 base64 编码证书。稍后将需要它们。

使用 Inspector 运行 MCP

测试 M365 MCP 服务器的方法之一是使用 MCP Inspector
首先,使用以下命令启动 M365 MCP 服务器:

复制代码
npm run start

现在,为了运行您的 MCP 服务器的 Inspector 并将所需的参数作为环境变量传递下去,以便 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

之后,等待 Inspector 启动并在浏览器中打开 Inspector。您应该会看到 MCP 服务器正在运行,并且能够查询工具并在本地执行它们。

inspector

在 VS Code 中运行 MCP

也可以在 VS Code 中从本地构建运行 MCP 服务器,以便它能被 GitHub Copilot Agent 使用。
目前,这仅在 VS Code Insiders 中受支持。
首先,使用以下命令启动 M365 MCP 服务器:

复制代码
npm run start

现在,进入 VS Code 的 GitHub Copilot Agent 模式,点击工具图标并选择 Add more tools。然后选择 Add MCP serverCommand (stdio),并输入以下命令:

复制代码
node FULL_PATH_TO_YOUR_PROJECT/dist/index.js

按下回车键并为其命名(可随意)。建议将其添加到 workspace 范围以进行测试。之后,打开 .vscode/mcp.json 文件并修改它以传递身份验证所需的环境变量。

json 复制代码
{
    "servers": {
        "m365-mcp-server": {
            "type": "stdio",
            "command": "node",
            "args": [
                "FULL_PATH_TO_YOUR_PROJECT/dist/index.js" // 例如: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" // 例如:https://tenanttocheck.sharepoint.com/
            }
        }
    }
}

点击启动,您应该会看到 4 个新工具已添加到您的 GitHub Copilot Agent。试用它们。

vs code

🎬 演示

👉 视频 🎬

🔗 资源