使用说明
项目简介
本项目提供了一组MCP服务器的参考实现,重点演示了如何集成身份验证机制。这些示例服务器展示了如何使用Entra ID和GitHub等身份提供商,为MCP服务器添加安全保护,确保只有经过授权的LLM客户端才能访问服务器提供的资源和工具。
主要功能点
- 身份验证演示: 展示了如何使用Entra ID和GitHub进行MCP服务器的身份验证。
- 多种场景支持: 提供了本地和远程MCP服务器的示例,以及可兼顾本地和远程部署的双用途服务器示例。
- OAuth 2.0流程: 实现了基于OAuth 2.0协议的授权流程,包括客户端注册、授权码交换、访问令牌管理等。
- 工具调用示例: 包含一个简单的工具示例 (getUserDetails),演示了如何在MCP服务器中集成工具功能,并进行安全调用。
安装步骤
- 克隆仓库: 首先,将仓库克隆到本地:
git clone https://github.com/localden/mcp-auth-servers.git - 选择示例: 进入您感兴趣的服务器示例目录,例如 'src/github-app-session' 或 'src/entra-id-cca-session'。
- 安装依赖: 在示例目录中,运行以下命令安装项目依赖:
npm install - 配置环境变量: 根据示例服务器的 'README.md' 或代码注释,配置所需的环境变量。例如,'github-app-session' 示例需要配置 GitHub Client ID 和 Client Secret。Entra ID 示例需要配置 Entra ID 相关的客户端和租户信息。
- 启动服务器: 运行启动命令来启动服务器。通常可以使用 'npm start' 或 'node Server.js',具体请查看示例目录下的 'package.json' 文件中的 scripts 部分。
服务器配置
以下是MCP客户端连接到 'github-app-session' 示例服务器的配置信息(JSON格式)。请根据您选择的示例服务器进行调整。
{ "serverName": "github-auth-server", "command": "node", "args": ["Server.js"] }
配置信息说明:
- 'serverName': 服务器的名称,可以自定义,用于在MCP客户端中标识服务器。例如: '"github-auth-server"'。
- 'command': 启动服务器的命令。对于 Node.js 服务器,通常是 '"node"'。
- 'args': 启动命令的参数,以数组形式提供。对于本示例,'"Server.js"' 是服务器的入口文件。
注意:
- 请确保MCP客户端的工作目录设置在 'src/github-app-session' 目录或包含 'Server.js' 文件的目录,以便客户端能够正确执行 'node Server.js' 命令。
- 实际的服务器地址和端口 (例如 'http://localhost:3001/sse') 是在服务器代码中定义的 ('Server.ts'),客户端通常需要根据服务器的实际运行地址进行连接。本示例默认使用 'http://localhost:3001'。
基本使用方法
- 启动MCP服务器: 按照上述安装步骤启动选择的示例MCP服务器。
- 配置MCP客户端: 在MCP客户端中,配置服务器连接信息,包括服务器名称、启动命令和参数,以及服务器地址 (例如 'http://localhost:3001/sse')。
- 客户端连接与认证: 启动MCP客户端,客户端会尝试连接到MCP服务器。由于本示例服务器启用了身份验证,客户端需要按照OAuth 2.0流程进行认证。通常,客户端会重定向用户到身份提供商(如GitHub或Entra ID)的登录页面进行授权。
- 调用工具: 认证成功后,客户端可以向MCP服务器发送请求,例如列出可用工具或调用 'getUserDetails' 工具,获取用户信息。服务器会验证客户端的身份和权限,并返回相应的结果。
信息
分类
开发者工具