Můžete nechat AI agenta podívat se na stránku dokumentu místo toho, aby četl textový výpis. Server GroupDocs.Viewer.Mcp vykreslí libovolnou stránku PDF, Word, Excel nebo PowerPoint souboru jako PNG a vrátí ji agentovi, a to lokálně na vašem počítači:

Kolik stránek má soubor report.pdf? Pak mi ukaž poslední.

Postupná verze s konfigurací a řešením problémů je v dokumentaci: How to let an AI agent see document pages.

Proč selhává extrakce textu u reálných dokumentů?

Extraktor textu vrací znaky ve čtecím pořadí. Nevrací sloupcový graf mezi dvěma odstavci, razítko „APPROVED“ v rohu, rozložení sloupců cenové tabulky ani stránku, která je naskenovaná a neobsahuje žádné znaky. Agent pracující s tímto výstupem odpovídá sebejistě o dokumentu, který viděl jen z poloviny, a chybějící polovina je obvykle ta část, na kterou se ptáte.

Oprava není lepší prompt. Jde o jiný vstup: stránku jako obrázek, předanou modelu, který přijímá vstup ve formě obrázku.

Špatný přístup: posílat vše přes extraktor textu

Obvyklý výchozí postup je převést dokument na text, vložit text do kontextového okna a klást otázky. Funguje pro prose. Selže ve čtyřech ohledech, které můžete ověřit na libovolném svém dokumentu:

  • Rozložení zmizí, takže otázka „je celková částka ve pravém sloupci?“ nemůže být zodpovězena.
  • Čísla v grafech a diagramech zmizí, protože jsou kreslená, nepsaná.
  • Razítka, podpisy a ručně psaný text zmizí.
  • Naskenovaný PDF neobsahuje žádný text.

Model nemůže opravit informace, které byly ztraceny ještě před tím, než dokument viděl.

Správný přístup: vykreslit stránku PDF jako obrázek pro LLM

render_page vykreslí jednu stránku jako PNG, vrátí obrázek inline agentovi a uloží kopii do výstupní složky jako <name>_page<N>.png. Server podporuje více než 170 formátů, včetně PDF, DOCX, XLSX, PPTX, ODT, RTF, HTML, EML a MSG. Model s vizuálními schopnostmi pak vidí stránku tak, jak byste ji viděli vy.

Agent by neměl hádat čísla stránek, proto kombinuje render_page s get_view_info, který vrací typ souboru, počet stránek a velikost každé stránky, aniž by cokoli vykresloval. Třetí nástroj, get_license_status, hlásí aktivní licenční režim.

Jak spustím server pro Claude, Cursor nebo Copilot?

Docker image je samostatný:

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

S nainstalovaným .NET 10 SDK můžete spustit stejný server bez Dockeru pomocí dnx GroupDocs.Viewer.Mcp --yes. Zaregistrujte jej v Claude Desktop, Claude Code, Cursor, VS Code s GitHub Copilot, Windsurf a dalších klientech; stránka hubu uvádí přesnou konfiguraci pro každý případ. Klient spustí server jako podřízený proces a komunikuje s ním přes standardní vstup a výstup, takže není potřeba žádný vstupní port ani zabezpečený endpoint.

Ukázková relace

Jedná se o ilustraci postavenou na zdokumentovaném chování obou nástrojů, ne o zachycený screenshot.

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 162 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: ...

Obrázek se zobrazí inline v klientech, které jej podporují. Textová odpověď je popis agenta toho, co na stránce vidí.

Co rozhodne agent a co dělá engine?

Agent rozhodne, která stránka odpovídá na otázku a co se má modelu o ní zeptat. Engine provádí část, která musí být přesná: otevření souboru, stránkování podle toho, jak dokument stránkuje, a vytvoření PNG. Model už nikdy nemusí hádat rozložení stránky, protože dostane vykreslenou stránku.

Upřímná omezení

  • Evaluační režim. Bez licence mají vykreslené stránky evaluační vodoznak a serverový proces otevře maximálně 15 dokumentů. Vodoznak může zakrýt detail, na který se ptáte. Zeptejte se agenta „Je server Viewer licencovaný?“, aby zavolal get_license_status dříve, než se spolehnete na výstup.
  • Pouze PNG. Výstup je PNG obrázek; není k dispozici žádná volba formátu.
  • Žádná kontrola čísla stránky. render_page neodmítne číslo stránky mimo rozsah. Nejprve zkontrolujte počet pomocí get_view_info.
  • Model musí přijímat obrázky. U modelu, který pracuje jen s textem, agent stále získá cestu k uloženému souboru, ale nedokáže vám říct, co je na stránce.
  • Obrázky jsou velké. Každá stránka je inline PNG, často několik stovek kilobajtů. Vykreslete jen stránky, které úloha potřebuje, ne celý soubor.
  • Jedna věc opustí stroj. Vykreslený obrázek jde agentovi a odtud k použitému modelu. Lokálně hostovaný model vše ponechá na stroji.

FAQ

Může Claude vidět moji PDF stránku a její rozložení? Ano, pokud je PDF stránka vykreslena do obrázku a model Claude, který používáte, přijímá vstup ve formě obrázku. render_page vytvoří tento obrázek lokálně a vrátí jej klientovi.

Musím dokument kamkoli nahrávat, aby se vykreslil? Server čte soubor ze složky, kterou připojíte, a zapíše obrázek vedle něj; dokument není serverem nahráván. Obrázek stránky jde modelu vašeho agenta.

Funguje to i pro Excel a PowerPoint, ne jen pro PDF? Ano. PowerPoint vykresluje jeden obrázek na snímek a listy Excelu jsou rozděleny na stránky, přičemž počet je viditelný přes get_view_info.

Jděte hlouběji