Sie können einem KI‑Agenten eine Dokumentenseite anzeigen lassen, anstatt einen Textdump davon zu lesen. Der GroupDocs.Viewer.Mcp‑Server rendert jede Seite einer PDF‑, Word‑, Excel‑ oder PowerPoint‑Datei als PNG und gibt sie an den Agenten zurück, und das geschieht lokal auf Ihrem Rechner:

Wie viele Seiten hat report.pdf? Zeigen Sie mir dann die letzte.

Die schrittweise Version mit Konfiguration und Fehlersuche finden Sie in der Dokumentation: Wie man einem KI‑Agenten Dokumentenseiten anzeigen lässt.

Warum schlägt die Textextraktion bei echten Dokumenten fehl?

Ein Textextraktor gibt Zeichen in Lesereihenfolge zurück. Er liefert nicht das Balkendiagramm zwischen zwei Absätzen, den „APPROVED“-Stempel in der Ecke, das Spaltenlayout einer Preistabelle oder eine Seite, die ein Scan ist und überhaupt keine Zeichen enthält. Ein Agent, der auf dieser Ausgabe basiert, beantwortet Fragen selbstbewusst über ein Dokument, das er nur zur Hälfte gesehen hat, und die fehlende Hälfte ist in der Regel der Teil, nach dem Sie gefragt haben.

Die Lösung ist nicht ein besserer Prompt. Es ist ein anderer Input: die Seite als Bild, das einem Modell übergeben wird, das Bildeingaben akzeptiert.

Falscher Ansatz: Alles durch einen Textextraktor leiten

Der gängige Standard besteht darin, das Dokument in Text zu konvertieren, den Text in das Kontextfenster einzufügen und Fragen zu stellen. Das funktioniert für Fließtext. Es scheitert auf vier Arten, die Sie bei jedem eigenen Dokument überprüfen können:

  • Das Layout ist verloren, sodass „steht die Summe in der rechten Spalte?“ nicht beantwortet werden kann.
  • Zahlen in Diagrammen und Grafiken fehlen, weil sie gezeichnet und nicht getippt sind.
  • Stempel, Unterschriften und Handschriften fehlen.
  • Ein gescanntes PDF liefert keinen Text.

Ein Modell kann keine Informationen wiederherstellen, die verloren gingen, bevor es das Dokument gesehen hat.

Richtiger Ansatz: Eine PDF‑Seite für das LLM als Bild rendern

render_page rendert eine Seite als PNG, gibt das Bild inline an den Agenten zurück und speichert eine Kopie in Ihrem Ausgabeverzeichnis unter <name>_page<N>.png. Der Server unterstützt über 170 Formate, darunter PDF, DOCX, XLSX, PPTX, ODT, RTF, HTML, EML und MSG. Ein vision‑fähiges Modell sieht dann die Seite so, wie Sie sie sehen würden.

Der Agent sollte die Seitenzahlen nicht raten, daher kombiniert er render_page mit get_view_info, das den Dateityp, die Seitenanzahl und die Größe jeder Seite zurückgibt, ohne etwas zu rendern. Ein drittes Werkzeug, get_license_status, meldet den aktiven Lizenzierungsmodus.

Wie starte ich den Server für Claude, Cursor oder Copilot?

Das Docker‑Image ist eigenständig:

docker run --rm -i -v $(pwd)/documents:/data \
  ghcr.io/groupdocs-viewer/viewer-net-mcp:latest

Mit installiertem .NET 10‑SDK führt dnx GroupDocs.Viewer.Mcp --yes denselben Server ohne Docker aus. Registrieren Sie ihn in Claude Desktop, Claude Code, Cursor, VS Code mit GitHub Copilot, Windsurf und anderen Clients; die Hub‑Seite listet die genaue Konfiguration für jeden auf. Der Client startet den Server als Kindprozess und kommuniziert über Standard‑Input und -Output, sodass kein eingehender Port und kein Endpunkt gesichert werden muss.

Beispiel‑Sitzung

Dies ist eine Illustration, die aus dem dokumentierten Verhalten der beiden Werkzeuge erstellt wurde, kein aufgenommenes Bildschirmfoto.

You:   How many pages does report.pdf have? Then show me the last one.

Agent: [calls get_view_info on report.pdf]
       report.pdf is a PDF with 2 pages, both 612 x 792 points (US Letter).
       [calls render_page with page = 2]
       Page 2 of 'report.pdf' Saved to: <output folder>/report_page2.png
       Here is what page 2 shows: ...

Das Bild erscheint inline in Clients, die es anzeigen. Die Textantwort ist die Beschreibung des Agenten dessen, was er auf der Seite sieht.

Was entscheidet der Agent und was macht die Engine?

Der Agent entscheidet, welche Seite die Frage beantwortet und was er das Modell darüber fragen soll. Die Engine übernimmt den Teil, der exakt sein muss: das Öffnen der Datei, das Paginieren gemäß der Dokumentenpaginierung und das Erzeugen des PNG. Das Modell muss das Seitenlayout nie erraten, weil es die gerenderte Seite erhält.

Ehrliche Grenzen

  • Evaluierungsmodus. Ohne Lizenz enthalten gerenderte Seiten ein Evaluierungs‑Wasserzeichen und ein Server‑Prozess öffnet höchstens 15 Dokumente. Das Wasserzeichen kann das Detail, nach dem Sie fragen, verdecken. Fragen Sie den Agenten „Ist der Viewer‑Server lizenziert?“, damit er get_license_status aufruft, bevor Sie sich auf das Gelesene verlassen.
  • Nur PNG. Die Ausgabe ist ein PNG‑Bild; es gibt keine Formatoption.
  • Keine Seitenzahl‑Prüfung. render_page verwirft keine Seitenzahl, die über die letzte Seite hinausgeht. Prüfen Sie zuerst die Anzahl mit get_view_info.
  • Das Modell muss Bilder akzeptieren. Bei einem reinen Text‑Modell erhält der Agent zwar den gespeicherten Dateipfad, kann Ihnen aber nicht sagen, was auf der Seite ist.
  • Bilder sind groß. Jede Seite ist ein Inline‑PNG, oft einige hundert Kilobyte. Rendern Sie nur die Seiten, die die Aufgabe benötigt, nicht die gesamte Datei.
  • Ein Element verlässt die Maschine. Das gerenderte Bild geht zum Agenten und von dort zu dem jeweiligen Modell. Ein lokal gehostetes Modell hält alles auf der Maschine.

FAQ

Kann Claude meine PDF‑Seite und ihr Layout sehen? Ja, wenn die PDF‑Seite zu einem Bild gerendert wird und das verwendete Claude‑Modell Bildeingaben akzeptiert. render_page erzeugt dieses Bild lokal und gibt es an den Client zurück.

Muss ich das Dokument irgendwo hochladen, um es zu rendern? Der Server liest die Datei aus dem von Ihnen gemounteten Ordner und schreibt das Bild daneben; das Dokument wird vom Server nicht hochgeladen. Das Seitenbild wird jedoch an das Modell Ihres Agenten gesendet.

Funktioniert es für Excel und PowerPoint, nicht nur für PDF? Ja. PowerPoint rendert ein Bild pro Folie, und Excel‑Blätter werden in Seiten aufgeteilt, wobei die Anzahl über get_view_info sichtbar ist.

Tiefer einsteigen