项目简介
SCIM MCP 网关服务是一个基于Model Context Protocol (MCP)构建的后端服务,旨在将SCIM 2.0 (System for Cross-domain Identity Management) API转换为LLM客户端可直接调用的“工具”。它允许大型语言模型(LLM)客户端通过标准化的MCP协议,以结构化的方式访问、创建、更新和删除SCIM资源(如用户、组等),实现与各种身份管理系统的无缝集成。该服务支持多种传输协议,并内置了OAuth 2.1资源服务器的认证支持。
主要功能点
- SCIM API桥接: 将SCIM 2.0标准API(如用户、组、资源类型、架构等)封装为MCP工具,方便LLM调用。
- 资源管理: 支持对SCIM资源的全面操作,包括查询、按ID检索、创建、更新(PUT和PATCH)、删除以及批量操作。
- 能力发现: 提供查询SCIM资源类型、服务提供商配置和SCIM架构定义的工具,帮助LLM理解可用的功能和数据结构。
- 多传输协议: 支持通过标准输入/输出 (Stdio) 和 HTTP (Streamable HTTP, SSE) 协议与MCP客户端通信。
- OAuth 2.1认证: 作为OAuth 2.1资源服务器,处理客户端的Bearer Token认证,并与底层的SCIM服务器进行认证信息传递和错误处理。
安装步骤
- 克隆仓库: 在您的开发环境中打开终端或命令行工具,执行以下命令获取项目代码:
git clone https://github.com/limosa-io/mcp-scim.git cd mcp-scim - 安装依赖: 进入项目目录后,安装所有必要的依赖项:
npm install - 编译项目: 编译TypeScript源代码为JavaScript:
npm run build
服务器配置
MCP客户端需要配置与SCIM MCP服务器的连接信息。以下是两种常见的配置方式:
方式一:Stdio (标准输入/输出) 传输 适用于需要在本地进程中启动MCP服务器的客户端。
{ "mcpServers": { "scim": { // MCP服务器的唯一标识名称 "name": "scim", // 启动MCP服务器的命令,这里使用npx从GitHub直接运行 "command": "npx", // 启动命令的参数,"--stdio" 表示以标准输入输出模式运行 "args": ["github:limosa-io/mcp-scim", "--stdio"], // 环境变量,用于配置底层SCIM服务器的URL和认证Token "env": { // 您要连接的SCIM服务器的基础URL,例如 "https://your-scim-server.com" "SCIM_URL": "替换为您的SCIM服务器URL", // 用于认证SCIM服务器的Bearer Token,例如 "your-bearer-token" "SCIM_AUTH_TOKEN": "替换为您的认证Token" } } } }
方式二:HTTP 传输 适用于通过HTTP/HTTPS连接已独立运行的MCP服务器的客户端。
{ "mcpServers": { "scim": { // MCP服务器的唯一标识名称 "name": "scim", // 已独立运行的MCP服务器的HTTP/HTTPS URL,例如 "http://localhost:3000/mcp" "url": "替换为您的MCP服务器URL", // 传递给MCP服务器的HTTP头,通常用于认证 "headers": { // 用于MCP服务器的Bearer Token,例如 "Bearer your-token" "Authorization": "替换为您的认证Token" }, // 传输类型,此处为HTTP "type": "http" } } }
注意:
- 对于HTTP传输方式,您需要先独立启动SCIM MCP服务器。您可以通过设置环境变量 'SCIM_URL' (必需) 和 'PORT' (可选,默认3000),然后运行 'npm start' 来启动。
- 'SCIM_AUTH_TOKEN' (Stdio) 或 'Authorization' header (HTTP) 是用于向SCIM MCP服务器进行认证的,而SCIM MCP服务器会将此Token转发给实际的SCIM服务。
基本使用方法
- 启动SCIM MCP服务器:
- Stdio模式 (作为MCP客户端的子进程运行,通常由客户端自动启动): 确保MCP客户端配置了 'SCIM_URL' 和 'SCIM_AUTH_TOKEN' 环境变量。
- HTTP模式 (独立运行):
您可以在项目根目录创建一个 '.env' 文件来配置环境变量,例如:
然后通过以下命令启动服务器:# .env SCIM_URL=https://your-scim-server.com SCIM_AUTH_TOKEN=your-bearer-token PORT=3000 # 可选,默认3000
服务器将在配置的端口上监听HTTP请求。npm start
- 通过MCP客户端调用工具: 一旦SCIM MCP服务器运行,您的MCP客户端(例如一个LLM应用)就可以发现并调用SCIM MCP服务器暴露的工具。例如,调用 'getResources' 工具来查询SCIM用户:
- LLM客户端可能会生成类似“查询所有活跃用户”的指令。
- MCP客户端将此指令转换为对 'scim' 服务器的 'getResources' 工具的JSON-RPC调用,参数为 'resourceType: "Users", filter: "active eq true"'。
- SCIM MCP服务器执行SCIM API调用,并将结果返回给MCP客户端,最终传递给LLM。
信息
分类
网页与API