Podcast

MCP – Model Context Protocol

Der Universalstecker für KI-Modelle

Moderne Foundation Models haben kein Fähigkeitsproblem, sondern ein Integrationsproblem. Das von Anthropic entwickelte Model Context Protocol (MCP) bietet nun eine standardisierte Lösung, um KI-Modelle mit externen Diensten und Daten zu verbinden. Ole und Robert erklären, warum dieser "USB-C-Stecker für KI" innerhalb kürzester Zeit die Unterstützung von Community und konkurrierenden AI Labs gewonnen hat. Sie besprechen konkrete Beispiele - von der Integration eines Legacy-Systems per Computer-Use bis zur 3D-Modellierung mit natürlicher Sprache. Eine Sonderfolge zum explosionsartig wachsenden Standard.
Listen to other episodes

Shownotes & Links

Transkript

show / hide transcript

Robert: Hi, hallo, herzlich willkommen. Der Ole und ich sind’s wieder. Ich bin Robert. Hallo Ole, grüß dich.

Ole: Hallo Robert.

Robert: Wir sprechen heute völlig überraschend mal wieder zu was ganz heißem und aktuellem. Wir mit unseren Notfallfolgen, die wir hier immer reingrätschen. Es ist nämlich mal wieder was passiert in der KI Welt, wie jede Woche oder jede Woche zehnmal. Es gibt was Neues, das ist eigentlich streng genommen schon seit dem vergangenen November gibt, nämlich etwas, das sich MCP nennt, das Model Context Protocol. Was ist das? Das hat Anthropic im November veröffentlicht, die erste Version dieser Spec, dieser Spezifikation und dann ist über den Winter eigentlich gar nicht so viel passiert und jetzt auf einmal reden gefühlt alle davon, einschließlich uns. Irgendwann gewinnt sowas Tragluft, die Tragluft ist jetzt voll da. Worüber reden wir hier Ole? Was ist das? Eli5 das doch mal für mich.

Ole: Genau, also es geht gerade extrem ab. Ich glaube, es ist das GitHub Projekt nicht mit den meisten Sternen, aber das zumindest am steilsten wachsende GitHub Projekt ever. Jeder implementiert gerade MCP Server, sei es von der Tagesschau über große Firmen und worum es eigentlich geht, wie der Name schon sagt, es geht um Modelle, in dem Fall AI und es geht um den Kontext. Und Context ist King. Ich glaube, das haben wir in den letzten Jahr mehr als einmal erzählt, wahrscheinlich auch hundertmal. Da sind wir die kaputte Schallplatte, aber eine AI ohne Kontext ist halt wenig wert. Also klar, es hat seinen eigenen Wissenswertschatz, aber den richtigen Mehrwert für den Kunden kommt durch den Kontext und sie haben sich jetzt hingesetzt und sie haben ein Protokoll gebaut, dass der AI Kontexte zur Verfügung stellt und zwar weniger schmerzhaft als es in der Zukunft äh ist es in der Vergangenheit halt war. Das ist glaube ich ganz wichtig.

Robert: Okay. Das heißt, ich habe es jetzt mehrfach gelesen, diese Metapher stammt nicht von uns. Aber ich habe ganz oft gehört und gelesen, dass es sowas wie USB-C für KI Modelle ist. Jetzt kann man darauf natürlich rumreiten, wollen wir gar nicht genau, ob das zu 100% die richtige technische Metapher ist, wir finden vielleicht andere. Am Ende ist es ein Steckerformat, dass die Integration von externen Diensten, Datenquellen, Tools, was auch immer, in ein Foundation Model bzw. ein Large Language Model beschreibt. Also der Hersteller Anthropic sagt selber im in dem Blogpost der die Veröffentlichung der Spec ankündigt. Die Foundation Models können so gut werden, wie sie wollen. Sie sind letzten Endes zum Großteil dadurch zurückgehalten und limitiert, dass sie nicht genug Daten rankriegen. Also, das ist das, was du mit Kontext beschrieben hast. Sie müssen eigentlich, sie brauchen Hände und Füße für die echte Welt. Sie müssen mit der echten Welt interagieren können und das in beide Richtungen, nicht nur reinsaugen, sondern auch rausgeben und vielleicht andere Dinge bedienen. Das versucht MCP, das Model Context Protokoll zu standardisieren und ich würde sagen, seit dieser Woche ist es endgültig geschafft, oder?

Ole: Auf jeden Fall ich also der beste Standard nützt dir ja in der Regel nichts, wenn er nicht eine gewisse Tragweite und eine einen gewissen Durchsatz erreicht und tatsächlich, ich finde es gut, dass wir die Folge erst jetzt aufnehmen, weil ich habe letzte Woche angefangen da zu recherchieren und letzten Montag war einer meiner Kritikpunkte, die ich mir noch aufgeschrieben habe, Anthropic ist nicht so groß. schauen wir mal, ob sich das überhaupt durchsetzt, ob es die kritische Masse überhaupt erreicht und eine Woche später Microsoft hat es als offenen Standard anerkannt und seine Unterstützung bekannt gegeben, sogar Open AI, die ja auch eigentlich der Erzfeind von Anthropic ist und wahrscheinlich um Faktor 10 größer, haben gesagt, ja, wir nutzen das. Bei Google ist es zumindest in Diskussion, ob sie das unterstützen wollen oder nicht. Da habe ich auf X eine Umfrage gesehen, sollen wir auch MCP unterstützen? Und wenn sie eigentlich die drei Schwergewichte schon hinter sich dann vereint haben, also bei Google ist es noch nicht ganz fix, aber ehrlich gesagt, ich gehe fest davon aus, dass Google das auch unterstützen wird, dann ist der Drops eigentlich gelutscht.

Robert: Der ich glaube sogar der Drops ist gelutscht, wenn Open AI der Chef persönlich gesagt hat, die Leute finden das super, deswegen unterstützen wir das auch, ist ja damit ist das Ding durch auf gut Deutsch gesagt, oder? Ich glaube, das was Google da mit ihrer Umfrage macht, ist wahrscheinlich nur Alibi Community Arbeit so nach dem Motto wir signalisieren mal, dass wir die Community teilhaben lassen, aber eigentlich ist das doch schon entschieden.

Ole: Auf jeden Fall und ich denke ist auch wichtig, dass man sich da auf einen Standard einigt und noch ist der Standard, es gibt Ideen, wie er weiterentwickelt sein soll, aber sie haben auch in dem Blog angekündigt, sie wollen erstmal einen kleinen Footprint bewahren, nicht versuchen alles einzubinden, wobei eigentlich habe ich das Gefühl, dass er schon sehr sehr weit reicht dieses Protokoll, aber auf jeden Fall sind in Zukunft dann neue Versionen geplant mit erweiterter Funktionalität, noch mehr Funktionalität für Agents ist geplant, das wird sich auf jeden Fall entwickeln, aber wenn es schon hunderte von MCP Servern dann gibt und man auf die Abwärtskompatibilität achtet, wovon ich eigentlich ausgehe, dann ja, das Ding ist durch, denke ich auch, das wird der Standard, wie Large Language Models und AI Agents Daten und Kontexte untereinander austauschen werden.

Robert: Okay, dann lass uns doch mal einsteigen. Ich finde es immer schön, wenn wir eigentlich mit ein paar griffigen Beispielen mal anfangen. Dann können sich alle Hörerinnen und Hörer was vorstellen drunter, was man so treiben kann damit. Was man ganz oft sieht, wenn man einsteigt in das Thema, sind diese also diese wirklich beeindruckenden Beispiele, gefolgt von ganz viel einfachen Dingen. Also das Spektrum ist endlos. Du hast es vorhin schon angesprochen, es gibt Listen von MCP Servern, die gar nicht schnell genug nachgepflegt werden können, weil täglich so viel neue entstehen. Da ist als Beispiel ein Tagesschau MCP drauf. Das ruft die API der Tagesschau ab. Das kann ich mit meinem Foundation Model, das kann ich in mein Foundation Model reinstecken, diesen MCP Server. Und dann kann hat mein Modell eben Zugriff auf Tagesaktuelle Nachrichten von der Tagesschau. Dann kann ich Fragen stellen, wie, was ist denn heute so passiert? Was ist denn für mich heute interessantes in der Nachrichtenwelt geschehen. Super oberflächlich formuliert. Aber Kontext ist King oder Queen, je nachdem, wie wir es nennen, haben wir gelernt. Oftmals bin ich ja schon im Dialog drin oder ich habe Custom Instructions und das Foundation Model weiß sehr viel über mich. Wenn ich da die aktuelle Nachrichtenlage reinstecker, dann kann ich den natürlich auch unterwegs mal fragen, gib mir mal einen ganz schnell Nachrichtenüberblick, aber nur für mich relevante Nachrichten. Vielleicht interessiere ich mich nicht für Nachrichten aus die transatlantik Themen berühren, sondern heute nur mal für regionale Sachen und so weiter und so fort. Das wäre so eine ein Datenzugriff, also Daten reinleiten. Was man was auf der Skala von extrem beeindruckend ganz nach rechts ausschlägt, nämlich extrem beeindruckend finde ich dieses Blenderbeispiel. Blender ist so eine Open Source 3D Rendering Software. Die für die jemand einen MCP Server geschrieben hat und wo man quasi Vibe-basiert 3D Rendering macht. Also da gibt’s wirklich ein Zeitraffer Video, wo einer nur über den Chat mit Claude ein eine Szene erstellt mit einem Raum und einem Drachen und einer Schatztruhe, dann noch stimmungsvoll beleuchtet und es wird nicht einmal das UI von Blender angefasst. Hast du noch was gesehen, was dich beeindruckt hat?

Ole: Es gibt ein Beispiel MCP Agents nennt sich das. Da hat sich eine Firma der Name, wir werden es verlinken. Der Name habe ich gerade leider vergessen. Wir haben sich das Paper, was wir letztes Mal auch schon ein bisschen angesprochen haben, die Patterns von Anthropic zur Nutzung von Agents. Sie haben daraus ein Framework gemacht und dort zeigen sie, wie man mit diesen Patterns, dem Orchestrator zusammen mit MCP Servern in kürzester Zeit beeindruckende AI Agent Frameworks aufbauen kann. Also das Beispiel, was ich mir näher angeguckt hatte, ging darum, sie haben einen einen Research Agent Framework geschaffen, die bestand aus einem Agent, der fürs Fetching zuständig war und sich die Artikel gezogen hat. Dann gab es einen zweiten Agent, der den Inhalt dieser Artikel validiert hat, passt das zu dem Thema und dann gab es noch einen Writer Agent, der sich dann die validierten Artikel genommen hat und sie zusammengefasst hat und der Validator Agent konnte dann an den Fetching Agent noch kommunizieren, refetch mehr davon oder das fehlt noch oder das war nicht so gut. Und sie haben halt nahtlos zusammengespielt über so einen Orchestrator und das ganze Beispiel waren 90 Zeilen prompt, also ungefähr 30 Zeilen pro Agent und da kam eine kleine Definitionszeile drunter, du hast auf diese MCP Server Zugriff und fertig.

Robert: Also das so einfache Agent Networks habe ich noch nicht gesehen. Das hat mich sehr beeindruckt.

Robert: Ja, krass. Noch ein griffiges Beispiel ist, glaube ich, einfach z.B. MCP für Postgres. Ist ganz interessant, kann sich jeder Entwicklerin, jeder Entwickler was drunter vorstellen. Hier in der Sendung, vielleicht hören auch noch andere zu hoffentlich. Also ein MCP für Postgres macht nichts anderes als meinem KI Modell Claude ChatGPT, die wir reden hier Modell setzen hier Modelle und Produkte gleich, ihr wisst, was wir meinen. Zugriff auf eine Postgres Datenbank zu geben. Dasselbe gibt’s wahrscheinlich mittlerweile auch für My SQL, was auch immer. Ist total spannend. Weil wenn das Modell auf einmal einen Stecker hat, wo ich meine Datenbank reinstecken kann, dann kann ich natürlich mit der Datenbank reden, natürlich sprachlich. Wir haben Hausintern so ein paar Use Cases schon durchgespielt, damit z.B. unser Website CMS einfach an Claude anschließen, dann können einfach Fragen zur Datenbank gestellt werden. Das ist für unser Marketing total interessant. z.B. welche Artikel haben wir in den letzten 5 Jahren zu welchen großen Themenklustern veröffentlicht? Was waren Schwerpunkte, was waren Lücken? Also Insights, für die man sonst immer einen Experten oder eine Expertin braucht, die SQL gut schreiben können, um irgendwie so Custom Reports zu ziehen. Macht im Alltag niemand, hat niemand für Zeit, bis das fertig ist, wirds wieder ausgesessen. Wenn ich jetzt einfach mit der Datenbank quatschen kann, das ist für viele nicht nur fürs Marketing total griffiges Beispiel, was das eigentlich ermöglicht.

Ole: Vor allen Dingen ganz wichtig, du kannst ja nicht nur lesen, du kannst ja auch schreiben. Also Memory ist da schon mit erschlagen und für so ein Agent, der kann sich Reports ablegen, der kann sich sagen, ich habe diese und jene Seiten gecrawlt, mein aktueller Stand ist das, gerade für längere Workflows ist ja eine Persistence und Memory total wichtig und auf einmal muss man gar nichts mehr dafür tun, dass du bindest dir dein Postgres Server ein, sagst ihm, was er für dich abspeichern soll oder was für diesen Agent wichtig ist, wie weiter gecrawlt hat oder was auch immer jetzt seine Aufgabe ist und er legt sich diese Reports ab und kann beim nächsten Mal drauf zugreifen.

Robert: Ja, das ist ein guter Punkt, gerade diesen Memory. Dass dafür nichts mehr erfinden muss, muss ich ja immer irgendwas erfinden. Stichwort Erfinden. Die Toolnutzung von Foundation Models ist ja im Prinzip nichts Neues. Dass ich an ein Foundation Model eben Werkzeuge dran flanschen kann. Dass ich sagen kann, pass auf, hier ist die API, die Open API Spec für unsere Suche. Hier ist eine andere API Spec für unser Ordermanagement. Hier ist eine dritte API Spec für Support Fälle. Die API Spec sieht folgendermaßen aus, dann kommt oft so ein in folgenden Fällen kannst du dieses Tool benutzen. Am Ende ist das sehr viel Prompt Engineering und die verschiedensten Schnittstellen, wenn man Glück hat, ist es immer eine Open API Spec in der echten Welt, sieht man halt alles. Und das sind ja nur API Beispiele, was habe ich denn in der Vergangenheit getan, wenn ich z.B. Blender anbinden wollte oder ein Tool, das auf Standard in Standard Outbasis arbeitet, irgendwelche Pfeilsystem Operationen durchführt oder Postgres anbinden, da musste ich immer was Neues erfinden und immer was anderes. Das wird jetzt alles anders, oder?

Ole: Idealerweise hatte man also sowas komplexes wie Blender hätte ich mir schon mal gar nicht zugetraut. Blender ist ja nun wirklich komplex und das als Tool anzubinden mit allen Facetten, da müsste ich halt ein richtiger Blender Spezialist sein und das Problem, wenn man solche Tools früher angebunden hat, war ja, das war ja dann auch deine Verantwortung. Du hast dir dieses Tool ja ans Bein gebunden und immer wenn es jetzt eine neue Version gibt, dann musst du danach ziehen, sonst bricht dein Workflow, sonst kann er nicht mehr drauf zugreifen, sonst geht irgendwas schief. Das wenn du nur so ein, zwei Dinge anbindest, dann mag das noch gehen, aber im Prinzip bist du immer in so einem ständigen Race und tatsächlich durch AI wird die Anzahl von Iterationen und die Geschwindigkeit eher zunehmen, am Ende hättest du immer verloren. Also das was wir früher gemacht, also was man sonst immer machen musste, ich bin diese Schnittstelle an, ich hole mir die Daten von XY, die Datenstruktur sieht so aus, so hast du es zu benutzen, konnte man langfristig eigentlich nur verlieren. Das merkt man bei AI noch nicht so krass, weil das Thema ist noch gar nicht so alt, aber irgendwann mit der nächsten Iteration von Blender wäre wahrscheinlich dein Blender Tool Use gebrochen. Und diese Grundidee, derjenige, der das Tool anbindet, der Blender entwickelt hat oder der Postgres entwickelt oder der Slack entwickelt, der kann sich doch eigentlich dafür darum bemühen und bietet diesen Server an, der immer auf der aktuellen Version ist, der immer genau weiß, wie es aussieht und dein Agent kann sich automatisch auch selbständig drüber informieren, wie die aktuellen Strukturen sind. Das verlagert das Problem halt zu dem, der sich am besten damit auskennt und nimmt dich halt aus diesem Hamsterrad raus, ich muss ständig meinen Tools hinterher programmieren, weil Umsystem XY hat jetzt wieder eine neue Version released und jetzt bin ich halt veraltet.

Robert: Das ist ein guter Punkt, dass du das angesprochen hast. Ich kann die Verantwortung für den Stecker zu meinem System oder meinem Datentopf oder meiner API, die Verantwortung dafür den zu entwickeln und zu warten und zu maintainen, zu pflegen, zu kultivieren, kann ich jemand anders geben. Das kann die Community machen. Das kann vielleicht aber auch ein anderes Team machen. Das könnte auch, wenn wir in Unternehmenssystem, Hausinternen Unternehmenssystem denken, dasselbe Team tun in einem besser getrennten System, was eine andere Facette abdeckt oder was einen anderen Usecase abdeckt. Es kann aber auch diesen ownership für die eigenen Daten, die eigenen Systeme stärken. Wenn ich Microservices oder SCS Architekturen betrachte, da geht’s ja sehr viel um ownership, welches Team übernimmt für welche Vertikale eben die vollumfängliche Lieferverantwortung. Und den Teams ist ja dann mit der Verantwortung auch daran gelegen, Integration zu ermöglichen. Wenn das ein E-Commerce Shop ist mit irgendeiner Produktliste oder Produktdatenbank. Und ich kann einfach eine Integration für Foundation Models schreiben, indem ich ein MCP neben meinen vor meine API stelle oder was auch immer. Das ist ja super. Das muss ich gar nicht in meinem Bestandssystem rumfuschen. Ich kann mich in dem extra System, nämlich diesem MCP Server drum kümmern, dass da nichts bricht. Ich kann dafür sorgen, interessante Tools bereitzustellen, die zum Usecase passen. Ich kann dem LLM, also dem Foundation Model auch ermöglichen so eine Erkundung zu machen. Was kann ich denn hier interessantes machen mit dieser Produktdatenbank und sowas? Das ist so erschöpfend in einer Folge gar nicht zu beantworten, was was so ein Standard eigentlich ermöglicht. Weil diese Foundation Models jetzt auch mal aus ihrer Blackbox rausgreifen können und man kann im Gegenzug auch was rein tun, was vielleicht automatisierbarer ist und über dieses Copy paste hinausgeht. Wir kennen das alle, das t im Alltag, es ist schrecklich. Aber wenn wir auf einmal so drei, vier, fünf Kabel dran gesteckt haben an so ein Ding und Unternehmensweite Fragen beantworten können und da werden Systeme angezapft oder sogar bedient. Das muss man mal sehen, um die den die Wirkung dessen zu begreifen, finde ich.

Ole: Ja, ich denke auch, dass also eigentlich, wenn ich ein Serviceanbieter bin und nur irgendeinen einen Anreiz habe, Daten oder Services anzubieten, bräuchte man bald eine MCP Schnittstelle, denke ich, weil die Konkurrenz, wie gesagt, selbst Tagesschau öffentlichrechtlicher Rundfunk ist ja nicht immer der schnellste mit neuen Technologien, hat schon ihren eigenen MCP Server schon vor zwei Wochen veröffentlicht, wo ich dachte mir wow, die Jungs sind auf Zack. Liegt aber auch dran, dass so ein MCP Server zu schreiben überhaupt nicht so kompliziert ist. Also ein Großteil davon kann man sich z.B. mit Claude generieren lassen. Also ich habe mal reingeguckt, der MCP Server fürs Filesystem, alle Filesystem Operationen, das sind 200 Lines of Code und das ist relativ simpel. Also da muss man überhaupt gar keine Angst vorhaben und letztendlich, glaube ich, sind AI Agents auch dankbare Kunden, weil die Adaption von neuen Funktionen in meinem Framework geht ja häufig eher langsam Mensch ist ein Gewohnheitstier. Der möchte eigentlich, dass ich wenig verändert. Eine AI ist da viel dankbarer, gibt er die neuen Funktionen und die wird sofort adaptiert. darum glaube ich, als Serviceanbieter ist das auch eine Chance und vor allen Dingen keine so hohe Verantwortung, weil so ein MCP Server zu schreiben ist tatsächlich relativ simpel gehalten.

Robert: Bist du dir sicher, dass das Tagesschau Team das selbst gebaut hat oder war das nicht jemand aus der Community? Ich habe gar nicht so tief in den Source Code reingeguckt von dem Tagesschau MCP. Wahrscheinlich gibt’s mittlerweile fünf davon.

Ole: Ich glaube, kann gut sein, dass es von der Community ist, aber zeigt ja wieder, was es ermöglicht. Am Ende ist die Community schneller als die owner der eigentlichen Systeme. Deswegen all die Ideen, die wir jetzt hier haben, nehmt sie. Ich sage nur so viel, es hat gerade das ZDF ihre Mediathek öffentlich wirksam groß gelauncht. Macht doch mal was mit MCPs.

Ole: Lasst euch unsere lästigen Workflows abnehmen. Ich fühle nicht gerne meinen Stundenzettel aus, aber er hat eine Verbindung zu meinem Kalender, er hat eine Verbindung zu GitLab, er weiß also an welchen Stories ich wie lange gearbeitet habe. Er kann sich mit Jira connecten. Ich habe es noch nicht geschrieben, aber tatsächlich ein Ziel für mich in den nächsten Wochen ist, schreibe mir drei Agents, die meinen Stundenzettel für mich schon mal vorausfüllen und ich dann eigentlich nur noch gegenlesen muss, ob er alles richtig zugeordnet hat. Werdet einfach die Aufgaben los, auf die ihr keinen Bock habt und das kann man jetzt relativ einfach umsetzen.

Robert: Lass uns mal zurück denken an unsere Folge, die noch gar nicht so lange her ist in AI Jahren natürlich unendlich lange schon her, die Agentenfolge. Da haben wir auch kostenfrei ein paar Geschäftsideen entwickelt, die ihr gerne alle nehmen könnt. z.B. haben wir uns über Geschäftsreisen so ausgelassen. Jetzt überlegt doch mal, ihr seid bei einer Fluglinie oder ihr seid bei einem Personen Zugverkehrsanbieter. Schreibt doch ein MCP. Überspringt doch eigentlich den Schritt, euer UI so anzupassen, dass es vielleicht KI bedienen können, wobei da die Erkenntnis sowieso ist, wenn euer UI von Menschen gut zu bedienen ist, ist es von der KI auch gut zu bedienen. Das ist in dem Sinne nichts anderes. Aber wenn euch dran gelegen ist, dass Leute bei euch Flügebuchen oder Bahnfaten, bietet doch sowas mit an. Da geht der Trend doch hin. Persönliche Assistenten, vielleicht hat das mittlere Management bald wieder ein Sekretariat in Form von virtuellen Sekretariat Mitarbeiter innen. Das wäre doch toll, oder?

Ole: Ja, Stichwort accessibility. Also accessibility ist ja eh ein Thema, was viele Firmen jetzt angehen müssen, weil es dazu EU Richtlinien geht und eine UI die accessible ist, ist auch für ein Large Language Model gut zu händeln. Da sind ja so Dinge drin. Im Hintergrund auf der Seite soll sich nicht allzu viel verändern. Das ist genau das, was ein Large Language Model auch braucht. Also macht eure Webseiten einfach accessible, erfüllt die EU Richtlinien und sie sind damit automatisch auch large Language Model freundlich, aber wie du schon sagst, im Prinzip schreibt lieber eine MCP Schnitt also nein, macht eure Seiten trotzdem accessible, weil das eine Richtlinie ist, aber als Bonus könntet ihr mit einer MCP Schnittstelle es noch viel einfacher für die Agents machen.

Robert: Ja. Auch da gibt’s, weil das alles noch so neu ist. Wir reden hier über eine Spec, da ist vor drei Tagen, wenn ich nicht richtig wenn ich mich richtig erinnere, erst in einem neuen Draft für dieses Spec was zur Authentifizierung, Autorisierung hinzugekommen. Das ist noch sehr stark in Flux und all das, was wir hier besprechen ist in 7 Tagen vermutlich schon wieder auf einem anderen Stand und wir bemühen uns auch nur die Themen hier zu besprechen, die nicht sofort veralten, damit ihr längerfristig was von der Folge habt. Es werden z.B. aber auch noch keine Aussagen getroffen, das ist vielleicht auch gar nicht Dienst so einer Spezifikation, aber ich denke schon weiter, es gibt ja wenn wir noch mal an unsere Folge zurückdenken mit den macht eure Websites gut für KI Agenten bedienbar. Wenn wir an den Operator von Open AI denken, Restaurant Buchung in meinem Auftrag, Restaurant Reservierung und so weiter und so fort. Da werden halt Webseiten mit Playright bedient. Screenshots gemacht, die Screenshots analysiert und dann werden Maus Cursor bewegt und geklickt und all das gemacht. Das geht. Wenn eure Website aber zusätzlich ein MCP bereitstellen könnte und das LLM in irgendeiner Art darüber informieren könnte, dass es sowas gibt. Vielleicht werden wir sowas sehen. z.B. du willst, dass ich eine Restaurant Reservierung für dich buche, ich habe gesehen, diese Seite bietet auch einen MCP Stecker an, soll ich den reinstecken? Am Ende gibt’s dann solche Dialoge. Diese MCP Stecker ermöglicht mir leichter für dich das und das zu tun, willst du das tun oder soll ich die Website benutzen? Am Ende geht’s auch dahin.

Ole: Anthropic hatte auch die Idee, dass man halt zu. well known anbinden könnte, bei. well known und dann verweist man halt auf den MCP Endpunkt und ein AI Crawler, der drüber läuft, erkennt es, er weiß, was ein MCP ist, er weiß, also ich schaue mir erstmal bei. well known vorbei und adaptiert dann automatisch vom Crawler Mode auf MCP, also diese Agents, die du hast, können on the fly sich weiterentwickeln und bessere Ergebnisse liefern, ohne dass du eigentlich groß an deinem Agent was umstricken musst.

Robert: Also, macht das. Ist für euer Geschäft ein guter neuer Kanal, weil wir sehen jetzt schon, wenn wir uns die Zugriffsstatistiken von großen Websites angucken, der LLM Such Traffic ist einfach gigantisch. Das wird nicht weniger werden vermutlich. Aber nun gut, lass uns doch mal einen Schritt zurücktreten. Wir sind ja auch ein technischer Podcast und uns mal angucken, wie die MCP Spezifikation aussieht. Keine Sorge, wir lesen jetzt keine Spec vor, aber wir sollten uns mal so ein paar große Konzepte in der Spec angucken. Wie was habe ich denn überhaupt, was gibt mir die Spec? Was sieht die vor für Konzepte, damit ich eben so ein MCP Server als USB-C Stecker für meinen Dienst, für meine Datenquelle, für eine KI schreiben kann. Was gibt’s da?

Ole: Die Spec ist tatsächlich ziemlich gut. Also, ich habe schon deutlich schlechtere Specs, vor allen Dingen in der ersten Version gesehen und es gibt halt auch schon viele Beispielprojekte. Prinzip kannst du deinem Claude so ein Beispiel MCP Server geben und sagen, hier, schau an, das ist ein MCP Server. Hier ist meine Open API Schnittstelle. Mache mir in demselben Pattern meinen Server und er generiert dir zumindest im ersten Go ein ziemlich brauchbaren MCP Server draus. Was ein bisschen, wo man wenn wir jetzt schon ein bisschen in die Technik einsteigen, ist, also dieser MCP Server, es gibt die MCP Clients, das ist dein Claude Desktop oder dein Surf oder dein Cursor. Und das läuft auf deiner Maschine, aber der MCP Server, der läuft auch auf deiner Maschine. Das ist ein bisschen kontraintuitiv, was Server heißt, ist mehr ein Adapter. Also, du hast wahrscheinlich eher ein Client und fünf Server. Und der Client hält auch eine eins zu eins Verbindung auf dem Server und dieser Server geht dann hin und kann entweder auf deinem System per Commandline, per Filesystem irgendwelche Dinge auslösen oder halt auch irgendwelche Remote Ressourcen anfragen. Und diese Verbindung zwischen dem Client und dem Server ist tatsächlich auch stateful. Das heißt, der baut einmal diese Verbindung auf und hält diese Verbindung. Das ist eine Entscheidung, die ist ein bisschen umstritten, sage ich mal. Also viele sagen, das bräuch es eigentlich gar nicht, aber Anthropic hat in dieser Version halt gesagt, sie möchten Rückfragen erlauben und über State Changes informieren, was auch nur dann funktioniert, wenn du eine Stateful Connection zu deinem Server hast und der Server dann eine stateless Connection zu deiner Datenbank oder zu irgendeinem anderen Remote System und die Realität ist per Rest ich sag mal, 90% dieser Verbindungen zu Remote System sind zurzeit heute stateless. Es gibt Pläne, das zu ändern. Die nächste Spec denkt schon drüber nach, ein stateful und ein stateless Server Connection einzuführen, aber gerade das ist, das sind so die Punkte, da würde ich sie auch vielleicht ein bisschen für kritisieren. Das ist so anders ist, als wie man es kennt, aber ja.

Robert: Okay, ich fasse noch mal zusammen. Wir haben das Konzept des MCP Clients. Das ist im einfachsten Fall die Desktop App von Anthropics Claude, die Claude.App auf Mac OS. Gibt’s glaube ich auch für Windows. Das ist mein MCP Client. Das werden wir vermutlich nächste Woche, vermutlich in zwei Wochen, vermutlich morgen auch von ChatGPT Desktop sehen, weil Open AI ist ja dabei. Das werden wir auch vermutlich von anderen sehen. Das sind die MCP Clients. Und in diesen Clients muss ich stand heute extrem holzig und unkomfortabel eine Liste von Servern konfigurieren, die ich gerne nutzen wollen würde, die ich gerne ansteckern würde. In Claude Desktop ist das zum Aufnahmezeitpunkt eine Jason Datei, die irgendwo liegt, die der dann öffnet und dort muss ich dann in einem Array die Server, die eben bei mir lokal startbar sind mit einem Kommando und Parametern reinlisten. Wenn ich Claude dann neu starte, dann kümmert sich Claude drum, diese Serverprozesse zu starten. Das heißt, wir haben jetzt MCP Client und MCP Server gesehen und in dem Server steckt eigentlich das ganze Schmalz drin, das Interessante. Da implementiere ich Dienst XY, die API konsumiere ich und stell die dem LLM dann über eine einheitliche API nach innen bereit. Ich muss aber nicht nur irgendwelche APIs fassadieren, ich kann ja sehr wohl auch ein System bedienen. Ich könnte in dem MCP Server auch mit Playright und einem Chrome oder einem Firefox irgendein Legacy System bedienen. Und über den MCP Server dem dem Foundation Model Zugriff da drauf geben. Ich könnte jetzt mal extrem spaßig formuliert. Ich könnte Claude die Lochkarten in meinen Mainframe rein und raussteckern lassen, wenn ich das in meinem MCP eben so implementiere und der möglich kriegt. Das ist die die ganze Bandbreite. So, jetzt haben wir gesehen, was die klein sind, müssen die denn immer auf meinem Desktop laufen. Ich könnte doch eigentlich einen Server, eine Serveranwendung mir irgendwo bauen und dann ist das mein MCP klein, da hindert mich ja nichts dran.

Ole: Tatsächlich, ich glaube sogar, wenn ich mir die Spezifikation und so weiter angucke, dass die Clients jetzt in der Regel auf deinem Desktop laufen, war nicht der primäre Anwendungsfall, als man das Ding gedacht hat, dadurch, dass es jetzt so extrem abhebt, was auch glaube ich Anthropic überrascht, geht es immer mehr dahin, aber die ursprüngliche der ursprüngliche Gedanke war, dass der Client vermutlich ein AI Agent ist. Das heißt gar kein Mensch ist, sondern dass da auch wieder ein Large Language Model drauf sitzt und höherwertige Aggregationsfunktionen für uns ausführt. Und dafür haben sie auch den Rückkanal mal reingebaut. Es gibt also, darum sind diese Verbindung stateful und darum gibt’s als Sampling diesen Rückkanal, dass es Rückfragen stellen kann. Das kann man jetzt auch nutzen, falls man neuere Berechtigungen braucht oder so. Berechtigungen sollten wir übrigens auch gleich drüber sprechen, weil so ein Agent, wenn er auf dein GitLab oder dein Postgres zugreift, muss ja auch irgendwie berechtigt werden. Auf jeden Fall gibt’s den Rückkanal und ja, der ursprüngliche Gedanke war eher Richtung AI Agents gedacht, wie kann ich diese Frameworks von Agents enablen?

Robert: Wenn ich jetzt im Unternehmen, entweder öffentlich oder intern einen oder viele MCP Server bauen möchte, vielleicht für unser Firmenkonfluz, vielleicht für ein System XY, vielleicht für den Mainframe im Keller, vielleicht noch für die Datenbank XY dort bitte nur auf die und die Tabellen und auch nur lesend, dann muss ich das ja nicht jedem Mitarbeiter, jeder Mitarbeiterin irgendwie in ihr ihren Desktop Foundation Model Client reinfrimeln. Da kann ich ja auch einen zentralen Server für bereitstellen, der den MCP Client dann stellt.

Ole: Idealerweise auch die Authentifizierung, also, wenn ich ein unter großes Unternehmen wäre, ich würde mir wahrscheinlich ähnlich wie ein Artifactory ein Repository bereitstellen. ein Repository über meine MCP Server, weil MCP Server, den musst du ja schon vertrauen. Du gibst ja häufig irgendwelche API Tokens und so weiter, irgendwelche credentials musst du ihn ja mitgeben. darum willst du das nicht jeden X beliebigen MCP Server geben, das da muss schon ein Vertrauensverhältnis da sein. Und dann kann man die Authentifizierung natürlich über dein Okta oder was immer dein Oauth Provider der Wahl ist laufen lassen, dass quasi das dein Token automatisch mit an das Repository geliefert wird und es dir dann halt die richtigen MCP Server zur Verfügung stellt oder überhaupt nur anzeigt, auf die du Zugriff hast und gleichzeitig kann deine Firma vertrauen, dass du dir nicht irgendwelche wilden MCP Server da installierst. Das kennen wir so ein bisschen von den NPM Packages, dass einige Firmen sich da ihre eigenen Artifactory hinstellen und das Repository als trusted Puffer dient quasi von Dingen, denen man vertraut, den die freigegeben sind, die geprüft sind und sowas ähnliches wird sich bei MCP ganz sicher im Firmenkontext auch durchsetzen, speziell, wenn sie Zugriff auf die Datenbanken haben oder dein Client nicht jeder in deiner Firma, dein Client soll auf alle Mitarbeiterdaten zugreifen, sondern das wird für einige Mitarbeiter für HR erlaubt sein, aber bestimmt nicht jeder Client darf die Mitarbeiterdaten lesen.

Robert: Da kommt von uns auch ein Artikel zu dem Thema raus, den verlinken wir dann hier in den Shownotes. Der entsteht gerade parallel zur Aufnahme dieser Folge. Können euch also noch nicht sagen, wie der Artikel von dem lieben Kollegen Dominik genau heißen wird, aber zum Zeitpunkt der Veröffentlichung dieser Folge wird es den bestimmt auch schon geben. Ansonsten reichen wir den nach. Du, wenn wir uns gerade die die Model Context Protocol, die MCP Spec angucken und jetzt Client und Server kennengelernt haben, wir sehen schon, das meiste steckt im Server. Was gibt’s denn für Konzepte, wenn ich so einen Server schreiben will, was ich dem LLM da anbieten kann? Wenn ich in die Spec gucke, sehe ich so ein paar in der Kernarchitektur den Punkt Konzepte. Da ist eine Liste von sechs Sachen. Lass uns die doch mal angucken. Was sind Resources? Damit fängt’s an.

Ole: Genau, sie unterscheiden so ein bisschen zwischen Resources, Tools und Prompts und Resources ist das, was sie Application Controlled nennen, was damit gemeint ist, alles was sich hinter diesen Resources verbindet, wird direkt von der anbietenden Software controlled, also sagen wir wieder das Datenbankbeispiel, das sind dann die Views auf deine Datenbank, die dir angeboten werden oder das sind irgendwelche Dokumentationen in Markdown, da kannst du dir deine Markdown Konfiguration dein Markdown Files runterladen. Im Prinzip sind dieses aber werden die diese Sachen nur angeboten und es frisst oder stirbt. Also, es gibt noch eine kleine Beschreibung davon, aber das Large Language Model muss diese Sachen so entgegennehmen, sich das anschauen, vielleicht auch irgendwelche Logfiles, irgendwelche Files, die auf der Datenbank auf deinem Filesystem liegen und die selber auswerten. Es gibt da keine customizable Möglichkeiten. Und damit ist auch schon die Abgrenzung eigentlich zu den Tools gegeben. Die Tools sind nämlich Model Controlled. Das heißt und Model ist damit dein AI Model gemeint. Das sind ja, was man, es gibt ein Tools/list, das gibt dir die Endpunkte und in den Endpunkten steht, du kannst bei mir dies und das aufrufen und bekommst dann von mir dies und das geliefert und dann kannst du mit Tools/call deine Calls dagegen absetzen und da wie bei Hypermedia auch, kann dein Agent rausfinden, was bietet mir der Server überhaupt an und er sucht sich dann aus, ich möchte das haben oder dieses haben, ich möchte jemandenn krank melden oder ich möchte irgendwelche Berechnungen haben oder gib mir mal den Umsatz von Kunde XY. Diese Tools kann er dann halt aufrufen und du kriegst Ergebnisse runter oder das Blenderbeispiel ist ein klassischer Tool use. Er generiert dir dann halt irgendeine Szene mit drei Menschen in einem Raum, mit einem Drachen oder so.

Robert: Das sind dann die eine eine Kaskade von Toolnutzung. Wahrscheinlich hat dieses Blender MCP, ohne da genau reingeguckt zu haben, zich Tools, wahrscheinlich die die Werkzeugliste in Blender abbilden, zeichne eine Kugel, zeichne einen Würfel und so weiter und so fort. Und damit die werden dann bedient. Das kann ich natürlich jetzt schöner als Analogien nehmen für meine Unternehmens Tools. Ich könnte sagen, ich habe eben ein Werkzeug für die bleben wir mal beim E-Commerce, für die Produktliste. Dann habe ich vielleicht ein Tool für die für die Service Fälle oder sowas. Dann habe ich ein Tool für was weiß ich. Also die die Möglichkeiten sind endlos und diese Tools definiere ich quasi in meinem MCP Server und da steht wahrscheinlich auch eine Beschreibung bei einem Menschen lesbare für das LLM, was es denn mit dieser Liste von Tools und mit jedem einzelnen Tool so tun kann. Und wie es die eben parametrisieren soll, oder?

Ole: Genau, das hat einen Namen, es hat eine Beschreibung und es sind halt dynamische Operationen, die du damit auslösen kannst. Das ist eigentlich der große Unterschied. Ressourcen konsumierst du und Tools sind Aufträge, die du verteilen kannst. Das Input Schema, also wie parametrisiere ich so ein Werkzeug? Das ist, glaube ich, ein Jason Schema. Aber die eigentliche Beschreibung und das ist wiederum interessant, ist natürlich human readable. Da müssen wir für die Maschine nichts anderes tun als für Menschen. Wenn ich für Menschen Werkzeug gut beschreibe, habe ich es automatisch für die Maschine auch gut beschrieben, oder?

Ole: Auf jeden Fall, wer gute API Specs hat, der kann sich die Sachen damit daraus generieren lassen. Also mehr braucht es eigentlich nicht und eine gute API Specs enthält ja auch Beispiele, es enthält, was du als Response erwarten kannst, wie deine Antworten auf diese Aufrufe aussehen sollen. Wie gesagt, in vielen Fällen sind die MCP Server zu 90 % generiert, wenn man halt schon eine gute Spec hat, wenn man jetzt keine gute Spec für seine Schnittstellen hat, dann muss man sie halt noch liefern, aber halt auch wirklich menschenfreundlich. Da muss man jetzt keine speziellen Verrenkungen machen. Da gibt’s keine spezielle Syntax. Schreib es einfach frei von der Leber und wenn du einigermaßen gut beschreiben kannst, dann wird das schon passen.

Robert: Aber auch das, jetzt MCP kann ja auch ein schönes positives Druckmittel Hausintern sein, um endlich die verfluchte API X mal ordentlich zu spezifizieren, damit man die eben KI bereitstellen kann für die Bedienung. Und das tut man einmal und damit ist ja halt auch für Menschen dann wahrscheinlich benutzbarer, als es vorher zumindest war.

Robert: Okay, so ein Server informiert also das LLM über seine Fähigkeiten, seine capabilities und Tools ist eine ein Typ der Fähigkeiten, den wir jetzt besprochen haben. Lass uns doch noch mal kurz zurück gucken oder auf Stand heute schauen. Toolnutzungen können ja viele Foundation Models. Das entsteht im Training, dem wird dann auch als Teil des Trainings beigebracht, dass sie eben Tools bedienen können. Und dass sie den Instruktionen ein Tool zu benutzen, bitte erfolgen sollen. Stand heute musste man aber jedes Tool immer irgendwie dem LLM erklären, beibringen. Pass auf, hier sind fünf Werkzeuge, die sind alle fünf unterschiedlich spezifiziert. Merk dir das bitte und sprich mit Tool A so, sprich mit Tool B so, sprich mit Tool C so. Das wird jetzt unified durch MCP. Wenn wir uns jetzt ein beliebiges Modell nehmen, z.B. ein Lama 3370B, das ist keine Ahnung, wann vor Monaten ist das Training abgeschlossen worden, wenn nicht schon länger. Kann ich so einem beliebigen Modell, was grundsätzlich auf Toolnutzung trainiert wurde, jetzt auch beibringen, nutz bitte meine fünf MCP Server.

Ole: Ja, auf jeden Fall. Also solange es das Prinzip von Toolnutzung unter versteht, kann man ihm relativ leicht beibringen, was MCP ist und wie er es zu nutzen hat. Also, er muss dann noch eine Discovery von den Fähigkeiten machen, aber das ist tatsächlich auch eine dieser großen Stärken, dass es mit minimalem Aufwand kannst du eigentlich jedem Large Language Model beibringen. Also Tool Use ist setze ich voraus, aber mir wäre nicht vielleicht die ganz kleinen Modelle, aber mittlerweile weiß eigentlich jedes Large Language Model, was Tool use ist und sobald dieses Grundverständnis hat, dann ist es sehr leicht da MCP auch anzubinden.

Robert: Das ist auch ein berühmter Irrglaube, der mir in Gesprächen über den Weg gekommen ist, so nach dem Motto, wenn Open AI jetzt dabei ist, dann dauert das ja, bis die MCP unterstützen in ihren Modellen, weil sie erstmal neue Modelle veröffentlichen, die trainieren müssen, das dauert Monate, kostet hunderte Millionen, solange warte ich nicht. Das stimmt ja nicht. Grundsätzlich kann ich jedem LLM sagen, nutze bitte Tools und tu das so und so. Jetzt sage ich eben, nutze bitte Tools und tu das nur auf diesen einen Weg. Ich kann das über Prompt Engineering erreichen in meinem Feature Prompt, in meinem System Prompt, was auch immer. steht dann eben drin, du hast folgende fünf Tools zur Nutzung bereit. Dein Job ist folgender, du beantwortest folgende Aufgaben und Fragen der User. Diese fünf Tools kannst du nutzen, blablabla. Die Toolnutzung geschieht immer über MCP, dann kann man wahrscheinlich auch die MCP Spec einfach reindampfen. Schlauerweise behält man den Fokus und beschreibt einfach, gibt so ein Beispielschema mit, wie das aussieht. Und dann muss man wahrscheinlich auch noch mal bitte, bitte, bitte, mach die Toolnutzung immer nur so, vergiss das nicht und dann sollte es eigentlich auch laufen. Und das ist eigentlich die gute Nachricht, deswegen müssen wir gar nicht drauf warten, dass andere Modellhersteller außer Anthropic jetzt ihre Modelle umtrainieren, die können das alles schon, weil die generell das Konzept der Werkzeugnutzung meistens schon drin haben.

Robert: Das heißt, wir können eigentlich gestern anfangen, MCP Server zu bauen für unsere Systeme.

Ole: Ja. Auf jeden Fall. Haben ja schon genug Leute getan.

Robert: Ja. Lass uns doch mal auf ein paar weitere Fähigkeiten von so einem MCP Server schauen. Wir hatten es schon kurz erwähnt, was ist z.B. sampling?

Ole: Sampling ist dieser Rückkanal. Da kann tatsächlich der MCP Server von seinem Client Ressourcen Inference z.B. anfragen, so spezifizier mir noch mal was oder gib mir noch mal Zugriff auf XY, um diese Tabelle zu lesen, brauche ich das? Kannst du mir das geben oder kannst du es mir eventuell nicht geben, aber da gibt’s tatsächlich mal diesen Rückkanal, damit der Agent damit der Server um seine Aufgabe richtig ausführen zu können, kann er entweder Inference oder Ressourcen von dir anfragen, quasi Rückfragen und das ist halt speziell im Kontext von diesen AI Agents wieder interessant, dass die auch untereinander kommunizieren können, dass das nicht immer nur one way ist, sondern dass Agent A an Agent B einen Auftrag vergeben kann und wenn Agent B in irgendeinen Block läuft, weil ihm irgendwelche Berechtigungen fehlen oder er sonst irgendwie nicht weiterkommt oder er die Aufgabe nicht ganz genau verstanden hat, dann kann er über sampling Rückfragen stellen. Das ist da muss man wieder seinen Servern vertrauen, weil so ein Rückkanal natürlich auch immer ein Risiko darstellt, der kann sich jetzt irgendwelche Passwörter versuchen von dir zu erschleichen, wenn du irgendwie einen falschen MCP Server dir da reingeladen hast, darum ist das eine Vertrauensfrage. Das Sampling wird auch noch nicht so von so vielen Clients unterstützt. zurzeit sind es glaube ich nur zwei drei Clients, die es überhaupt unterstützen von 20 30, die es gibt, das ist also noch ein sehr neues Feature. Anthropic bemängelt ein bisschen, dass es noch zu wenig unterstützt wird. Sie hätten sich mehr Unterstützung von diesem Feature gewünscht, aber das liegt halt auch ein bisschen an diesen Sicherheitsbedenken, wenn mein Server sich jetzt neue Ressourcen bei mir greifen kann, wer limitiert das und wer stellt das eigentlich sicher, aber Sampling ist auf jeden Fall ein sehr spannendes Feature, was, wenn AI Agents noch weiter Verbreitung annehmen, auch wichtig werden wird. Da bin ich von überzeugt.

Robert: Das heißt, der Assistent nutzt einen anderen Assistenten. Ein LLM nutzt ein anderes LLM, vielleicht was speziell gepromptet ist, Zugriff auf andere MCP Server hat oder andere Dienste, andere eine andere Fachdomäne eben besser versteht, um sich da noch mal zusätzlich Input zu holen. Dafür könnte man dann Sampling benutzen. Was ist denn Roots?

Ole: Roots ist auch eher so eine ähnlich so wie auch the well known URLs, das ist eigentlich eine Beschreibung, es gibt dir Zugriff, also im Fall von dem Filesystem MCP wäre es z.B., das ist dein Projektordner, das ist also die URI, der einfach der Fahrt auf den er Zugriff hat und dann eine Beschreibung, das ist dein Projektordner, du findest dieses und jenes da drin, wenn du Fragen dran stellen sollst, also einfach eine möglichst sprechende Description. Es wird noch nicht so extrem viel genutzt, habe ich in der freien Wildbahn auf jeden Fall nicht gesehen. Im Prinzip kann man da dann halt auch wieder einen ganzen Knowledge Graf dran hängen, wenn du extrem komplexe Systeme hast, vor allen Dingen, wenn du dann nachgelagert noch weitere Agents hast, könntest du sagen, hier, wenn du das mehr wissen willst, dann frag doch diesen Agent. Im Prinzip kann man über diese Roots ganze Netzwerke oder Wissensgrafen aufbauen, welche Informationen man wo findet, wird aber noch nicht so extrem viel genutzt. Aber wie gesagt, sie haben schon dafür, dass sie ein minimal Protokoll bereitstellen wollten, finde ich, haben sie schon sehr weit in die Zukunft gedacht.

Robert: Ja, zumindest die Konzepte, die Kernkonzepte, die da drin sind. Da braucht man erstmal eine Zeit, um die wirklich alle auch auszufüllen. Also, es ist mehr als genug da. Eigentlich muss man nicht warten, um anzufangen. Lass uns das letzte noch angucken, nämlich Transports. Was ist damit gemeint mit so einem Konzept?

Ole: Transports das sind die eigentlich die Beschreibung, wie die Verbindung aufgebaut wird. Also von Haus aus wird entweder Standard IO oder Server Send Events unterstützt. Wichtig ist für ihn halt, dass er eine Punkt zu Punkt Verbindung hat, also eine eins zu eins Verbindung.

Robert: Okay, das ist ein guter Punkt, den hast du ja vorhin schon mal angeschnitten. Lass uns da noch ein bisschen drüber reden. Wenn ich den MCP Server X geschrieben habe, der mein Konfluenz, mein irgendwas Fassadiert für das LLM. und als Stecker bereitstellt. den starte ich entweder lokal oder auf meinem Server dort, wo eben der MCP Klein, das Foundation Model auch eingebunden ist. Und auf welchen Transportebenen, welchen Transportprotokollen kann jetzt der Client mit dem Server kommunizieren. Du hast schon gesagt, es gibt Standard in, Standard Out.

Ole: Genau.

Robert: Das ist wahrscheinlich ein Beispiel dafür ist wahrscheinlich Filesystem MCP. Also Dateien lesen, Dateien auflisten, Dateien löschen, Dateien öffnen und ausgeben und sowas, da bietet sich wahrscheinlich Standard in Standard Out an, aber es gibt ja noch

Ole: alle Tools, die einfach über deine Commandline eingebunden wird. Er kann ja dein ffmpeg oder was auch immer, kann er ja aufrufen.

Robert: Ah. Ja, das ist natürlich interessant, ein gutes Beispiel. Warum nicht die ffmpeg endlich mal bedienbar machen? Also, wer die ffmpeg Syntax auswendig kann, mein Respekt. Ich benutze es wirklich wöchentlich und ich muss jedes Mal via LLM CMD mit Menschensprache prompten, was ich bitte für ein ffmpeg Kommando brauche, um diese und jene Podcast Folge in das und das Format zu konvertieren, weil ich mir diese Parameter einfach nicht merken kann. Wenn ich das Cloud als Auftrag geben könnte oder einem anderen Foundation Model, rechne bitte folgendes Video mal um oder sowas. Das ist auch ein schöner Usecase. Was gibt’s denn noch außer Standard in und Standard Out? Du hast vorhin gesagt, HTTP, aber mit einer mit einer Sonderlocke.

Ole: Ja, die Server Sent Events eigentlich.

Robert: Mhm.

Ole: Also, weil sie ja auch wieder diesen stateful Connection haben wollen zwischen dem Client und dem Server.

Robert: Mhm.

Ole: Es gibt Cloudflare hat das schon im Angebot. Es gibt halt auch, normalerweise läuft dieser MPC Server MCP Server ja auf deiner Maschine, man kann sie auch remote mieten bei Cloudflare z.B.. Aber halt auch nur ein für jeden Client brauchst du deinen eigenen Server. Das skaliert nicht so mega gut und dieser Server hat dann halt alles, der braucht ein Memory, der braucht ein Datenbankzugriff, der braucht eine Authentifizierung und dadurch dass das eins zu eins eine Verbindung ist, sind diese remote MCP Server noch nicht so extremst verbreitet. Aber das wird halt auch kommen. Du kannst also a kannst du deinen Server bei dir lokal laufen und per Web API auf irgendwelche Remote Services zugreifen, das ist kein Problem oder du kannst halt auch tatsächlich eine eigene Server Instanz bei Cloudflare buchen, die der läuft dann, aber du brauchst halt wieder für jeden Client deinen eigenen Server, den du hochfahren musst, darum so mega intuitiv ist das tatsächlich nicht.

Robert: Okay, aber es ergibt ja irgendwie auch architektonischen Sinn. Wenn ich die HTTP Ebene nutzen möchte, vom LLM, also nicht direkt das LLM, aber das der Client, in dem das LLM auch mit drin ist. Wenn ich die HTTP Ebene nutzen möchte, um mit einem Server zu sprechen, dass ich den Rückkanal eben offen halte, weil sonst müsste ja der MCP Client pollen wie verrückt. Und eben das muss ja auch jemand implementieren, dass will man vielleicht nicht implementieren, weil man möchte ja vielleicht auch dann drauf reagieren, wenn das Ergebnis eben zurückkommt. Da ist SSE ja eine schöne Geschichte für prinzipiell.

Ole: Ja, also man hätte es auch mit Sessions, Tokens und so weiter lösen können. ist ja nicht so, dass jede Verbindung im Web stateful ist, die wird ja sagen die Minderheit ist das stateful. Es hätte schon Prinzipien gegeben, aber ich glaube, weil es eigentlich weniger für Menschennutzung gedacht war und für AI Agents gedacht ist, war der Default, von dem sie damals ausgingen, dass du halt ein Docker Container und da läuft dein Client und deine drei Server. Also irgendwo habe ich gelesen, es ist wie eine Fernbedienung und so stellt man sich das Bild halt auch so ein bisschen vor, dass Large Language Model sitzt auf seinem Sofa und es hat fünf Fernbedienungen und kann damit die Kanäle umschalten und rausfinden, was man braucht.

Robert: Ja, es ist auch noch ein schönes Beispiel. Also lasst euch mal Metaphern für MCP von ChatGPT erstellen, wenn euch das mit dem USB-C und unserer Fernbedienung nicht gefällt. Wir haben nämlich schon von ein paar Kollegis Ärger bekommen, das wäre nicht ganz korrekt, dass wir USB-C bemühen. Ich finde es trotzdem weiter, es bleibt eine schön griffige Metapher, die viele Leute auch verstehen. So, jetzt haben wir die die Kernkonzepte von dem MCP Server besprochen. Gibt’s auch SDKs? Also, wenn ich jetzt sage, ich will jetzt heute meinen MCP Server für mein Tool XY schreiben, um das anbindbar zu machen. Was was kann ich denn da fertiges nehmen?

Ole: Die gibt’s alle schon fertig. Es gibt sie in Python und Typescript waren die ersten und ich glaube das Java SDK ist jetzt auch schon raus und da tut sich auch ganz viel. Also, wie gesagt, der Hype Train für MCP rollt mit einer wahnwitzigen Geschwindigkeit und jeden Tag gibt’s eigentlich neue Features und neue Veröffentlichungen und ja, eigentlich ist es fast fertig. Es gibt Beispielprojekte, die du ihm sagen mitgeben kannst, deinem Claude Code als schau dir mal an, wie man das so richtig macht und diese Beispielprojekte verwenden dann schon diese SDKs und damit ist es ein ziemlich trivial sich so ein MCP Server zu schreiben.

Robert: Ich habe auch seit Wochen die die Model Context Protocol.io Website, die verlinken wir natürlich auch hier. Ist die offizielle Spezifikations Website, bietet auch noch mehr als die reine Spezifikation, Tutorials, die Links zu den SDKs und diese SDK Spalte in der Zeitbar wird einfach immer länger, je öfter ich aktualisiere. Kotlin habe ich vorgestern noch nicht gesehen oder letzte Woche, ich weiß schon gar nicht mehr, die Tage verschwimmen. Jetzt ist es da, C# ist da, Java ist da, Typescript ist da, Python ist da. Wenn wir die Folge ausstrahlen, wird es noch ein paar mehr geben. Unser lieber Kollege Michael Vitz hat auch schon ein ein Intro zu MCP als längeren Artikel bei uns auf dem Blog veröffentlicht. Da zeigt er auch die Verwendung des Java SDKs. Verlinken wir in den Shownotes, vielleicht habt ihr den Artikel sowieso schon gelesen oder gesehen. Der Kollege Dominik wird, wie gesagt, etwas zu Autorisierung veröffentlichen. Und es hat natürlich auch viele bei uns sonst erfasst. Ich gerade zig Kollegis, die MCP Server schreiben. Kollege Tammo hat einen MCP Server für Bean Counter geschrieben. Das ist so ein, ich weiß gar nicht, wie man das richtig zusammenfassen soll. Es ist so eine ein Tooling, eine Sprache, um Konten, Kontobewegungen oder Depotbewegungen abzubilden. Da kann man z.B. in so einem Journal seine Depotbewegungen in Plain Text irgendwie sich ablegen. Und dafür ein MCP bietet natürlich auch schöne Möglichkeiten. Was was habe ich denn letztes Jahr in welche Dinge investiert? Analysier mal mein Depot, welche Tipps hast du für mich aus Sicht eines Anlageberaters noch und so Sachen kann man damit machen. Verlinken wir ja auch mal.

Ole: Was waren meine fünf besten und schlechtesten Investitionen im letzten Jahr?

Robert: Ja, welcher am besten performt, welche haben nicht gut performt und so Sachen. Das ist ganz schön.

Robert: Kleiner Ausblick. Jeder Ausblick, den wir wagen wird uns überholen. Aber ich glaube, hier passiert wirklich gerade etwas ernst zu nehmen des, deswegen sollten wir dazu aufrufen, sich das anzusehen und zu überlegen, was können wir Hausintern im Unternehmen damit machen? Was können wir extern damit bewirken? Wie können wir unsere Dienste universeller, nicht nur für Menschen oder andere in Anführungszeichen dumme Maschinen bereitstellen, sondern auch für smarte Maschinen, nämlich KI. Da gibt’s jetzt was. Guckt’s euch an. Ich glaube, wir müssen auch noch mal ein oder zwei Anschlussfolgen hierzu machen, weil da einfach so wahnsinnig viel passiert. Was denkst du?

Ole: Ich denke auch, ein mittelguter MCP Server ist auf jeden Fall immer besser als kein MCP Server. Das ist auch nicht anders als bei Rest. Man hatte ja auch die verschiedenen Maturity Level bei Rest. Ich bin ganz sicher, wir werden auch verschiedene Maturity Level bei MCP sehen. Man muss sich da nicht überverkünsteln. Das Protokoll ist jung, das entwickelt sich noch und es ist halt auch der Einstieg, die Einstiegsschürde ist wirklich gering. Also, da muss keiner Angst vor haben, das kriegt jeder hin. Schreibt MCP Server, bleibt auf dem Laufenden. Ja.

Robert: Würdest du sagen, das fällt mir gerade noch zum Ende ein. Hypermedia hebt jetzt endlich ab. Wir predigen es ja schon seit seit vielen vielen Jahren, wenn ihr APIs baut, baut bitte Hypermedia APIs. Glaubst du, das hebt jetzt endlich ab, weil es jetzt die Maschinen gibt, die smart genug für die Erkundung und die Weiterverfolgung sind.

Ole: Ich glaube ganz viele Konzepte, die wir eigentlich schon gepredigt haben, kriegen jetzt noch mal einen neuen Boost. Schreibt vernünftige API Specs. Grüße gehen raus an Kollege Erik, der sich immer dafür eingesetzt hat. Die Leute, die das haben, werden jetzt automatisch belohnt. Hypermedia wird sich, glaube ich, durchsetzen. Was predigen wir noch? Ach unsere Data Contract Leute predigen immer, die, die die Sachen bereit oder die mit den Sachen arbeiten, sollen sich auch um die Bereitstellung kümmern, also Datenverträge, Data Contracts für die Daten schreiben. Prinzip gibt’s da ja schon gewisse Ähnlichkeiten und Überlappung. Ich glaube, alles das, was wir schon lange als gute Architektur beworben haben, bekommt dadurch noch mal einen ordentlichen Boost.

Robert: Das ist auch noch mal ein gutes Stichwort zum Schluss. Konzepte wie Data Mesh oder Data Products im kleineren, Data Contracts im kleineren, die sind davon natürlich von MCP auch alle berührt jetzt. Wenn ich in in meinem Unternehmen etwas erreichen möchte, was z.B. lautet Innovation durch Daten. Liebe Teams, übernehmt nicht nur Verantwortung für eure Systeme, übernehmt auch Verantwortung für die Daten in diesen Systemen. Wir schaffen einen Marktplatz im Unternehmen aus Daten, Datenerkundung, wie kann überhaupt Innovation im Unternehmen entstehen, auf Basis von Daten. Da ist MCP natürlich mitten drin zu sehen. Wenn ich ein Team bin, das ein System für ein System verantwortlich bin, bin ich nach Data Mesh natürlich auch für die Daten verantwortlich. Das ist ja ein sehr soziotechnisches Konzept. Verantwortung übertragen, Verantwortung dezentralisieren. MCP ist dann natürlich eine Schraube, die ein Team natürlich auch drehen kann, anbieten kann. Weil Innovation aus Daten muss ja nicht zwangsläufig nur von Menschen entstehen, die kann ja auch durch Maschinen entstehen oder von Menschen in Zusammenarbeit mit Maschinen. Und wenn das auf das Maximum vereinfacht wird durch MCP, dann kann es eigentlich nur gut sein, oder?

Ole: Auf jeden Fall und es geht ja weiter als nur Daten fetchen, es bietet ja auch den Tool Use an. Also eigentlich ist das schon die die nächste Evolutionsstufe einer guten Idee, würde ich behaupten.

Robert: Super. Dann lass uns doch hier, damit wir unsere Hörerinnen und Hörer nicht wieder mit epischen anderthalb Stunden Folgen quälen, einen Cut machen. Wenn ihr Fragen habt zu MCP, die wir hier nicht beantwortet haben, was mit Sicherheit sehr viele sind, schreibt uns eine Mail. Bitte, bitte. Oder sagt einfach mal hallo [email protected]. Wir freuen uns immer von euch zu hören, wir antworten auch immer. Das haben nach den letzten Folgen einige getan, deswegen hier noch mal der Aufruf, was wollt ihr vielleicht auch mehr wissen zu MCP? Wie sollten wir daran anknüpfen? Sollen wir mal weiter über konkrete Anwendungsfälle sprechen, sollen wir technisch tiefer abtauchen in die SDKs oder in die Spec. Was würdet ihr gerne hören? Lasst es uns wissen [email protected] oder lasst uns einfach ein Hallo da oder wie ihr das hier fandet. Wir freuen uns. Ole, wir verabschieden uns und machen Feierabend.

Ole: Ja, machen wir. Und ich glaube, es war noch nicht unsere letzte MCP Folge für dieses Jahr oder diesen Monat.

Robert: Das hoffe ich auch. Schreibt uns gerne auch, wenn euch fünf MCP Folgen pro Monat im INNOQ Podcast nerven. Mal gucken, auf wie viele wir es schaffen. Habt eine schöne Zeit. Lasst von euch hören. Bis bald. Ciao ciao.

Ole: Tschüss.

Head of Data and AI

Robert Glaser leads Data and AI at INNOQ. With roots in software engineering and a passion for creating user-friendly web applications, he now guides companies through the AI landscape, helping them develop strategies and products for challenging technical problems. Fascinated by practical uses of generative AI in software, he hosts the podcast “AI und jetzt,” discussing AI’s potential across industries. Robert bridges tech and business, advocating user-centric digitization. Off duty, he enjoys exploring the local food scene.

Senior Consultant

Ole is a Senior Consultant and Software Architect at INNOQ in Switzerland. With his broad experience in software projects, he combines technical expertise with a deep understanding of the challenges faced by modern enterprises. His focus is on translating business requirements into sustainable, future-oriented solutions. As an all-rounder, Ole feels at home across the entire stack and continuously expands his spectrum of competencies. Along with his solid backend and frontend experience, he is deeply involved with Large Language Models (LLMs) and innovative applications of Foundation Models. Ole sees great potential in these technologies to optimize business processes and unlock new value creation opportunities for clients.