mcp-keycloak
mcp-keycloak
Keycloak용 Model Context Protocol 서버입니다. MCP를 지원하는 클라이언트(Claude Desktop, Claude Code 등)가 Keycloak의 realm, 사용자, 클라이언트, 역할, 그룹을 조회하고 관리할 수 있게 하며, 보안은 전적으로 플래그에 의해 제어됩니다.
설계 목표는 안전이 기본값이라는 것입니다. 읽기 전용으로 시작하고, Realm 허용 목록으로 범위를 제한하며, 민감한 Realm은 변경으로부터 보호하고, 파괴적인 작업은 명시적인 옵트인을 거쳐야만 허용됩니다.
기능
멀티 Realm — 모든 도구는
realm인자를 받습니다. 허용 목록으로 범위를 제한할 수 있습니다.접근 모드 —
read-only→read-write→admin순서로 계층화되어, 각 모드는 현재 수준보다 높은 도구를 절대 노출하지 않습니다.보안 플래그 — Realm 허용 목록, 보호되는 Realm, 삭제 통제, dry-run, JSON 감사 로깅(아래 참조)
두 가지 인증 방식 — 기밀 클라이언트 서비스 계정(권장) 또는 관리자 사용자 이름/비밀번호.
무거운 의존성 없음 — 가벼운 fetch 기반 Admin REST 클라이언트와 MCP SDK 및 zod만 사용합니다.
Related MCP server: mcp-keycloak-admin
보안 모델
제어 항목 | 플래그 | 기본값 | 효과 |
서버가 어떤 작업을 수행할 수 있는가? |
|
|
|
어떤 Realm이 작업 대상인가? |
| (전체) | 쉼표로 구분됩니다. 이 값이 설정되면 목록에 없는 Realm에 대한 모든 작업이 거부됩니다. |
어떤 Realm이 영구적으로 읽기 전용인가? |
|
| 보호된 Realm은 모드와 관계없이 읽기만 가능하고 변경 또는 삭제할 수 없습니다. |
삭제를 허용할 것인가? |
|
|
|
Keycloak에 실작업 없이 미리 보기 |
|
| 쓰기/관리 도구는 의도를 검증하고 로그로 남긴 뒤 Keycloak을 호출하지 않고 반환합니다. |
감사 추적 |
|
| 통제되는 작업마다 JSON 한 줄을 stderr에 출력합니다( |
이 계층들은 서로 독립적입니다. 예를 들어 KEYCLOAK_ALLOW_DELETE=false인 admin 모드는 사용자를 생성하고 업데이트할 수 있지만 삭제할 수는 없습니다.
도구
읽기 (read-only+): list_realms, get_realm, list_users, get_user, count_users, list_clients, list_realm_roles, list_groups
쓰기 (read-write+): create_user, update_user, reset_password, logout_user
관리자 (admin): delete_user
MCP 클라이언트와 함께 사용하기
Claude Code, Claude Desktop, Cursor, OpenAI Codex CLI, Windsurf, VS Code(Copilot) 등 모든 MCP 클라이언트에서 동작합니다. 클라이언트별 설정은 docs/CLIENTS.md 를 참조하세요.
설치
npm install
npm run build설정
.env.example을 복사하고 값을 채우거나, MCP 클라이언트 설정에 변수를 직접 넣으세요. 필요한 realm-management 역할을 가진 기밀 클라이언트가 권장되는 자격 증명입니다.
Claude Desktop / Claude Code에서 실행하기
claude_desktop_config.json 또는 claude mcp add 명령으로 MCP 클라이언트 설정에 추가하세요:
{
"mcpServers": {
"keycloak": {
"command": "node",
"args": ["/absolute/path/to/mcp-keycloak/dist/index.js"],
"env": {
"KEYCLOAK_URL": "https://keycloak.example.com",
"KEYCLOAK_CLIENT_ID": "admin-cli",
"KEYCLOAK_CLIENT_SECRET": "your-secret",
"KEYCLOAK_MODE": "read-only",
"KEYCLOAK_REALM_ALLOWLIST": "app,customers"
}
}
}
}모델이 변경 작업을 실제로 수행하게 하려는 경우에만 KEYCLOAK_MODE를 read-write로 올리고(삭제 작업은 admin + KEYCLOAK_ALLOW_DELETE=true) 설정하세요.
개발
npm run dev # watch mode
npm test # unit tests for the security policy
npm run typecheck배포
이 서버는 공식 MCP 레지스트리용으로 server.json을, npm 소유권 인증용으로 mcpName을 제공합니다. npm 배포와 MCP 레지스트리, Smithery, Glama, Cursor, PulseMCP 등록 방법은 PUBLISHING.md 를 참조하세요.
라이선스
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server for Keycloak Admin REST API, enabling user, group, event, and security management through service account authentication.30MIT
- AlicenseAqualityAmaintenanceEnables administrators to manage Keycloak realms, users, roles, clients, groups, and more through its Admin REST API, with safe-by-default configuration and destructive operation confirmation.56421MIT
- AlicenseAqualityCmaintenanceAn MCP server that lets an AI assistant inspect and modify Keycloak realm, client, and protocol-mapper configuration across multiple Keycloak hosts.787MIT
- AlicenseNot gradedqualityBmaintenanceEnables administration of Keycloak identity and access management through MCP, allowing management of realms, clients, users, roles, groups, identity providers, and sessions from any MCP client.41Apache 2.0
Related MCP Connectors
Managed Keycloak from any MCP client: clusters, realms, apps, SSO, users, domains, audit events.
Remote MCP for A2A caller identity, scope policy, verdict receipts, and audit history.
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dockndevai/mcp-keycloak'
If you have feedback or need assistance with the MCP directory API, please join our Discord server