项目简介

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服务器进行认证信息传递和错误处理。

安装步骤

  1. 克隆仓库: 在您的开发环境中打开终端或命令行工具,执行以下命令获取项目代码:
    git clone https://github.com/limosa-io/mcp-scim.git
    cd mcp-scim
  2. 安装依赖: 进入项目目录后,安装所有必要的依赖项:
    npm install
  3. 编译项目: 编译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服务。

基本使用方法

  1. 启动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
      然后通过以下命令启动服务器:
      npm start
      服务器将在配置的端口上监听HTTP请求。
  2. 通过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