Keycloak用户管理服务

一个用于管理Keycloak用户和领域的MCP服务器实现,提供标准化接口。

  • by HaithamOumerzoug
  • TypeScript
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 HaithamOumerzoug/keycloak-mcp

使用说明

Keycloak MCP服务器

Keycloak的模型上下文协议(MCP)服务器实现,为管理Keycloak用户和领域提供了一个标准化的接口。

描述

该项目实现了一个与Keycloak集成的MCP服务器,允许您通过标准化协议管理Keycloak用户和领域。它使用官方的密钥斗篷管理客户端与密钥斗篷的API进行交互。

功能演示

https://github.com/user-attachments/assets/4b02a049-b8d6-4cc5-a7b4-564a0e758dd8

可用工具

创建用户

在指定领域中创建新用户。

输入:

  • realm:领域名称
  • username:新用户的用户名
  • email:用户的电子邮件地址
  • firstName:用户的名字
  • lastName:用户的姓氏

删除用户

从指定领域删除用户。

输入:

  • realm:领域名称
  • userId:要删除的用户的ID

列出领域

列出所有可用领域。

列出用户

列出指定领域中的所有用户。

输入:

  • realm:领域名称

列出客户

列出指定领域中的所有客户端。

输入:

  • realm:领域名称

列出组

列出指定领域中的所有组。

输入:

  • realm:领域名称

列出客户端角色

列出领域中特定客户端的所有角色。

输入:

  • realm:领域名称
  • clientUniqueId:客户端的唯一ID

为用户分配客户端角色

将客户端角色分配给特定用户。

输入:

  • realm:领域名称
  • userId:用户的ID
  • clientUniqueId:客户端的唯一ID
  • roleName:要分配的角色的名称

将用户添加到组

将用户添加到特定组。

输入:

  • realm:领域名称
  • userId:用户的ID
  • groupId:组的ID

先决条件

  • Node.js(推荐最新LTS版本)
  • npm
  • 正在运行的Keycloak实例

安装

通过Smithery安装

通过以下方式自动安装Claude Desktop的keycloak mcp 铁匠铺:

$ npx -y @smithery/cli install @HaithamOumerzoug/keycloak-mcp --client claude

通过NPM安装

配置环境:

  • 您可以使用命令行参数或环境变量设置配置选项:
    • --keycloak-url <Keycloak Instance URL>
    • --keycloak-admin <Admin Username>
    • --keycloak-admin-password <Admin Password>
  • 如果同时设置了这两个参数,则这些参数将覆盖环境变量。

启动服务器:

服务器可作为NPM包使用:

# Direct usage with npx
$ npx -y keycloak-mcp --keycloak-url <Keycloak Instance URL> --keycloak-admin <Admin Username> --keycloak-admin-password <Admin Password>

# Or global installation
$ npm install -g keycloak-mcp@latest
$ keycloak-mcp --keycloak-url <Keycloak Instance URL> --keycloak-admin <Admin Username> --keycloak-admin-password <Admin Password>

配置

使用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/server.js"],
      "env": {
        "KEYCLOAK_URL": "http://localhost:8080",
        "KEYCLOAK_ADMIN": "admin",
        "KEYCLOAK_ADMIN_PASSWORD": "admin"
      }
    }
  }
}

发展

设置开发环境:

  1. 克隆仓库
  2. 安装依赖项:
    npm install
    
  3. 设置环境变量
    cp .env.template .env
    # Edit the .env file and set all variables with the appropriate values
    
  4. 启动项目:
    npm run dev
    

可用脚本

  • npm run build -构建项目并使CLI可执行
  • npm run prepare -运行构建脚本(在包安装期间使用)
  • npm run dev -自动监视更改和重建
  • npm start -启动服务器(用于生产)

依赖项

主要依赖关系

  • @keycloak/keycloak-admin-client -官方Keycloak管理客户端
  • @modelcontextprotocol/sdk -用于标准化协议实现的MCP SDK
  • zod -TypeScript第一模式验证
  • chalk -端子串样式
  • yargs -解析命令行参数

开发依赖关系

  • typescript -支持TypeScript
  • @types/node -Node.js的TypeScript定义
  • shx -跨平台shell命令
  • ts-node -Node.js的TypeScript执行和REPL
  • rimraf -用于删除目录的跨平台工具
  • @types/yargs -yargs的TypeScript定义

许可证

麻省理工学院

作者

OUMERZOUG海瑟姆