Een AI‑agent moet een document drie dingen vragen voordat hij een enkele pagina rendert: hoeveel pagina’s het heeft, hoe groot elke pagina is, en of er een wachtwoord nodig is. De GroupDocs.Viewer.Mcp‑server beantwoordt de eerste twee met één goedkope oproep (get_view_info), lokaal op uw machine uitgevoerd, en de wachtwoordvraag wordt in de prompt afgehandeld. De agent rendert vervolgens alleen de pagina’s die relevant zijn:

Wat is contract.docx — hoeveel pagina’s, en welke paginagrootte?

De stapsgewijze versie met configuratie en probleemoplossing staat in de documentatie: Hoe controleer je de pagina’s van een document voordat je ze rendert.

Waarom eerst inspecteren?

Elke pagina die de render_page‑tool produceert, komt terug naar de agent als een inline PNG, vaak enkele honderden kilobytes. Een agent die een bestand van 60 pagina’s rendert om één tabel te vinden, betaalt voor 59 afbeeldingen die hij niet nodig had, zowel in tijd als in contextvenster. De inspectietool, get_view_info, rendert niets. Hij retourneert een klein JSON‑object, zodat de beslissing over wat te renderen wordt genomen op basis van feiten in plaats van giswerk.

Het patroon is herbruikbaar in elke client: Claude Desktop, Claude Code, Cursor, VS Code met GitHub Copilot of Windsurf. Het is een gewoonte die je in een prompt opneemt, geen functie die je configureert.

Vraag 1: Hoeveel pagina’s zijn er?

get_view_info retourneert pageCount. Dit is de enige bescherming tegen een gedocumenteerde valkuil: render_page controleert het paginanummer niet ten opzichte van het document. Vraag om pagina 40 van een bestand van 12 pagina’s en je ontvangt nog steeds een afbeelding, opgeslagen als <name>_page40.png, van een pagina die niet pagina 40 is.

Een prompt die de bescherming opneemt:

Hoeveel pagina’s heeft het rapport? Toon me dan de laatste.

Voor spreadsheets is het aantal nog belangrijker. De engine splitst een blad in pagina’s, en het aantal kan veel groter zijn dan het blad lijkt. Het eerst weten voorkomt dat de agent ze allemaal rendert.

Vraag 2: Wat is de grootte van elke pagina?

Wat is de grootte van de pagina’s in deze PDF — Letter of A4?

De respons geeft number, width en height voor elke pagina weer, in points. 612 bij 792 is US Letter; ongeveer 595 bij 842 is A4. Een document met één liggende pagina tussen staande pagina’s toont dit in de afmetingen, en die pagina is vaak de tabel of de tekening waar iemand naar vraagt.

Twee andere velden, name en visible, worden ingevuld wanneer het formaat ze heeft, bijvoorbeeld werkbladnamen en verborgen dia’s of bladen. Anders zijn ze null en true.

Vraag 3: Heeft het bestand een wachtwoord nodig?

get_view_info heeft geen beveiligingsveld, dus het bestandstype en het aantal pagina’s vertellen je niet of er een wachtwoord nodig is. Een wachtwoordbeveiligd bestand heeft zijn wachtwoord nodig bij elke oproep, voor beide tools. Geef het vooraf in de prompt:

Het wachtwoord voor contract.pdf staat in mijn bericht. Controleer hoeveel pagina’s het heeft, en toon me daarna pagina 2.

Zonder het wachtwoord mislukt de oproep, en kan de agent je erom vragen in plaats van te gokken. Als de oproep mislukt, retourneert get_view_info tekst die begint met View-info lookup failed for, gevolgd door het type uitzondering en het bericht, zodat de agent de reden kan lezen en om het wachtwoord of de juiste bestandsnaam kan vragen.

Een herbruikbare inspecteer-dan-render prompt

Voordat je iets rendert uit het onderstaande bestand, controleer je het bestandstype, het aantal pagina’s en de paginagroottes. Vertel me wat je hebt gevonden, en render vervolgens alleen de pagina’s die nodig zijn om mijn vraag te beantwoorden. Bestand: contract.docx. Vraag: waar staat de beëindigingsclausule?

De agent roept get_view_info aan, meldt het bestandstype en het aantal pagina’s, kiest pagina’s, en roept render_page voor elke aan. De get_license_status‑tool is de derde tool op de server; gebruik deze wanneer je moet weten of gerenderde pagina’s een watermerk krijgen.

Voorbeeldsessie

Een illustratie gebaseerd op de gedocumenteerde responsvorm, geen vastgelegde screenshot.

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?

Wat beslist de agent, en wat doet de engine?

Stap Agent Engine
Kies het bestand Neemt de bestandsnaam uit je prompt Lost het op in de opslagmap, geeft beschikbare bestanden weer als de naam niet overeenkomt
Inspecteer Bepaalt welke vragen relevant zijn Retourneert bestandstype, aantal pagina’s en paginagroottes
Selecteer pagina’s Koppelt je vraag aan paginanummers Niets
Render Roept render_page aan voor elke gekozen pagina Produceert de PNG

Eerlijke beperkingen

  • Evaluatiemodus. Gerenderde pagina’s bevatten een evaluatiewatermerk en een serverproces opent maximaal 15 documenten. Vraag “Is de viewer‑server gelicentieerd?” zodat de agent get_license_status aanroept voordat je op de output vertrouwt.
  • Het aantal pagina’s kiest de pagina’s niet voor jou. get_view_info geeft aan welke pagina’s bestaan, niet welke de antwoord bevat. Render daarvoor een inhoudspagina of een paar kandidaten.
  • Alleen PNG. Er is geen formaatoptie op render_page.

Veelgestelde vragen

Hoe kan een AI‑agent het aantal pagina’s van een PDF krijgen? Als de Viewer‑server is verbonden, kan Claude get_view_info aanroepen en pageCount lezen zonder iets te renderen. Het antwoord komt uit het document, niet uit een gok.

Kan een document‑info MCP‑tool de agent vertellen welke pagina’s gerenderd moeten worden? Ja. Geef eerst het aantal pagina’s en de afmetingen, en vertel daarna wat je zoekt. Hij rendert de pagina’s die het antwoord geven.

Uploadt het inspecteren van een document het ergens? Nee. De server leest het bestand uit de map die je configureert en retourneert een klein JSON‑object naar je client.

Ga dieper