Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Manage Keycloak users, groups, roles and realms through the Keycloak Admin REST API.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
KEYCLOAK_URL, KEYCLOAK_AUTH_REALM, KEYCLOAK_CLIENT_ID, KEYCLOAK_CLIENT_SECRET, KEYCLOAK_USERNAME, KEYCLOAK_PASSWORD, KEYCLOAK_GRANT_TYPE, KEYCLOAK_MCP_READ_ONLY, KEYCLOAK_MCP_REALMS, KEYCLOAK_MCP_ALLOW_MASTER_WRITE, KEYCLOAK_MCP_TOOLSETS, KEYCLOAK_MCP_REQUIRE_CONFIRMATION, KEYCLOAK_MCP_TIMEOUT_MS, KEYCLOAK_MCP_LOG_LEVEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"keycloak-model-context-protocol": {
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_URL": "your-value",
"KEYCLOAK_AUTH_REALM": "your-value",
"KEYCLOAK_CLIENT_ID": "your-value",
"KEYCLOAK_CLIENT_SECRET": "your-value",
"KEYCLOAK_USERNAME": "your-value",
"KEYCLOAK_PASSWORD": "your-value",
"KEYCLOAK_GRANT_TYPE": "your-value",
"KEYCLOAK_MCP_READ_ONLY": "your-value",
"KEYCLOAK_MCP_REALMS": "your-value",
"KEYCLOAK_MCP_ALLOW_MASTER_WRITE": "your-value",
"KEYCLOAK_MCP_TOOLSETS": "your-value",
"KEYCLOAK_MCP_REQUIRE_CONFIRMATION": "your-value",
"KEYCLOAK_MCP_TIMEOUT_MS": "your-value",
"KEYCLOAK_MCP_LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add keycloak-model-context-protocol --env KEYCLOAK_URL=your-value --env KEYCLOAK_AUTH_REALM=your-value --env KEYCLOAK_CLIENT_ID=your-value --env KEYCLOAK_CLIENT_SECRET=your-value --env KEYCLOAK_USERNAME=your-value --env KEYCLOAK_PASSWORD=your-value --env KEYCLOAK_GRANT_TYPE=your-value --env KEYCLOAK_MCP_READ_ONLY=your-value --env KEYCLOAK_MCP_REALMS=your-value --env KEYCLOAK_MCP_ALLOW_MASTER_WRITE=your-value --env KEYCLOAK_MCP_TOOLSETS=your-value --env KEYCLOAK_MCP_REQUIRE_CONFIRMATION=your-value --env KEYCLOAK_MCP_TIMEOUT_MS=your-value --env KEYCLOAK_MCP_LOG_LEVEL=your-value -- npx -y keycloak-model-context-protocol動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"keycloak-model-context-protocol": {
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_URL": "your-value",
"KEYCLOAK_AUTH_REALM": "your-value",
"KEYCLOAK_CLIENT_ID": "your-value",
"KEYCLOAK_CLIENT_SECRET": "your-value",
"KEYCLOAK_USERNAME": "your-value",
"KEYCLOAK_PASSWORD": "your-value",
"KEYCLOAK_GRANT_TYPE": "your-value",
"KEYCLOAK_MCP_READ_ONLY": "your-value",
"KEYCLOAK_MCP_REALMS": "your-value",
"KEYCLOAK_MCP_ALLOW_MASTER_WRITE": "your-value",
"KEYCLOAK_MCP_TOOLSETS": "your-value",
"KEYCLOAK_MCP_REQUIRE_CONFIRMATION": "your-value",
"KEYCLOAK_MCP_TIMEOUT_MS": "your-value",
"KEYCLOAK_MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"keycloak-model-context-protocol": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_URL": "your-value",
"KEYCLOAK_AUTH_REALM": "your-value",
"KEYCLOAK_CLIENT_ID": "your-value",
"KEYCLOAK_CLIENT_SECRET": "your-value",
"KEYCLOAK_USERNAME": "your-value",
"KEYCLOAK_PASSWORD": "your-value",
"KEYCLOAK_GRANT_TYPE": "your-value",
"KEYCLOAK_MCP_READ_ONLY": "your-value",
"KEYCLOAK_MCP_REALMS": "your-value",
"KEYCLOAK_MCP_ALLOW_MASTER_WRITE": "your-value",
"KEYCLOAK_MCP_TOOLSETS": "your-value",
"KEYCLOAK_MCP_REQUIRE_CONFIRMATION": "your-value",
"KEYCLOAK_MCP_TIMEOUT_MS": "your-value",
"KEYCLOAK_MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
KEYCLOAK_AUTH_REALM envKEYCLOAK_CLIENT_ID envKEYCLOAK_USERNAME envKEYCLOAK_GRANT_TYPE envKEYCLOAK_MCP_READ_ONLY envKEYCLOAK_MCP_REALMS envKEYCLOAK_MCP_ALLOW_MASTER_WRITE envKEYCLOAK_MCP_TOOLSETS envKEYCLOAK_MCP_REQUIRE_CONFIRMATION envKEYCLOAK_MCP_TIMEOUT_MS envKEYCLOAK_MCP_LOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント ChristophEnglisch で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:KEYCLOAK_URL, KEYCLOAK_CLIENT_SECRET, KEYCLOAK_PASSWORD
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.0)がレジストリに届いたのは12 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Funooy Krillion Reference
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Funooy trivia references in six languages, with rules and fixed scoring. No daily spoilers.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A Model Context Protocol (MCP) server for Keycloak administration. It lets an AI assistant such as Claude manage users, groups, roles and sessions, and inspect clients, events and the security posture of your realms, through the Keycloak Admin REST API, with least-privilege authentication and guardrails around every write.
[!WARNING]
This server acts with the permissions of the Keycloak account you give it. Use a dedicated service-account client with only the roles you need, never the bootstrap admin. Every tool that changes data asks for confirmation by default, and a read-only mode is available. See Security.
core, groups, roles) is small; everything else is opt-in.client_credentials with a service account is the recommended grant; the password grant stays available. No credential defaults, so a missing setting fails fast.master realm, and a preview-then-confirm: true flow for every change. Grants of administrative rights are detected through composite roles and parent groups.Your MCP client starts the server as a local child process and talks to it over stdio. Every tool call passes the guards, then goes through a single gateway that owns the Keycloak login and caches the access token.
Every tool that changes data is _destructive_ (it deletes or revokes) or _sensitive_ (it changes identity, credentials, rights or protection mechanisms, for example user_update or user_role_assign). Called without confirm: true, such a tool only returns a preview of what would happen and changes nothing. After you approve, the assistant repeats the call with confirm: true.
The model can set confirm: true itself, even on its first call. The server then still computes the preview and returns it with the result, but only your client's approval prompt proves that a human agreed. All these tools carry destructiveHint, so clients that ask before destructive calls ask here too.
Requirements: Node.js 22 or newer, a Keycloak server your machine can reach (tested with Keycloak 24.0 to 26.8), and an MCP client.
In the realm you want to administer (here demo):
mcp-admin with _Client authentication_ on and only _Service accounts roles_ enabled (turn off _Standard flow_ and _Direct access grants_).realm-management. For a first read-only trial: view-users, query-users, query-groups, view-realm.Step-by-step instructions with Admin Console click paths, kcadm.sh commands and a local Docker Keycloak: docs/getting-started.md.
Example for Claude Code (other clients: docs/clients.md):
claude mcp add --transport stdio \
--env KEYCLOAK_URL=https://keycloak.example.com \ --env KEYCLOAK_AUTH_REALM=demo \ --env KEYCLOAK_CLIENT_ID=mcp-admin \ --env KEYCLOAK_CLIENT_SECRET="$KEYCLOAK_CLIENT_SECRET" \ keycloak -- npx -y keycloak-model-context-protocol@1
Or as JSON (Claude Desktop, claude_desktop_config.json):
{
"mcpServers": { "keycloak": { "command": "npx", "args": ["-y", "keycloak-model-context-protocol@1"], "env": { "KEYCLOAK_URL": "https://keycloak.example.com", "KEYCLOAK_AUTH_REALM": "demo", "KEYCLOAK_CLIENT_ID": "mcp-admin", "KEYCLOAK_CLIENT_SECRET": " " } } } }
_List the realms you can access, then show me the first 10 users of realm demo._
If you get an answer, you are done. If not, see docs/troubleshooting.md.
All settings are environment variables. Only KEYCLOAK_URL and one set of credentials are required.
| Variable | Default | Purpose |
|---|---|---|
KEYCLOAK_URL | (required) | Base URL of the Keycloak server |
KEYCLOAK_AUTH_REALM | master | Realm where the login account or client lives |
KEYCLOAK_CLIENT_ID / KEYCLOAK_CLIENT_SECRET | none | client_credentials login (recommended) |
KEYCLOAK_USERNAME / KEYCLOAK_PASSWORD | none | Password grant login (client defaults to admin-cli) |
KEYCLOAK_GRANT_TYPE | auto | client_credentials or password; detected from what you set |
KEYCLOAK_MCP_TOOLSETS | core,groups,roles | Enabled toolsets, or all |
KEYCLOAK_MCP_READ_ONLY | false | Register read-only tools only |
KEYCLOAK_MCP_REALMS | all | Comma-separated allowlist of target realms |
KEYCLOAK_MCP_ALLOW_MASTER_WRITE | false | Allow write tools in the master realm |
KEYCLOAK_MCP_REQUIRE_CONFIRMATION | true | Destructive and sensitive tools need confirm: true |
KEYCLOAK_MCP_TIMEOUT_MS | 30000 | HTTP timeout for Keycloak requests |
KEYCLOAK_MCP_LOG_LEVEL | info | debug, info, warn or error (stderr) |
Full reference with examples, validation rules and the tool-to-role matrix: docs/configuration.md.
Tools are named _ . Only the default toolsets are enabled unless you set KEYCLOAK_MCP_TOOLSETS. In read-only mode only tools of kind _read_ are registered.
| Toolset | Default | Tools |
|---|---|---|
core | yes | realm_list, realm_get, user_search, user_get, user_create (sensitive), user_update (sensitive), user_delete (destructive), user_send_actions_email (sensitive) |
groups | yes | group_list, group_members_list, user_group_add (sensitive), user_group_remove (destructive) |
roles | yes | role_list, user_roles_list, user_role_assign (sensitive), user_role_revoke (destructive) |
clients | no | client_list, client_get |
sessions | no | user_sessions_list, user_logout (destructive) |
events | no | event_list, admin_event_list |
security | no | user_brute_force_status, user_brute_force_unlock (sensitive) |
Details for every tool (parameters, outputs, required roles): docs/tools-reference.md.
Prompts are guided workflows built on the tools. They appear in your client's prompt picker (in Claude Code as slash commands). The realm argument autocompletes.
| Prompt | What it does |
|---|---|
onboard_employee | Create a user, add groups and roles, send the welcome e-mail |
offboard_employee | Review, end sessions and disable a departing employee's account (does not delete) |
audit_realm_security | Read-only security review with prioritized findings |
investigate_failed_logins | Analyze failed logins and lockout status without changing anything |
Resources are read-only JSON documents, filtered by the same realm allowlist:
| URI | Content |
|---|---|
keycloak://realms | Names of accessible realms |
keycloak://realms/{realm} | Safe subset of the realm settings |
keycloak://realms/{realm}/security-summary | Brute-force, password policy, SSL, OTP, event flags, client exposure counts (no secrets) |
keycloak://realms/{realm}/users/{userId} | One user's basic fields (no attributes, no credentials) |
realm-management roles you need. A role matrix is in docs/configuration.md.KEYCLOAK_MCP_REQUIRE_CONFIRMATION=true): destructive and sensitive tools show a preview firs冒頭だけを表示しています。続きはリポジトリで読めます