mcpField
K
Keycloak MCP Server

Keycloak MCP Server

本地服务
shaaf.dev安全4810 周前更新

关于 Keycloak MCP Server

Keycloak MCP Server 是一个 MCP 服务,用于通过编程方式管理 Keycloak 的身份与访问管理功能。它面向需要让 AI 助手或开发工具操作 Keycloak 的团队。项目支持用户自身 JWT 令牌认证,并提供原生镜像构建。

主要功能

  1. 01用户 JWT 令牌认证
  2. 02覆盖用户、Realm、客户端、角色、组等管理操作
  3. 03基于 SSE 的 HTTP 通信
  4. 04提供 Docker 容器镜像
  5. 05支持 GraalVM 原生镜像构建

适用场景

  1. 01通过 AI 助手管理 Keycloak 用户与角色
  2. 02在 OpenShift 或 Kubernetes 中部署管理服务
  3. 03在开发工具中配置 Keycloak 管理操作

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 Keycloak 管理功能,客户端通过 SSE 传输并携带 Bearer 令牌进行连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"keycloak": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"\\"
]
}
}
}
启动命令docker run -i --rm '\'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
oci\

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

项目徽标

一个用于 Keycloak 的 MCP 服务

Keycloak MCP 服务

一个模型上下文协议(MCP)服务,可通过编程方式访问 Keycloak 管理功能。

概述

Keycloak MCP 服务使 AI 助手和开发工具能够通过模型上下文协议与 Keycloak 交互。它支持全面的 Keycloak 操作,包括用户管理、领域配置、客户端管理和身份验证流程管理。

主要功能

  • 用户 JWT 令牌身份验证
  • 全面的 Keycloak 操作(用户、领域、客户端、角色、组等)
  • 基于 HTTP 通信的 SSE 传输
  • 可用于生产环境的 OpenShift/Kubernetes 部署
  • 多架构容器映像
  • 支持 GraalVM 原生映像

快速开始

使用 Docker
docker run -d \
  --name keycloak-mcp-server \
  -p 8080:8080 \
  -e KC_URL=https://keycloak.example.com \
  -e KC_REALM=master \
  -e OIDC_CLIENT_ID=mcp-server \
  quay.io/sshaaf/keycloak-mcp-server:latest
身份验证

用户使用自己从 Keycloak 获取的 JWT 令牌进行身份验证:

# Get your token
./scripts/get-mcp-token.sh \
  --keycloak-url https://keycloak.example.com \
  --username your-username \
  --password your-password

在 MCP 客户端中配置(~/.cursor/mcp.json):

{
  "mcpServers": {
    "keycloak": {
      "transport": "sse",
      "url": "https://mcp-server.example.com/mcp/sse",
      "headers": {
        "Authorization": "Bearer <your-jwt-token>"
      }
    }
  }
}

文档

完整文档位于 docs 目录中:

构建文档

本项目使用 MkDocs 编写文档。要在本地构建并提供文档服务:

pip install mkdocs-material
mkdocs serve

访问 http://localhost:8000 查看文档。

容器映像

可从 Quay.io 获取预构建映像:

docker pull quay.io/sshaaf/keycloak-mcp-server:latest

每次向 main 分支提交代码以及发布版本时,都会自动构建并推送映像。

构建

JAR
mvn clean package
java -jar target/quarkus-app/quarkus-run.jar
原生映像
mvn clean package -Pnative
./target/keycloak-mcp-server-runner
容器映像
mvn clean package -Dquarkus.container-image.build=true
测试
  • 默认单元测试和集成测试:mvn test
  • 提示词 / 评估覆盖率说明:evals/README.md

技术栈

  • Quarkus - 云原生 Java 框架
  • Keycloak Admin Client - Keycloak 官方 Java 客户端
  • MCP Protocol - 用于 AI 集成的模型上下文协议
  • Jib - 无需 Docker 守护进程即可构建容器映像
  • GraalVM - 支持原生映像编译

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

贡献

欢迎贡献。详情请参阅贡献者指南。

支持


维护者:Shaaf Syed
仓库:https://github.com/sshaaf/keycloak-mcp-server
容器注册表:https://quay.io/repository/sshaaf/keycloak-mcp-server

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。