keycloak-mcp-server

Changelog v0.3.0 - SSE Migration

Release Date

November 20, 2025

Major Changes

SSE Transport (Breaking Change)

Migrated from stdin/stdout communication to SSE (Server-Sent Events) HTTP-based transport.

Impact: This is a breaking change for client configurations. Clients need to be updated to use HTTP/SSE instead of process-based stdin/stdout.

What Changed

1. Dependency Update

2. Quarkus Version Update

3. Configuration Changes

New application.properties settings:

# HTTP Server
quarkus.http.port=8080
quarkus.http.host=0.0.0.0

# CORS (for browser access)
quarkus.http.cors=true
quarkus.http.cors.origins=*

# MCP SSE Endpoint
quarkus.mcp.server.sse.path=/mcp/sse
quarkus.mcp.server.sse.enabled=true

4. Server Endpoints

New HTTP endpoints available:

What Stayed the Same

New Features

HTTP-Based Communication

Multiple Client Support

Observability

Container-Friendly

Migration Guide

See sse-migration-guide.md for complete migration instructions.

Quick Start

  1. Start the server:
    ./mvnw quarkus:dev
    
  2. Update client config (Cursor example):
    {
     "mcpServers": {
     "keycloak-mcp-server": {
     "transport": "sse",
     "url": "http://localhost:8080/mcp/sse",
     "env": {
     "KC_URL": "http://localhost:8180",
     "KC_USER": "admin",
     "KC_PASSWORD": "admin"
     }
     }
     }
    }
    
  3. Test the connection:
    curl http://localhost:8080/q/health
    

Documentation Updates

New Files

Updated Files

Breaking Changes

Client Configuration Required

Before (v0.2.0 - stdin):

{
 "mcpServers": {
 "keycloak-mcp-server": {
 "command": "java",
 "args": ["-jar", "path/to/keycloak-mcp-server.jar"],
 "env": {...}
 }
 }
}

After (v0.3.0 - SSE):

{
 "mcpServers": {
 "keycloak-mcp-server": {
 "transport": "sse",
 "url": "http://localhost:8080/mcp/sse",
 "env": {...}
 }
 }
}

Server Must Be Started Separately

With SSE, the server runs independently as an HTTP service:

Upgrade Path

For Developers

  1. Update to v0.3.0
  2. Start server: ./mvnw quarkus:dev
  3. Update client configs to use SSE
  4. Test operations

For Production

  1. Build new version: ./mvnw package
  2. Update deployment configs (Docker/K8s)
  3. Configure CORS for production domains
  4. Consider adding authentication
  5. Deploy and update client configurations

Advantages Over stdin

Feature stdin (v0.2.0) SSE (v0.3.0)
Transport Process-based HTTP-based
Multiple Clients No Yes
Browser Access No Yes
Network Distribution No Yes
Load Balancing No Yes
Health Checks No Yes
Metrics Limited Full
Debugging Difficult Easy
Container-Friendly Moderate Excellent

Known Issues

None at this time.

Future Enhancements

Planned for future releases:

Contributors

Thank you to all contributors who helped with this release!

References


Full Changelog: v0.2.0…v0.3.0