项目简介
本项目是一个最小化的 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' 功能。
安装步骤:
- 安装 Node.js 和 npm: 确保您的系统已安装 Node.js 和 npm (Node Package Manager)。
- 克隆仓库: 将仓库 'https://github.com/dend/entra-id-mcp-server-demo' 克隆到本地。
- 安装依赖: 在项目根目录下运行命令 'npm install' 安装项目依赖。
- 构建项目: 运行命令 'npm run build' 构建项目。
- 配置环境变量:
- 复制 '.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"] }
基本使用方法:
- 启动服务器: 在项目根目录下运行命令 'npm run start' 启动 MCP 服务器。
- 使用 MCP Inspector 或其他 MCP 客户端工具: 使用支持 HTTP+SSE 传输和身份验证的 MCP 客户端工具(如 MCP Inspector)连接到服务器。
- 进行身份验证: 客户端需要通过 Entra ID 进行身份验证才能与服务器建立连接。
- 列出工具: 客户端可以请求服务器列出可用的工具。您应该能看到 'getUserDetails' 工具。
- 调用工具: 客户端可以调用 'getUserDetails' 工具,服务器将返回已认证用户的详细信息。
注意: 由于这是一个演示项目,可能缺少生产环境所需的错误处理、性能优化和安全措施。请仔细评估并在生产环境中使用。
信息
分类
商业系统