← Homelab

Von der Anfrage zum Werkzeug: Retrieval-Query und der MCP-Server

Nach dem letzten Teil war die Datenbank gefüllt, aber es konnte noch niemand eine Frage stellen.

4 Min. Lesezeit
Von der Anfrage zum Werkzeug: Retrieval-Query und der MCP-Server
Inhalt · 6 Abschnitte
  1. Die Abfrage: die nächsten Nachbarn finden
  2. Vom Skript zum Werkzeug: MCP
  3. Die Überraschung: eine neue Version
  4. Was sich für den Redakteur ändert
  5. Fazit
  6. Ausblick

Nach dem letzten Teil war die Datenbank gefüllt, aber es konnte noch niemand eine Frage stellen. Dieser Teil schließt die Lücke in zwei Schritten: erst eine Abfragefunktion, die zu einer Suchanfrage die passendsten Notizen findet, dann ein Werkzeug, das der Redakteur selbst aufrufen kann. Unterwegs wartete eine Überraschung bei der Software-Version.

Die Abfrage: die nächsten Nachbarn finden

Eine Suchanfrage läuft in drei Schritten ab. Zuerst übersetzt dasselbe Modell, das die Notizen eingelesen hat, den Suchtext in eine Zahlenreihe. Dann sucht die Datenbank die gespeicherten Zahlenreihen, die dieser am nächsten liegen. Zurück kommen die besten Treffer mit einem Ähnlichkeitswert zwischen 0 und 1. Die Fachsprache nennt das Top-k-Abfrage: die k ähnlichsten Einträge, wobei k die gewünschte Trefferzahl ist.

Die Funktion lässt sich zusätzlich eingrenzen, etwa auf einen Quelltyp oder auf Cluster, die noch offen sind. Der Redakteur kann so gezielt fragen: "Gibt es zu dieser Notiz schon einen offenen Cluster?" Die dafür nötigen Felder fehlten im ersten Schema und wurden beim Bau nachgetragen. Danach kam ein Plausibilitätstest an einem Fall, den der Redakteur bereits real geclustert hatte. Die Anfrage "Proxmox Backup Server, TrueNAS Storage und ZFS für Homelab-Infrastruktur" lieferte auf Platz 1 die passende Cluster-Zusammenfassung mit einem Wert von 0,849, dahinter sieben thematisch treffende Eingangsnotizen.

Vom Skript zum Werkzeug: MCP

Damit der Redakteur die Abfrage nutzen kann, braucht er einen Zugang, der nicht direkt in die Datenbank führt. Dafür dient MCP, das Model Context Protocol. Es ist ein Standard, über den KI-Agenten externe Werkzeuge ansprechen, vergleichbar mit einer genormten Steckdose: Egal, was dahintersteckt, der Agent sieht nur das fertige Werkzeug. Der MCP-Server im Stack bietet genau eines an, search_homelab_knowledge. Es nimmt eine Suchanfrage samt Filtern entgegen, lässt sie berechnen, fragt die Datenbank und gibt die Treffer mit ihrem Ähnlichkeitswert zurück.

Der Server läuft als eigener Dienst im Compose-Stack und braucht keine Grafikkarte, denn er führt nur eine Datenbankabfrage und eine einzelne Embedding-Berechnung pro Anfrage aus. Im lokalen Netz erreichbar ist er für die Claude-Remote-LXC, die ihn als Client eingetragen hat. Die Statusmeldung "Connected" bestätigte die Verbindung. Ich habe das Werkzeug bewusst für den ganzen Benutzer registriert und nicht nur für ein Projekt, es steht damit jeder Claude-Remote-Sitzung zur Verfügung, nicht nur dem Redakteur.

Die Überraschung: eine neue Version

Beim Bau des Servers zeigte sich, dass das offizielle Python-Paket für MCP inzwischen in der Version 2.0.0 vorlag, deutlich neuer als gängige Anleitungen. Die dort übliche Klasse FastMCP gab es in dieser Version nicht mehr. Sie war durch MCPServer ersetzt worden, mit anderem Aufbau und anderem Startbefehl. Die Anpassung war schnell erledigt. Ein Test mit einem echten MCP-Client lieferte danach identische Ergebnisse wie die direkte Abfrage, und ein zweiter Test nach dem Verpacken in einen Container ebenfalls. Die Lehre: Bei schnelllebiger Software zählt die Dokumentation der installierten Version, nicht das Tutorial aus dem Netz.

Was sich für den Redakteur ändert

Der Abgleich mit Bestehendem läuft jetzt über das Werkzeug. Der breite Lesezugriff auf verarbeitete Notizen und offene Cluster früherer Läufe ist für diesen Schritt gestrichen. Damit ist eine Regel, die im Konzept noch eine bloße Konvention war, technisch erzwungen: Der Redakteur verarbeitet Batches und kann gar nicht mehr alles auf einmal einlesen.

Fazit

Aus der gefüllten Datenbank ist ein Werkzeug geworden, das ein KI-Agent selbstständig nutzen kann. Aus einer Absprache ("nur Batches lesen") wurde eine Grenze, die das System selbst zieht.

Ausblick

Ob das Werkzeug im Alltag hält, was der Plausibilitätstest verspricht, zeigt erst ein echter Lauf. Genau darum geht es im nächsten Teil, samt einer unbequemen Zahl hinter der schönen Demo. Die Frage, wie sich sehr lange Texte in der Suche verhalten, bleibt für einen späteren Teil offen.

Porträt Moritz Conjé

Geschrieben von

Moritz Conjé

Senior Projektmanager & Konzepter für Verwaltungsdigitalisierung

Projektmanager bei Dataport AöR, zertifiziert nach PRINCE2 Agile und IPMA Level D. Ich führe Teams zwischen Fachbereich, Management und IT und ordne Technik für Entscheidungen ein.

Meine Rolle in dieser Serie: Konzeption, Planung, Steuerung und Abnahme – die technische Umsetzung erfolgt KI-gestützt.

Beitrag teilen
LinkedIn Xing

Weiterlesen

Mehr aus der Serie KI-Diskurs

Alle 21 Teile

Remote Claude nutzt LiteLLM

Remote Claude nutzt LiteLLM

Im Beitrag über das Gateway habe ich einen zentralen Zugang gebaut, über den KI-Werkzeuge die Suche und das Regelwerk meines Second Brains erreichen. Zwei Wochen später fiel mir auf, dass ihn noch niemand benutzte. Den Anstoß gab etwas ganz anderes: ...
Eine eigene Statuszeile fürs Terminal: mehr Überblick bei der Arbeit mit Claude Code

Eine eigene Statuszeile fürs Terminal: mehr Überblick bei der Arbeit mit Claude Code

Wer täglich mit einer KI im Terminal arbeitet, kennt das Problem: Wie ausgelastet die laufende Sitzung gerade ist, wie nah man an ein Nutzungslimit kommt oder was sie bereits gekostet hat, bleibt normalerweise unsichtbar. Man merkt es meist erst, wen ...
Fähigkeiten ergänzen: passende Skills für die Rollen und Aufgaben finden

Fähigkeiten ergänzen: passende Skills für die Rollen und Aufgaben finden

Ein KI-Assistent kann schon ohne Erweiterungen erstaunlich viel. Für ein konkretes Projekt reicht „erstaunlich viel" aber selten als Arbeitsweise. Beim Aufbau des Second Brain kamen zuletzt drei sehr unterschiedliche, eigenständige Projekte zusammen: ...