Zum Hauptinhalt springen
Die MCP-Spezifikation definiert Resources als Standardweg, damit MCP-Server Dateien und andere Kontextdaten für Clients bereitstellen können. Resources sind application-driven: Die Host-Anwendung entscheidet, wie User sie entdecken, auswählen, lesen, ansehen oder anhängen. In Langdock können MCP-Resources zu regulären Datei-Anhängen werden, die User ansehen, herunterladen und an andere Tools weitergeben können.

MCP-Resources für Dateien

So funktionieren Resources

Ein MCP-Server stellt Dateien als Resources mit stabilen URIs bereit. Ein Client kann sie über resources/list entdecken und den Inhalt anschließend über resources/read abrufen. Entscheidend für Datei-Output ist die resources/read-Antwort. Resource-Inhalte können Text sein:
{
  "contents": [
    {
      "uri": "file:///reports/summary.md",
      "mimeType": "text/markdown",
      "text": "# Zusammenfassung\n\nGeneriert von meinem MCP-Server."
    }
  ]
}
Oder Binärdaten, base64-kodiert in blob:
{
  "contents": [
    {
      "uri": "file:///reports/report.pdf",
      "mimeType": "application/pdf",
      "blob": "<base64-kodierte datei-bytes>"
    }
  ]
}
Langdock liest diese contents-Einträge und speichert sie als Action-Datei-Outputs. Die uri liefert den Dateinamen, der mimeType teilt Langdock mit, wie die Datei verarbeitet werden soll, und text oder blob enthält den Dateiinhalt.

Demo-Resource-Server

Dieser minimale Server stellt eine Markdown-Datei als MCP-Resource bereit:
server.registerResource(
  "summary",
  "file:///reports/summary.md",
  {
    title: "Generierte Zusammenfassung",
    description: "Eine Markdown-Zusammenfassung vom MCP-Server",
    mimeType: "text/markdown",
  },
  async (uri) => ({
    contents: [
      {
        uri: uri.href,
        mimeType: "text/markdown",
        text: "# Zusammenfassung\n\nDiese Datei kommt aus einer MCP-Resource.",
      },
    ],
  }),
);
Wenn Langdock diese Resource liest, hängt es summary.md an die Unterhaltung an.

Anforderungen

  • Gib Dateidaten in contents zurück.
  • Gib mimeType an; Langdock braucht ihn, um die Datei korrekt zu verarbeiten.
  • Gib eine aussagekräftige uri an; das letzte Pfadsegment wird zum Dateinamen.
  • Verwende blob für Binärdateien, base64-kodiert ohne Data-URI-Präfix.
  • Verwende text für Plain Text, Markdown, JSON, HTML und andere textbasierte Dateien.

Beispiel-Resource-Output

{
  "contents": [
    {
      "uri": "file:///beispiel.txt",
      "mimeType": "text/plain",
      "text": "Hallo Welt"
    }
  ]
}
Langdock speichert das als Anhang und gibt Datei-Zugriffsmetadaten mit dem Ergebnis zurück:
{
  "files": {
    "successful_files": [
      {
        "fileName": "beispiel.txt",
        "mimeType": "text/plain",
        "status": "completed",
        "access_methods": {
          "document_search": false,
          "file_input_actions": true,
          "download_available": true
        }
      }
    ]
  }
}

Verwandte Dokumentation

FAQ

Ein MCP-Tool sollte eine Datei zurückgeben, wenn das Ergebnis besser als herunterladbare Datei funktioniert, etwa ein generiertes Dokument, eine umgewandelte Datei, ein Report, ein Export oder ein binäres Asset.
Prüfe, ob der MCP-Server die Datei als unterstützte Resource bereitstellt, die erwarteten Metadaten zurückgibt und ein Format verwendet, das Langdock in einen Anhang umwandeln kann. Bestätige außerdem, dass das Tool erfolgreich durchgelaufen ist.