Ein Jahr MCP: was daraus geworden ist
- Matt
Vor ziemlich genau einem Jahr habe ich den ersten MCP-Server in C# gebaut, damals mit einem SDK in Vorabversion und der Vermutung, dass sich das durchsetzen könnte. Zeit für eine Zwischenbilanz.
Was sich bewahrheitet hat
Das Protokoll ist der gemeinsame Nenner geworden. Ein Server, den ich für ein Werkzeug schreibe, funktioniert mit verschiedenen Clients, ohne dass ich etwas anpasse. Genau das war das Versprechen, und es wird eingelöst. Vor zwei Jahren hätte dieselbe Anbindung pro Client neu geschrieben werden müssen.
Das C#-SDK ist stabiler geworden. Die Methodennamen, über die ich mich damals beschwert habe, liegen fest, und das Paket ist keine Vorabversion mehr. Der Code aus dem alten Beitrag läuft mit kleinen Anpassungen weiter.
Was ich falsch eingeschätzt habe
Ich hatte gedacht, der Reiz liege darin, Modellen Zugriff auf eigene Daten zu geben. Bei mir ist es umgekehrt gekommen: Die nützlichsten Server sind die, die etwas tun, nicht die, die etwas liefern. Ein Server, der Testdaten in eine Datenbank schreibt, ein Deployment anstößt oder Logdateien filtert, spart mehr Zeit als einer, der Dokumentation durchsuchbar macht.
Für Dokumentation ist RAG meist der bessere Weg, weil man dort die Kontrolle über die Trefferauswahl behält.
Der Punkt, der mir Sorgen macht
Ein MCP-Server läuft mit den Rechten dessen, der ihn startet. Wer sich einen Server aus einem fremden Repository installiert, führt fremden Code mit den eigenen Rechten aus, inklusive Zugriff auf alles, was der eigene Benutzer darf.
Das ist nicht neu, es ist dasselbe Problem wie bei jedem Paket aus einer Fremdquelle. Neu ist die Selbstverständlichkeit, mit der das inzwischen passiert. Ich habe in der Konfiguration eines Kollegen sieben Server gesehen, von denen er bei dreien nicht sagen konnte, woher sie stammen.
Meine Regel für mich: eigene Server selbst schreiben, fremde nur, wenn ich den Quelltext gelesen habe. Das klingt streng und kostet Zeit. Der Aufwand für einen einfachen Server liegt bei dreißig Zeilen, das war schon vor einem Jahr so.
Was ich mir wünsche
Rechte pro Server. Dass ein Server für Logdateien nur lesen darf und einer für Deployments eine Bestätigung braucht, müsste der Client durchsetzen, nicht der Server versprechen. Daran wird gearbeitet, fertig ist es nicht.