KeelFramework

Keel Framework / Keel/MCP / Java

Keel Architecture

The Keel Architecture defines the technical structure on which the MCP Servers generated from the archetype are built. It is organized in layers and components, separating the functional capabilities from the cross-cutting technical capabilities provided by Keel.

Overview

The Keel architecture combines a Reference Architecture, reusable functional and cross-cutting capabilities, and build & scaffolding mechanisms to standardize the development of new MCP servers.

The following diagram shows the conceptual view of Keel, its relationship with Spring AI as the framework for implementing MCP and with MCP (Model Context Protocol) as the communication protocol, as well as the role of Maven in the build and scaffolding of projects.

Keel Ecosystem

Keel in the Spring AI MCP ecosystem

A Keel-based MCP Server is built on the Java / Spring Boot technology stack, using Spring AI as the framework for implementing the MCP capabilities.

Spring AI

Framework modules

The Keel framework is made up of a set of independent modules, organized by architectural responsibility. Each module encapsulates a specific technical capability and can evolve independently, keeping its contracts and dependencies clearly defined.

The modules are organized mainly in the following areas:

  • Common — common technical capabilities and components.
  • Adapters — integrations with external services and components.
  • Transport — capabilities related to security, session/authentication, the transport protocol and client ↔ MCP Server communication.
  • Observability — capabilities related to observability and logging.

This organization keeps a clear separation of responsibilities, reduces coupling between components and makes it easier to evolve, reuse and compose the capabilities provided by Keel.

The framework also relies on third-party dependencies, such as Spring AI, Spring Boot and Caffeine, whose version management and compatibility are centralized through the project's Maven BOM (Bill of Materials).

All modules share the Group ID io.keelframework.mcp and the version defined at project level, ensuring consistent dependency management across the stack.

Modules
Module Artifact Responsibility / Purpose
🏗️ Parent keel-mcp-java Centralized management of the framework's dependencies, versions, plugins and common properties.
🔐 Common keel-common-jwt JWT decoding, signature verification and claim extraction.
🔑 Adapter keel-adapter-auth-idp Integration with identity providers via OIDC, including Red Hat SSO / Keycloak, JWKS and token introspection.
⚡ Adapter keel-adapter-cache-caffeine Local cache abstraction based on Caffeine, with TTL and maximum size configuration.
🌐 Adapter keel-adapter-rest-client Standardized, preconfigured HTTP client for consuming external REST APIs from MCP Tools.
🛡️ Transport keel-transport-auth Servlet filter responsible for enforcing authentication on the MCP endpoints.
🔄 Transport keel-transport-session Transport session context management, including authentication and Mcp-Session-Id, with creation, validation and expiration mechanisms.
📡 Transport keel-transport-streamable Implementation of the MCP transport based on Streamable HTTP, providing the communication endpoint between MCP clients and servers.
🌍 Transport keel-transport-cors Configuration and management of CORS for browser-based MCP clients.
📊 Observability keel-observability-logging Generation and standardization of structured logs to ease monitoring and traceability of the MCP server.

Maven structure of the framework

The Maven structure of Keel organizes the framework components in independent modules, grouped by architectural responsibility. The project starts from a parent POM / BOM that centralizes the management of dependencies, versions, plugins and common properties, while the modules are grouped in four main areas: Common, Adapters, Transport and Observability.


keel-mcp-java/
│
├── keel-mcp-common/
│   ├── keel-common-jwt/
│   └── keel-common-exceptions/
│
├── keel-mcp-adapters/
│   ├── keel-adapter-auth-idp/
│   ├── keel-adapter-cache-caffeine/
│   └── keel-adapter-rest-client/
│
├── keel-mcp-archetype/
│
├── keel-mcp-archetype-installer/
│
├── keel-mcp-transport/
│   ├── keel-transport-auth/
│   ├── keel-transport-cors/
│   ├── keel-transport-session/
│   └── keel-transport-streamable-mvc/
│
└── keel-mcp-observability/
    └── keel-observability-logging/

Framework requirements

To use Keel, generate new MCP Servers and build the framework modules, the development environment must meet the following requirements and reference versions.

The requirements below correspond to the base technologies on which Keel is built. The framework-specific dependencies, including Spring Boot, Spring AI and their transitive dependencies, are managed and versioned centrally through the project's Maven BOM.

🏷️ Category 🔧 Requirement 📌 Version / Detail
☕ JDK Java Development Kit JDK 25
🌱 Framework Spring Boot 4.0.6
🔌 MCP Spring AI MCP Server spring-ai-mcp-server-webmvc 2.0.0-M6
📦 Build Maven Maven 3.9+

Technology stack

The Keel architecture is built on a modern technology stack based on Java 25, Spring Boot 4 and Spring AI, using MCP (Model Context Protocol) as the communication standard between MCP clients and servers.

Spring AI provides the abstractions needed to implement the MCP capabilities natively through annotations such as @Tool, @Resource and @Prompt, while Keel contributes the architecture, the reusable modules and the cross-cutting capabilities needed to standardize the construction of MCP Servers.

The following table summarizes the main technologies and components that make up the Keel stack:

Layer Technology / Component Responsibility
☕ Runtime JDK 25 · Virtual Threads Runtime and concurrency model for server operations and Streamable HTTP communication.
🌱 Framework Spring Framework 7.x · Spring Boot 4.0.6 IoC/DI, autoconfiguration, configuration and application lifecycle.
🤖 MCP Framework Spring AI 2.0.0-M6 Provides the abstractions to implement and register Tools, Resources and Prompts.
🔌 Protocol Model Context Protocol (MCP) Interaction standard between MCP clients and servers.
🌐 Transport Streamable HTTP HTTP transport mechanism used for communication between MCP clients and servers.
🔐 Security Spring Security · JWT · OIDC / JWKS Request authentication and authorization through JWT tokens and identity validation with OIDC / JWKS.
🔄 Session MCP Session Management Management of the technical context associated with MCP transport sessions.
⚡ Caching Caffeine Local cache to reduce repeated access to external systems and services.
📊 Observability JSON Structured Logging Standardization of TECHNICAL, FUNCTIONAL and SECURITY events.
🏗️ Scaffolding Maven Archetype Generation of MCP projects based on the Keel architecture and modules.