使用说明

项目简介

Microsoft Graph MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为 AI 助手 (如 Claude、GitHub Copilot 或 Cursor) 提供访问 Microsoft Entra ID (原 Azure Active Directory) 数据的标准化接口。它充当 LLM 应用和 Microsoft Graph API 之间的桥梁,使得 LLM 能够安全、便捷地查询和操作 Microsoft Entra ID 中的用户、群组等资源。

主要功能点

  • Microsoft Graph API 访问: 提供对 Microsoft Graph API 的安全访问,允许 LLM 查询 Microsoft 365 数据。
  • 资源访问: 通过预定义的工具,LLM 可以获取 Microsoft Entra ID 中的用户和群组信息。
  • 工具注册与执行: 实现了 'listUsers', 'getUser', 'searchUsers', 'listGroups', 'getGroupMembers' 等工具,方便 LLM 调用以检索 Microsoft Entra ID 数据。
  • API Key 安全: 支持 API 密钥认证,保护 MCP 服务器的访问安全 (在与 AI 助手集成时可自动绕过)。
  • 简易集成: 提供与 Claude Desktop, VS Code, Cursor 等 MCP 客户端的集成配置示例。
  • SSE 传输协议: 使用 Server-Sent Events (SSE) 作为 MCP 服务器的传输协议,实现与客户端的实时通信。

安装步骤

  1. 环境准备: 确保已安装 Node.js 14+ 和 Python 3.8+。
  2. 安装: 使用 npm 从 GitHub 安装(需要先安装 npm):
    npm install -g github:uniQuk/mcpEntra
  3. 首次运行配置: 首次运行 'mcp-entra' 命令时,会引导进行配置,包括 Microsoft Entra ID 凭据 (Tenant ID, Client ID, Client Secret) 的设置。按照提示输入即可。
  4. 配置 Microsoft Entra ID 应用注册:
    • 登录 Azure 门户,进入 Azure Active Directory -> 应用注册。
    • 创建新的应用注册,选择单租户。
    • 记录应用程序(客户端) ID目录(租户) ID
    • 创建客户端密码,并记录密钥值。
    • 添加 API 权限,例如 'User.Read.All' 和 'Group.Read.All' (根据需要添加更多权限)。
    • 点击 "授予管理员同意"。

服务器配置

MCP 服务器主要通过命令行启动,并监听来自 MCP 客户端的请求。以下是针对不同 MCP 客户端 (如 Claude Desktop, VS Code, Cursor) 的服务器配置示例。这些配置描述了如何让 MCP 客户端找到并连接到 'mcpEntra' 服务器。

注意: 以下配置中的 'command' 和 'args' 描述了如何启动 'mcpEntra' 服务器进程。MCP 客户端会根据这些信息来启动和连接服务器。'env' 部分则定义了服务器运行时需要的环境变量,例如 Microsoft Entra ID 的认证信息。

Claude Desktop 配置

{
  "mcpServers": {
    "Microsoft-Entra": {
      "command": "npx",  // 使用 npx 命令
      "args": [
        "-y",          // 自动确认安装
        "github:uniQuk/mcp-entra" // 从 GitHub 安装并运行 mcpEntra
      ],
      "env": {
        "TENANT_ID": "your-tenant-id",      // 替换为你的 Tenant ID
        "CLIENT_ID": "your-client-id",        // 替换为你的 Client ID
        "CLIENT_SECRET": "your-client-secret", // 替换为你的 Client Secret
        "AI_ASSISTANT": "true"             // 标记为 AI 助手环境,绕过 API Key 验证 (可选,如果不需要API Key验证可以添加)
      }
    }
  }
}

VS Code/GitHub Copilot 配置

{
  "servers": {
    "Microsoft-Entra": {
      "type": "npm",  // 服务器类型为 npm 包
      "packageInfo": {
        "name": "github:uniQuk/mcp-entra" // npm 包名称,指向 GitHub 仓库
      },
      "env": {
        "TENANT_ID": "your-tenant-id",      // 替换为你的 Tenant ID
        "CLIENT_ID": "your-client-id",        // 替换为你的 Client ID
        "CLIENT_SECRET": "your-client-secret", // 替换为你的 Client Secret
        "AI_ASSISTANT": "true"             // 标记为 AI 助手环境,绕过 API Key 验证 (可选,如果不需要API Key验证可以添加)
      }
    }
  }
}

Cursor 配置

{
  "mcpServers": {
    "Microsoft-Entra": {
      "command": "npx",  // 使用 npx 命令
      "args": [
        "-y",          // 自动确认安装
        "github:uniQuk/mcp-entra" // 从 GitHub 安装并运行 mcpEntra
      ],
      "env": {
        "TENANT_ID": "your-tenant-id",      // 替换为你的 Tenant ID
        "CLIENT_ID": "your-client-id",        // 替换为你的 Client ID
        "CLIENT_SECRET": "your-client-secret", // 替换为你的 Client Secret
        "AI_ASSISTANT": "true"             // 标记为 AI 助手环境,绕过 API Key 验证 (可选,如果不需要API Key验证可以添加)
      }
    }
  }
}

注意: 请将配置示例中的 '"your-tenant-id"', '"your-client-id"', '"your-client-secret"' 替换为你在 Microsoft Entra ID 应用注册中获取的实际值。 'AI_ASSISTANT: "true"' 用于告知服务器当前运行在 AI 助手环境中,此时服务器会绕过 API Key 验证,方便集成使用。如果需要更严格的 API Key 验证,可以移除 'AI_ASSISTANT: "true"' 并在服务器端配置 API 密钥。

基本使用方法

  1. 启动 MCP 服务器: 在安装完成后,可以通过命令行运行 'mcp-entra' 命令启动服务器。首次运行会进行配置引导。后续运行会直接启动服务器。
  2. 配置 MCP 客户端: 根据你使用的 MCP 客户端 (如 Claude Desktop, VS Code, Cursor),按照上述 "服务器配置" 部分的示例进行配置,将配置信息添加到客户端的配置文件中。
  3. 在 LLM 中使用: 在配置完成后,你的 LLM 应用 (如 Claude, Copilot, Cursor) 应该能够检测到并连接到 Microsoft Graph MCP Server。你可以通过自然语言指令指示 LLM 使用 "Microsoft-Entra" 服务器提供的工具来查询 Microsoft Entra ID 数据,例如:
    • "列出所有用户" (对应 'listUsers' 工具)
    • "查找用户名为 '张三' 的用户" (可能对应 'searchUsers' 工具)
    • "获取用户 ID 为 'xxx' 的用户信息" (对应 'getUser' 工具)

具体如何通过自然语言指令触发工具,取决于你使用的 LLM 应用和其对 MCP 协议的支持程度。请参考你所用 LLM 应用的文档,了解如何利用 MCP 服务器提供的功能。

信息

分类

商业系统