An AI agent powinien zapytać dokument o trzy rzeczy, zanim wyrenderuje pojedynczą stronę: ile ma stron, jak duża jest każda strona i czy wymaga hasła. Serwer GroupDocs.Viewer.Mcp odpowiada na pierwsze dwa pytania jednym tanim wywołaniem (get_view_info), uruchamianym lokalnie na twoim komputerze, a kwestia hasła jest rozstrzygana w promptcie. Agent następnie renderuje tylko te strony, które mają znaczenie:

Co to jest contract.docx — ile stron i jaki rozmiar strony?

Wersja krok po kroku z konfiguracją i rozwiązywaniem problemów znajduje się w dokumentacji: Jak sprawdzić strony dokumentu przed ich renderowaniem.

Dlaczego najpierw sprawdzać?

Każda strona, którą generuje narzędzie render_page, wraca do agenta jako wbudowany PNG, często o kilku setkach kilobajtów. Agent, który renderuje 60‑stronicowy plik, aby znaleźć jedną tabelę, płaci za 59 niepotrzebnych obrazów, zarówno pod względem czasu, jak i okna kontekstu. Narzędzie inspekcyjne, get_view_info, nie renderuje nic. Zwraca mały obiekt JSON, więc decyzja o tym, co renderować, opiera się na faktach, a nie na domysłach.

Wzorzec jest wielokrotnego użytku w dowolnym kliencie: Claude Desktop, Claude Code, Cursor, VS Code z GitHub Copilot lub Windsurf. To nawyk, który wprowadzasz w promptcie, a nie funkcja, którą konfiguruje się.

Pytanie 1: Ile jest stron?

get_view_info zwraca pageCount. To jedyny mechanizm ochronny przed udokumentowanym ostrym krawędzią: render_page nie sprawdza numeru strony względem dokumentu. Poproś o stronę 40 w 12‑stronnicowym pliku, a nadal otrzymasz obraz, zapisany jako <name>_page40.png, strony, która nie jest stroną 40.

Prompt, który buduje tę ochronę:

Ile stron ma raport? Następnie pokaż mi ostatnią.

Dla arkuszy kalkulacyjnych liczba stron ma jeszcze większe znaczenie. Silnik dzieli arkusz na strony, a ich liczba może być znacznie większa niż wygląda na arkusz. Znając ją wcześniej, zapobiegasz renderowaniu ich wszystkich przez agenta.

Pytanie 2: Jaki rozmiar każdej strony?

Jaki rozmiar mają strony w tym PDF — Letter czy A4?

Odpowiedź wymienia number, width i height dla każdej strony, w punktach. 612 na 792 to US Letter; około 595 na 842 to A4. Dokument z jedną stroną w orientacji poziomej wśród stron pionowych pokazuje to w rozmiarach, a ta strona jest często tabelą lub rysunkiem, o który ktoś pyta.

Dwa inne pola, name i visible, są wypełniane tam, gdzie format je posiada, na przykład nazwy arkuszy i ukryte slajdy lub arkusze. W przeciwnym razie mają wartości null i true.

Pytanie 3: Czy plik wymaga hasła?

get_view_info nie posiada pola ochrony, więc typ pliku i liczba stron nie informują, czy potrzebne jest hasło. Plik chroniony hasłem wymaga podania hasła przy każdym wywołaniu, do dowolnego narzędzia. Podaj je od razu w promptcie:

Hasło do contract.pdf znajduje się w mojej wiadomości. Sprawdź, ile ma stron, a następnie pokaż mi stronę 2.

Bez hasła wywołanie kończy się niepowodzeniem, a agent może poprosić cię o nie zamiast zgadywać. Jeśli wywołanie się nie powiedzie, get_view_info zwraca tekst zaczynający się od View-info lookup failed for, po którym następuje typ wyjątku i komunikat, więc agent może odczytać przyczynę i poprosić o hasło lub prawidłową nazwę pliku.

Wielokrotnego użytku prompt: najpierw sprawdź, potem renderuj

Zanim wyrenderujesz cokolwiek z pliku wymienionego poniżej, sprawdź jego typ, liczbę stron i rozmiary stron. Powiedz mi, co znalazłeś, a następnie renderuj tylko te strony potrzebne do odpowiedzi na moje pytanie. Plik: contract.docx. Pytanie: gdzie znajduje się klauzula wypowiedzenia?

Agent wywołuje get_view_info, raportuje typ pliku i liczbę stron, wybiera strony i wywołuje render_page dla każdej z nich. Narzędzie get_license_status jest trzecim narzędziem na serwerze; użyj go, gdy potrzebujesz wiedzieć, czy wyrenderowane strony będą oznaczone znakiem wodnym.

Przykładowa sesja

Ilustracja oparta na udokumentowanym kształcie odpowiedzi, a nie na zrzucie ekranu.

You:   Inspect report.pdf before rendering anything.

Agent: [calls get_view_info on report.pdf]
       report.pdf: Portable Document Format File (.pdf), 2 pages.
       Page 1: 612 x 792 points (US Letter). Page 2: 612 x 792 points.
       Which page would you like me to render?

Co decyduje agent, a co robi silnik?

Krok Agent Silnik
Wybierz plik Pobiera nazwę pliku z twojego promptu Rozwiązuje ją w folderze przechowywania, wymienia dostępne pliki, jeśli nazwa nie pasuje
Sprawdź Decyduje, które pytania są istotne Zwraca typ pliku, liczbę stron i rozmiary stron
Wybierz strony Mapuje twoje pytanie na numery stron Brak
Renderuj Wywołuje render_page dla każdej wybranej strony Generuje PNG

Szczere ograniczenia

  • Tryb oceny. Renderowane strony zawierają znak wodny oceny, a proces serwera otwiera maksymalnie 15 dokumentów. Zapytaj „Czy serwer viewer jest licencjonowany?”, aby agent wywołał get_license_status przed użyciem wyniku.
  • Liczba stron nie wybiera stron za ciebie. get_view_info informuje, które strony istnieją, a nie która zawiera odpowiedź. W tym celu wyrenderuj stronę spisu treści lub kilka kandydatów.
  • Tylko PNG. Nie ma opcji formatu w render_page.

FAQ

Jak agent AI może uzyskać liczbę stron PDF? Jeśli serwer Viewer jest podłączony, Claude może wywołać get_view_info i odczytać pageCount bez renderowania czegokolwiek. Odpowiedź pochodzi z dokumentu, a nie z domysłu.

Czy narzędzie MCP informacji o dokumencie może powiedzieć agentowi, które strony renderować? Tak. Najpierw podaj liczbę stron i rozmiary, a potem powiedz, czego szukasz. Renderuje strony, które odpowiadają na pytanie.

Czy inspekcja dokumentu powoduje jego przesyłanie gdziekolwiek? Nie. Serwer odczytuje plik z folderu, który skonfigurujesz, i zwraca mały obiekt JSON do twojego klienta.

Zagłęb się