format: "file" deklariert, fängt Langdock die Dateireferenz des LLM automatisch ab und löst sie in ein strukturiertes FileData-Objekt auf – bevor der MCP-Server den Aufruf überhaupt erhält.
Funktionsweise in Langdock
Wenn ein User eine Datei im Chat anhängt und das LLM darauf verweist (als Dateiname wiereport.pdf, als Speicherpfad wie attachment/<uuid>/<filename> oder /mnt/data/<filename>), fängt Langdock diese Referenz ab und löst sie in ein vollständiges FileData-Objekt auf – bevor es an dein MCP-Tool weitergegeben wird.
Die FileData-Struktur
Dein MCP-Tool erhält folgendes Objekt:Der .meta({ format: "file" })-Marker
Das entscheidende Signal für Langdock ist das Hinzufügen von .meta({ format: "file" }) zu deinem Zod-Schema-Feld. Beim Speichern der MCP-Integration erkennt Langdock format: "file" im JSON-Schema und speichert das Feld als FILE-Typ. Bei der Ausführung löst Langdock die Dateireferenz in ein vollständiges FileData-Objekt auf und übergibt es an deinen MCP-Server.
Datei-Input in deinem MCP-Server implementieren
Deklariere das Input-Feld als Zod-Objekt, das derFileData-Struktur entspricht. Verwende nicht z.string() – das MCP-SDK validiert Inputs vor dem Aufruf des Handlers, daher muss das Schema mit dem übereinstimmen, was es tatsächlich erhält:
Beispiel-Input und -Output
Wenn Langdock dein Tool aufruft, sendet es ein vollständig aufgelöstesFileData-Objekt:
Beispielprojekt
Das Repository langdock_mcp_file_upload ist ein minimaler, funktionierender MCP-Server, der den vollständigen Datei-Input-Flow demonstriert – von der Schema-Deklaration bis zur Verarbeitung des aufgelöstenFileData im Tool-Handler.
Verwandte Dokumentation
- Model Context Protocol (MCP) - Übersicht über MCP in Langdock
- Langdock Agent MCP Server - Deine Langdock-Agenten als MCP-Tools bereitstellen