使用说明
本项目是一个基于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可调用的工具。
安装步骤
-
安装前置条件:
- 确保系统安装了 Java 21 或更高版本。
- 安装 Maven 构建工具。
- 安装 Docker 和 Docker Compose,用于启动Keycloak实例。
-
启动 Keycloak:
- 在项目根目录下,使用Docker Compose启动Keycloak:
docker-compose -f deploy/docker-compose.yml up -d
- 在项目根目录下,使用Docker Compose启动Keycloak:
-
构建项目:
- 在项目根目录下,使用Maven构建可执行的JAR文件:
./mvnw package - 构建成功后,可在 'target/' 目录下找到 'keycloak-mcp-server-1.0.0-SNAPSHOT-runner.jar' 文件。
- 在项目根目录下,使用Maven构建可执行的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协议返回给客户端。
信息
分类
商业系统