项目简介

这是一个最小化的 MCP 服务器示例,展示了如何使用 Entra ID 进行身份验证,并通过 HTTP+SSE 传输协议提供 MCP 服务。 本服务器演示了如何集成企业身份验证到 MCP 服务器中,保护对工具等资源的访问。

请注意: 此仓库已被归档,并且不适用于生产环境。 代码仅供参考和学习目的。

主要功能点

  • Entra ID 身份验证: 使用 Entra ID (Azure AD) 进行用户身份验证,保护 MCP 服务器资源。
  • 工具 (Tools) 服务: 提供一个 'getUserDetails' 工具,用于获取当前认证用户的详细信息,例如姓名、邮箱和 UPN。
  • HTTP+SSE 传输: 使用 Server-Sent Events (SSE) 作为 MCP 客户端和服务器之间的通信协议。
  • 会话管理: 使用会话令牌管理用户会话,增强安全性。

安装步骤

  1. 克隆仓库: 将代码仓库克隆到本地。

  2. 安装依赖: 在项目根目录下运行 'npm install' 安装所需的 Node.js 依赖包。

  3. 构建项目: 运行 'npm run build' 构建 TypeScript 代码。

  4. 配置环境变量: 创建 '.env' 文件,并配置以下 Entra ID 相关的环境变量:

    • 'FR_API_CLIENT_ID': Entra ID 应用程序的客户端 ID (API 权限)。
    • 'FR_API_CLIENT_SECRET': Entra ID 应用程序的客户端密钥 (API 权限)。
    • 'FR_TENANT_ID': Entra ID 租户 ID。
    • 'FR_PUBLIC_CLIENT_ID': Entra ID 公共客户端应用程序的客户端 ID (用于前端认证流程)。
  5. 启动服务器: 运行 'npm run start' 启动 MCP 服务器。 服务器默认监听 3001 端口。

服务器配置 (MCP 客户端)

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

{
  "serverName": "entra-id-mcp-server-demo",
  "command": "node",
  "args": ["dist/Server.js"],
  "transport": "sse",
  "baseUrl": "http://localhost:3001"
}

参数说明:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 Node.js 应用。
  • 'args': 启动命令的参数,指定服务器入口文件 'dist/Server.js'。
  • 'transport': 传输协议,这里使用 'sse' (Server-Sent Events)。
  • 'baseUrl': 服务器的基础 URL 地址,默认为 'http://localhost:3001'。

注意: 此配置假设服务器在本地运行,并且监听 3001 端口。如果服务器部署在其他位置或使用不同的端口,请相应地修改 'baseUrl' 和 'args' 中的端口号或主机地址。

基本使用方法

  1. 启动 MCP 服务器: 按照安装步骤启动服务器。
  2. 配置 MCP 客户端: 将上述服务器配置添加到 MCP 客户端。
  3. 连接到服务器: 在 MCP 客户端中连接到配置的服务器。
  4. 调用工具: 使用 MCP 客户端调用 'getUserDetails' 工具。 由于服务器需要 Entra ID 认证,客户端可能需要先完成认证流程才能成功调用工具。 具体的认证流程可能需要参考 MCP Inspector 或其他支持 Entra ID 认证的 MCP 客户端工具的文档。

信息

分类

开发者工具