Keycloak MCP Server について
Keycloak MCP Server は、ID およびアクセス管理のための Keycloak 管理機能をプログラムから利用できるようにする MCP サーバーです。AI アシスタントや開発ツールから Keycloak を操作したいチームを想定しています。ユーザー自身の JWT トークンで認証を行い、ネイティブイメージのビルドにも対応しています。
主な機能
- 01ユーザー JWT トークンによる認証
- 02ユーザー、レルム、クライアント、ロール、グループの管理
- 03HTTP 通信向け SSE トランスポート
- 04Quay.io で公開されるコンテナイメージ
- 05GraalVM ネイティブイメージのサポート
活用シーン
- 01AI アシスタントからの Keycloak ユーザーとロールの管理
- 02OpenShift や Kubernetes への管理サービスのデプロイ
- 03開発ツールからの Keycloak 管理操作の設定
MCP 対応
本プロジェクトは Keycloak の管理機能を MCP クライアントに公開する MCP サーバーであり、クライアントは Bearer トークンを付けて SSE 経由で接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Keycloak 用 MCP サーバー
Keycloak MCP サーバー
Keycloak の管理機能にプログラムからアクセスできる、Model Context Protocol(MCP)サーバーです。
概要
Keycloak MCP サーバーを使用すると、AI アシスタントや開発ツールから Model Context Protocol を介して 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 ディレクトリにあります。
- はじめに - セットアップ手順
- 認証ガイド - ユーザー認証
- OpenShift デプロイ - 本番環境へのデプロイ
- 開発者ガイド - 開発ガイド
- ドキュメント一覧 - 目次全体
ドキュメントのビルド
このプロジェクトではドキュメントに 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 連携のための Model Context Protocol
- Jib - Docker デーモンを使わないコンテナ化
- GraalVM - ネイティブイメージのコンパイルをサポート
ライセンス
MIT License - 詳細については LICENSE ファイルを参照してください。
コントリビューション
コントリビューションを歓迎します。詳細についてはコントリビューターガイドを参照してください。
サポート
- ドキュメント:docs/index.md
- イシュー:GitHub Issues
- コミュニティ:Keycloak Discourse
メンテナー: Shaaf Syed
リポジトリ: https://github.com/sshaaf/keycloak-mcp-server
コンテナレジストリ: https://quay.io/repository/sshaaf/keycloak-mcp-server
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。