项目简介
这是一个最小化的 MCP 服务器示例,展示了如何使用 Entra ID 进行身份验证,并通过 HTTP+SSE 传输协议提供 MCP 服务。 本服务器演示了如何集成企业身份验证到 MCP 服务器中,保护对工具等资源的访问。
请注意: 此仓库已被归档,并且不适用于生产环境。 代码仅供参考和学习目的。
主要功能点
- Entra ID 身份验证: 使用 Entra ID (Azure AD) 进行用户身份验证,保护 MCP 服务器资源。
- 工具 (Tools) 服务: 提供一个 'getUserDetails' 工具,用于获取当前认证用户的详细信息,例如姓名、邮箱和 UPN。
- HTTP+SSE 传输: 使用 Server-Sent Events (SSE) 作为 MCP 客户端和服务器之间的通信协议。
- 会话管理: 使用会话令牌管理用户会话,增强安全性。
安装步骤
-
克隆仓库: 将代码仓库克隆到本地。
-
安装依赖: 在项目根目录下运行 'npm install' 安装所需的 Node.js 依赖包。
-
构建项目: 运行 'npm run build' 构建 TypeScript 代码。
-
配置环境变量: 创建 '.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 (用于前端认证流程)。
-
启动服务器: 运行 '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' 中的端口号或主机地址。
基本使用方法
- 启动 MCP 服务器: 按照安装步骤启动服务器。
- 配置 MCP 客户端: 将上述服务器配置添加到 MCP 客户端。
- 连接到服务器: 在 MCP 客户端中连接到配置的服务器。
- 调用工具: 使用 MCP 客户端调用 'getUserDetails' 工具。 由于服务器需要 Entra ID 认证,客户端可能需要先完成认证流程才能成功调用工具。 具体的认证流程可能需要参考 MCP Inspector 或其他支持 Entra ID 认证的 MCP 客户端工具的文档。
信息
分类
开发者工具