article
README
🚀 Keycloak MCP
Keycloak MCP 是一个针对 Keycloak 的模型上下文协议(MCP)服务器实现,它提供了一个标准化接口,用于管理 Keycloak 的用户和领域。
🚀 快速开始
本项目实现了一个与 Keycloak 集成的 MCP 服务器,允许你通过标准化协议管理 Keycloak 的用户和领域。它使用官方的 Keycloak 管理客户端与 Keycloak 的 API 进行交互。
✨ 主要特性
功能演示
可用工具
- create - user:在指定领域中创建新用户。
- 输入参数:
realm:领域名称username:新用户的用户名email:用户的电子邮件地址firstName:用户的名字lastName:用户的姓氏
- 输入参数:
- delete - user:从指定领域中删除用户。
- 输入参数:
realm:领域名称userId:要删除的用户的 ID
- 输入参数:
- list - realms:列出所有可用的领域。
- list - users:列出指定领域中的所有用户。
- 输入参数:
realm:领域名称
- 输入参数:
- list - clients:列出指定领域中的所有客户端。
- 输入参数:
realm:领域名称
- 输入参数:
- list - groups:列出指定领域中的所有组。
- 输入参数:
realm:领域名称
- 输入参数:
- list - client - roles:列出领域中特定客户端的所有角色。
- 输入参数:
realm:领域名称clientUniqueId:客户端的唯一 ID
- 输入参数:
- assign - client - role - to - user:为特定用户分配客户端角色。
- 输入参数:
realm:领域名称userId:用户的 IDclientUniqueId:客户端的唯一 IDroleName:要分配的角色名称
- 输入参数:
- add - user - to - group:将用户添加到特定组。
- 输入参数:
realm:领域名称userId:用户的 IDgroupId:组的 ID
- 输入参数:
📦 安装指南
先决条件
- Node.js(建议使用最新的 LTS 版本)
- npm
- 正在运行的 Keycloak 实例
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 keycloak - mcp,请执行以下命令:
npx -y @smithery/cli install @HaithamOumerzoug/keycloak-mcp --client claude
通过 NPM 安装
该服务器作为 NPM 包提供:
# 直接使用 npx
npx -y keycloak-mcp
# 或者全局安装
npm install -g keycloak-mcp
📚 详细文档
配置
使用 NPM 包
在你的 Cursor IDE、Cline 或 Claude Desktop MCP 配置文件中配置服务器:
{
"mcpServers": {
"keycloak": {
"command": "npx",
"args": ["-y", "keycloak-mcp"],
"env": {
"KEYCLOAK_URL": "http://localhost:8080",
"KEYCLOAK_ADMIN": "admin",
"KEYCLOAK_ADMIN_PASSWORD": "admin"
}
}
}
}
本地开发
{
"mcpServers": {
"keycloak": {
"command": "node",
"args": ["path/to/dist/index.js"],
"env": {
"KEYCLOAK_URL": "http://localhost:8080",
"KEYCLOAK_ADMIN": "admin",
"KEYCLOAK_ADMIN_PASSWORD": "admin"
}
}
}
}
开发
要设置开发环境,请按以下步骤操作:
- 克隆仓库
- 安装依赖:
npm install - 构建项目:
npm run build - 启动项目:
npm run watch
可用脚本
npm run build- 构建项目并使 CLI 可执行npm run prepare- 运行构建脚本(在包安装期间使用)npm run watch- 监视更改并自动重新构建
依赖项
主要依赖项
@keycloak/keycloak-admin-client- 官方 Keycloak 管理客户端@modelcontextprotocol/sdk- 用于标准化协议实现的 MCP SDKzod- 基于 TypeScript 的模式验证库
开发依赖项
typescript- 支持 TypeScript@types/node- Node.js 的 TypeScript 定义shx- 跨平台的 shell 命令
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫