Beliebte Suchanfragen
//

MCP-Server bauen mit Spring AI

17.5.2026 | 4 Minuten Lesezeit

Einleitung

Das Model Context Protocol (MCP) ist ein offener Standard, der definiert, wie KI-Modelle mit externen Tools, Diensten und Datenquellen kommunizieren. Es ersetzt individuelle Integrationen durch ein einziges, klar definiertes JSON-RPC-2.0-Protokoll und macht es einfach, jeden MCP-kompatiblen KI-Client mit jedem MCP-Server zu verbinden.

Mit Spring AI 2.0 ist das Erstellen eines MCP-Servers so einfach wie das Annotieren einer Spring-Bean-Methode — kein manuelles Schreiben von Schemas, kein Boilerplate-Code für den Transport. Dieser Artikel zeigt ein vollständiges Beispiel: eine Spring Boot 4-Anwendung, die MCP-Tools und -Resources bereitstellt, sowie einen begleitenden Client, der diese interaktiv über die Kommandozeile aufruft.

Der vollständige Quellcode ist auf GitHub verfügbar.

MCP-Dienste

Ein MCP-Server stellt drei Arten von Primitiven bereit:

PrimitiveBeschreibung
ToolsAufrufbare Funktionen mit strukturierten Parametern und Rückgabewerten
ResourcesSchreibgeschützte, URI-adressierbare Inhalte (Dateien, Datensätze, Live-Daten)
PromptsWiederverwendbare Prompt-Vorlagen mit benannten Parametern

Dieser Artikel behandelt Tools und Resources. Als Transport wird Streamable HTTP verwendet: ein einzelner POST /mcp-Endpunkt, der JSON-RPC spricht, was das Testen mit curl oder einem Tool wie dem MCP Inspector leicht macht.

Projektaufbau

Das Projekt ist ein Multi-Modul-Maven-Build mit zwei Modulen:

ai/
├── pom.xml                  ← Parent POM
├── mcp-server/              ← Spring Boot App, Port 8080
└── mcp-client/              ← Spring Boot App, interaktive REPL

Parent POM (relevante Auszüge):

Der MCP-Server

Das Server-Modul benötigt folgenden Starter:

Transport konfigurieren

protocol: STREAMABLE wählt den Streamable-HTTP-Transport aus. Spring AI richtet den POST /mcp-Endpunkt automatisch ein — kein Controller-Code nötig.

Tools bereitstellen mit @McpTool

Tools sind gewöhnliche Spring Beans. Eine Methode wird mit @McpTool annotiert und Spring AI generiert das JSON-Schema für die Parameter automatisch:

Beim Start protokolliert Spring AI Registered tools: 1 — mehr ist nicht nötig.

Resources bereitstellen mit @McpResource

Resources werden über eine URI identifiziert und geben ihren Inhalt als String zurück. Die Annotation funktioniert genauso wie @McpTool:

Das uri-Attribut ist der Protokoll-Bezeichner, der Clients in resources/list zurückgegeben wird. Das Schema (file:///, db:// usw.) ist frei wählbar — es hat keine technische Bedeutung für den Dateizugriff; ClassPathResource übernimmt das eigentliche Lesen.

Testen mit dem MCP Inspector

Der MCP Inspector ist eine einfache Möglichkeit, unseren MCP-Server auszuprobieren‚ ohne eigenen Client-Code schreiben zu müssen:

Als Transporttyp Streamable HTTP auswählen. Die Oberfläche zeigt alle registrierten Tools und Resources an und ermöglicht deren direkten Aufruf im Browser.

Einen eigenen MCP-Client bauen

Spring AI macht es auch sehr leicht, eigene MCP-Clients zu entwickeln. Das Client-Modul benötigt folgende Abhängigkeit:

Client-Konfiguration

Den Server aufrufen

Spring AI konfiguriert automatisch eine List<McpSyncClient>-Bean. Diese wird injiziert und der erste (und einzige) Client verwendet:

Interaktive REPL

Ein CommandLineRunner kapselt eine einfache Scanner-Schleife, sodass der Client ohne zusätzliches Framework als Kommandozeilen-Tool nutzbar ist:

mcp-client> list-tools
  createPolicyNumber        Creates a new policy number

mcp-client> create-policy-number HR
HR20260511103235X0WJT

mcp-client> list-resources
  file:///demo.txt                    Demo text resource loaded from the classpath

Agent Smith — jetzt sind Sie dran

In Zeiten, in denen immer mehr Agenten in Ihrer IT-Landschaft auftauchen, wird MCP das Protokoll sein, um diese in Ihre bestehenden Anwendungen zu integrieren. Wenn ein wesentlicher Teil Ihrer Anwendungen das Spring-(Boot-)Ökosystem nutzt, ist Spring AI das Mittel der Wahl.

Aus architektonischer Sicht gibt es mindestens zwei grundlegende Muster, um MCP-Fähigkeit einzuführen. Entweder erstellt man eine dünne Schicht in bestehenden Business-Services, um zusätzliche MCP-Endpunkte bereitzustellen ...

... oder man fügt eine separate Adapter-/Gateway-Anwendung dazwischen ein:

Weiterführende Lektüre

Falls Sie sich allgemein für MCP interessieren, sind vielleicht diese Blogbeiträge einen Blick wert:

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//
Jetzt für unseren Newsletter anmelden

Alles Wissenswerte auf einen Klick:
Unser Newsletter bietet dir die Möglichkeit, dich ohne großen Aufwand über die aktuellen Themen bei codecentric zu informieren.