Die rasante Entwicklung von KI-gestützten Systemen und ihrer Integration in bestehende IT-Infrastrukturen stellt Entwickler immer wieder vor neue Herausforderungen. Ein relativ neues Protokoll in diesem Bereich sind sogenannte Model Context Protocols (MCP), die als Bindeglied zwischen Menschen, Chatbots und herkömmlicher IT-Infrastruktur dienen. MCPs ermöglichen es, Anwendungen und Bots kontextuell miteinander kommunizieren zu lassen und erweitern so die Einsatzmöglichkeiten von Künstlicher Intelligenz in der Praxis erheblich. Im Zentrum dieses Beitrags steht die praktische Umsetzung eines MCP-Servers in Python für die Verwaltung eines CRM- und Mailinglisten-Systems namens Autorespond. Dieses Projekt zeigt sowohl technische Hürden als auch Lösungen bei der Erarbeitung eines funktionalen MCP-Servers und bietet spannende Einblicke in zeitgemäße Entwicklungsmethoden.
Autorespond ist ein CRM-System, das eine eigene API bietet, allerdings ohne ein standardisiertes Dokumentationsformat. Der erste Schritt zur Implementierung erforderte die Transformation der Dokumentation in ein für KI-Modelle verständliches Format, hier erfolgte die Umwandlung in Markdown durch die KI-Assistenz Claude Pro mittels des fetch MCP. Das Hochladen der Dokumentation in Kontextplattformen wie Context7, welche speziell für API-Dokumentationen für große Sprachmodelle (LLMs) konzipiert sind, erleichterte die Arbeit erheblich, auch wenn zu diesem frühen Zeitpunkt noch eine teilweise Nutzung der Claude-Kontextspeicherung erfolgte. Dieses Vorgehen belegte eindrucksvoll, wie wichtig gemeinsame Kontextdatenquellen sind, um KI-Systeme für komplexe Entwicklungsaufgaben fit zu machen. Der nächste Schritt war die Aufforderung an die KI, einen Pilotserver für das MCP-Protokoll in Python zu schreiben, um Tags im Autorespond-Administrationsbereich abzurufen.
Erste Ergebnisse zeigten, dass die KI zwar unmittelbar zu programmieren begann, dabei jedoch das MCP-Protokoll selbst noch nicht vollständig verstanden hatte, da MCP eine sehr neue Entwicklung ist. Trotz dieser Vorbehalte konnte die KI durch die Nutzung der verfügbaren Dokumentation sinnvollen Code produzieren, der als Basis diente. Dennoch waren manuelle Korrekturen notwendig, etwa um eine wichtige Fehlermeldung bezüglich eines Parameters-Mismatches zu beheben, die auftrat, weil die URI-Parameter des Protokolls nicht exakt mit den Funktionsparametern im Python-Code übereinstimmten. Die Fehlermeldung "Mismatch between URI parameters set() and function parameters {'ctx'}" war ein zentrales Hindernis, das mithilfe der KI behoben wurde, allerdings blieb die exakte Funktionsweise des neuen Python-Paketmanagers uv zunächst unklar. Der Paketmanager uv spielt eine wichtige Rolle bei der Isolierung der Laufzeitumgebung, vergleichbar mit virtuellen Umgebungen (venv) oder Containern wie Docker.
Die Erfahrung zeigte, dass insbesondere bei MCP-Servern, die im Kontext der Desktop-Anwendung Claude laufen, uv zum de-facto Standard wird. Das bedeutet, dass während der Entwicklung eine Umgebung geschaffen werden muss, in der genau definierte Python-Versionen und -Bibliotheken ausgeführt werden, um Kompatibilitätsprobleme zu vermeiden. Die Umstellung auf uv führte zu einer spürbaren Verbesserung der Entwicklungsstabilität, auch wenn ein tiefes Verständnis des Tools weiterhin fehlte. Dabei wurde deutlich, dass der Umgang mit sensitiven Daten wie API-Schlüsseln besser über Umgebungsvariablen statt harter Codierung innerhalb der Quelltexte erfolgen sollte. Das Trennen von Konfigurationsdaten und Code ist eine bewährte Softwareentwicklungspraxis, die sowohl Sicherheit erhöht als auch die Wartbarkeit verbessert.
Die anschließende Nutzung des MCP-Servers in der KI-gestützten Entwicklungsumgebung Claude offenbarte weitere Herausforderungen. Die KI neigte dazu, zusätzliche Suchfunktionen zu halluzinieren, die in der Autorespond-API gar nicht vorhanden sind, was zu Fehlern in der Anwendung führte. Die Lösung bestand darin, die KI auf die rein schreibgeschützten Funktionen der API zu beschränken, wodurch die Zuverlässigkeit verbessert wurde. Probleme beim Verständnis von Parametern im MCP-Kontext traten weiterhin auf, was ebenfalls auf einen Wissensdefizit der KI bezüglich der Protokolldefinitionen hindeutet. Die Erkenntnis, dass das MCP-Protokoll und die dazugehörigen Python-SDKs, wie das fastmcp-Paket, von der KI noch nicht ausreichend verstanden wurden, führt zu einem wichtigen Punkt: Das Einpflegen aktueller Spezifikationen und Bibliotheken in die KI-Kontexte wie Context7 ist entscheidend, um zuverlässigen und wartbaren Code generieren zu können.
Eine Neukonfiguration des Repositories inklusive korrekter Einbindung aller relevanten Bibliotheken und SDKs durch uv erlaubte es, den Entwicklungsprozess mit moderneren Werkzeugen weiterzuverfolgen. Die Praxis zeigte außerdem, dass das manuelle Editieren automatisch generierten Codes mit Vorsicht erfolgen sollte, um die Wartbarkeit und Nachvollziehbarkeit nicht zu gefährden. Stattdessen ist es sinnvoll, Änderungen durch sorgfältige Neubefüllung der Kontexte und kontrollierte Regeneration des Codes vorzunehmen. Dabei helfen Versionskontrollsysteme wie git, um Änderungen transparent zu dokumentieren und im Zweifelsfall wieder rückgängig machen zu können. Fehler wie der immer wieder auftretende Parameter-Mismatch konnten durch wiederholte Korrekturzyklen und Explizitmachung der Umgebungsvariablen-Authentifizierung schließlich behoben werden.
Ein weiterer interessanter Aspekt war der Umgang der KI mit den API-Calls. Einige Funktionen wie beispielsweise Rechnungs- oder Bestellungsabfragen fehlten oder wurden von der KI unterschiedlich kategorisiert, was auf eine teilweise unzureichende Interpretation der API-Dokumentation hindeutet. Denn diese Dokumentation war zwar automatisch aus Codekommentaren erzeugt worden (mithilfe von apidocjs), verfügte aber über keine standardisierten Strukturen, die heutigen OpenAPI-Spezifikationen entsprechen, die vorzugsweise zur automatisierten Generierung von SDKs und MCP-Servern genutzt werden. Eine Verbesserung der Dokumentationsqualität wirkt sich somit direkt auf die Entwicklungsautomatisierung aus. Das Projekt verdeutlicht darüber hinaus eine Besonderheit bei der Nutzung von Claude: Manche API-Endpunkte wurden von der KI als Ressourcen (MPC-Resources) klassifiziert statt als Werkzeuge (Tools).
Diese Unterscheidung ist wichtig, da Ressourcen nur dann vom System genutzt werden, wenn sie explizit vom Anwender hinzugefügt werden. Wird dies versäumt, kann die KI relevante Funktionen in ihrer Argumentation und Verarbeitung nicht berücksichtigen, was zu unerwarteten Limitierungen führt. Die gesamte Entwicklungsarbeit, die inklusive Updates der Entwicklerwerkzeuge rund mehrere Stunden in Anspruch nahm, resultierte in einem umfangreichen MCP-Code mit etwa 450 Zeilen für die Autorespond-Integration. Damit wurde ein sinnvoller Grundstein gelegt, um komplexere Funktionen des CRM-Systems durch den MCP-Server verfügbar zu machen und die Interoperabilität mit modernen LLM-Anwendungen zu gewährleisten. Der nächste Entwicklungsschritt wird darin bestehen, präzisere Anweisungen zur API-Abdeckung an die KI zu geben und auch Testfälle für das MCP-Projekt zu entwickeln.
Tests sind unerlässlich, um die Fehleranfälligkeit zu reduzieren und Änderungen sicher zu integrieren. Für eine sinnvolle Testautomatisierung wäre es ideal, eine Testinstanz des Autorespond-Systems zu verwenden, die das reale Umfeld simuliert und verlässliche Rückmeldungen über Funktionalität liefert. Zusammenfassend zeigt die praktische Erfahrung mit dem Vibe Coding eines MCP-Servers, wie wichtig es ist, moderne Tools sinnvoll zu kombinieren, um effizient und nachhaltig zu programmieren. Die Kombination aus klarer Dokumentationsbasis, dem richtigen Umgang mit Paketmanagern, dem Einbinden aktueller Bibliotheken sowie diszipliniertem Versionsmanagement und Umgebungsvariablenmanagement bildet die Grundlage für erfolgreiche MCP-Implementierungen. Gerade im Zusammenspiel mit generativen KI-Systemen wie Claude erweist sich ein guter Kontext als Schlüssel, um präzise, wartbaren und korrekt funktionierenden Code zu generieren.
Diese Projektphase eröffnete zudem neue Perspektiven für zukünftige Entwicklungen im Bereich der Model Context Protocols. Da MCPs als Brücke zwischen verschiedenen Applikationen dienen, werden in Zukunft weitere CRM-Systeme und IT-Infrastrukturen von solch neuartigen Servern profitieren. Die nahtlose Kommunikation und Kontextverarbeitung von MCPs schaffen neue Möglichkeiten für personalisierte Nutzererlebnisse und automatisierte Abläufe. Entwickler, die sich frühzeitig mit diesen Technologien vertraut machen, haben gute Chancen, sich in einem innovativen und zukunftsweisenden Feld zu positionieren. Letztlich ist der Weg zum fertigen MCP-Server eine interessante Reise durch Softwareentwicklung, KI-Interaktion und modernes Infrastrukturlayout, die sowohl technikaffine Leser als auch Entscheider aus dem IT-Bereich fesseln wird.
Die gewonnenen Erkenntnisse zu uv, Context7, Environment-Management und der Arbeit mit automatisiert generiertem Code bieten wertvolle Impulse, um das eigene Entwicklungsprojekt erfolgreich umzusetzen.