项目简介

本项目是一个最小化的 MCP 服务器示例,展示了如何通过 Entra ID (Azure Active Directory) 进行身份验证,并使用 HTTP+SSE (Server-Sent Events) 协议与 MCP 客户端通信。它包含一个简单的工具,可以获取已认证用户的基本信息(displayName, mail, userPrincipalName),并通过 Microsoft Graph API 返回。请注意,这是一个演示项目,不适用于生产环境。

主要功能点:

  • MCP 服务器核心功能: 实现了 MCP 协议的基本服务器端功能,包括工具注册和调用。
  • Entra ID 身份验证: 集成了 Entra ID 身份验证,确保客户端请求的安全性。
  • HTTP+SSE 传输: 使用 HTTP+SSE 协议进行实时通信,符合 MCP 服务器的传输协议规范。
  • 工具示例: 提供了一个 'getUserDetails' 工具,演示了如何通过 MCP 服务器调用外部 API (Microsoft Graph)。
  • 能力声明: 声明了服务器支持 'tools' 和 'resources' 功能。

安装步骤:

  1. 安装 Node.js 和 npm: 确保您的系统已安装 Node.js 和 npm (Node Package Manager)。
  2. 克隆仓库: 将仓库 'https://github.com/dend/entra-id-mcp-server-demo' 克隆到本地。
  3. 安装依赖: 在项目根目录下运行命令 'npm install' 安装项目依赖。
  4. 构建项目: 运行命令 'npm run build' 构建项目。
  5. 配置环境变量:
    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 根据您的 Entra ID 环境配置 '.env' 文件中的以下环境变量:
      • 'FR_API_CLIENT_ID': 您的 API 客户端 ID。
      • 'FR_API_CLIENT_SECRET': 您的 API 客户端密钥。
      • 'FR_TENANT_ID': 您的 Entra ID 租户 ID。
      • 'FR_PUBLIC_CLIENT_ID': 您的公共客户端 ID。
      • 'PORT': 服务器端口号 (可选,默认为 3001)。

服务器配置 (MCP 客户端配置):

MCP 客户端需要以下配置信息才能连接到此 MCP 服务器。将以下 JSON 配置添加到您的 MCP 客户端配置中:

{
  "serverName": "entra-id-mcp-server-demo",
  "command": "npm",
  "args": ["run", "start"]
}

基本使用方法:

  1. 启动服务器: 在项目根目录下运行命令 'npm run start' 启动 MCP 服务器。
  2. 使用 MCP Inspector 或其他 MCP 客户端工具: 使用支持 HTTP+SSE 传输和身份验证的 MCP 客户端工具(如 MCP Inspector)连接到服务器。
  3. 进行身份验证: 客户端需要通过 Entra ID 进行身份验证才能与服务器建立连接。
  4. 列出工具: 客户端可以请求服务器列出可用的工具。您应该能看到 'getUserDetails' 工具。
  5. 调用工具: 客户端可以调用 'getUserDetails' 工具,服务器将返回已认证用户的详细信息。

注意: 由于这是一个演示项目,可能缺少生产环境所需的错误处理、性能优化和安全措施。请仔细评估并在生产环境中使用。

信息

分类

商业系统