使用说明

本项目是一个基于Quarkus框架实现的Model Context Protocol (MCP) 服务器,专注于通过标准化接口将Keycloak的用户管理功能暴露给大型语言模型(LLM)客户端。

项目简介

Keycloak MCP Server利用Quarkus的高效特性,构建了一个符合MCP标准的后端服务。它集成了Keycloak,允许LLM应用通过定义好的工具来执行用户相关的操作,如创建、列出或删除Keycloak中的用户。

主要功能点

  • 基于Quarkus构建: 利用Quarkus框架提供快速启动和低资源消耗的服务。
  • MCP 标准实现: 遵循Model Context Protocol,支持与MCP客户端通过标准输入/输出或其他协议进行通信。
  • Keycloak 集成: 与Keycloak深度集成,提供身份和访问管理能力。
  • 用户管理工具: 将Keycloak的用户管理操作(如创建、列出、删除用户)封装为LLM可调用的工具。

安装步骤

  1. 安装前置条件:

    • 确保系统安装了 Java 21 或更高版本
    • 安装 Maven 构建工具。
    • 安装 DockerDocker Compose,用于启动Keycloak实例。
  2. 启动 Keycloak:

    • 在项目根目录下,使用Docker Compose启动Keycloak:
      docker-compose -f deploy/docker-compose.yml up -d
  3. 构建项目:

    • 在项目根目录下,使用Maven构建可执行的JAR文件:
      ./mvnw package
    • 构建成功后,可在 'target/' 目录下找到 'keycloak-mcp-server-1.0.0-SNAPSHOT-runner.jar' 文件。

服务器配置 (用于MCP客户端)

MCP客户端需要配置该服务器的启动命令及其参数,以便通过特定的传输协议(如Stdio)与之建立连接。这些配置通常在客户端的设置文件中指定。

基于本项目,一个典型的MCP客户端配置会包含以下信息:

  • 服务器名称: 例如 'keycloak-mcp-server'
  • 启动命令 (command): 'java'
  • 命令参数 (args): 一个字符串数组,包含 '-jar' 和构建好的 JAR 文件路径。例如 '["-jar", "path/to/your/cloned/repo/target/keycloak-mcp-server-1.0.0-SNAPSHOT-runner.jar"]'。请将 'path/to/your/cloned/repo' 替换为你实际克隆项目到的路径。

请注意,具体的配置格式和位置取决于你使用的MCP客户端类型(如 Goose)。

基本使用方法

启动Keycloak和Keycloak MCP Server后(如使用上述构建步骤和启动命令),配置好的MCP客户端(如Goose)即可连接并与服务器交互。LLM可以通过客户端发现服务器提供的工具,并按需调用它们来管理Keycloak用户。

例如,通过MCP客户端,LLM可以执行以下操作:

  • 请求列出指定领域(realm)的所有用户。
  • 提供必要信息(realm, username, password等)请求创建一个新用户。
  • 指定领域和用户名请求删除一个现有用户。

服务器将处理这些请求,与Keycloak API交互,并将结果或状态通过MCP协议返回给客户端。

信息

分类

商业系统