An AI 代理在渲染單頁之前,應先向文件詢問三件事:它有多少頁、每頁的尺寸是多少,以及是否需要密碼。GroupDocs.Viewer.Mcp 伺服器透過一次簡單的呼叫(get_view_info)在本機上回覆前兩項,密碼問題則在提示中解決。代理接著只渲染重要的頁面:

contract.docx 是什麼 — 有多少頁,以及頁面尺寸為何?

包含設定與故障排除的逐步說明位於文件中:在渲染之前檢查文件頁數的方式.

為什麼要先檢查?

每一頁由 render_page 工具產生的圖像都會以內嵌 PNG 形式回傳給代理,通常有數百 KB。若代理為了找出一個表格而渲染一個 60 頁的檔案,就會為了不需要的 59 張圖像付出時間與上下文窗口的代價。檢查工具 get_view_info 不會渲染任何內容。它回傳一個小型 JSON 物件,讓渲染決策基於事實而非猜測。

此模式可在任何客戶端重複使用:Claude Desktop、Claude Code、Cursor、VS Code 搭配 GitHub Copilot 或 Windsurf。這是一個寫入提示的習慣,而非需要設定的功能。

問題 1:有多少頁?

get_view_info 會回傳 pageCount。這是唯一防止已記錄的尖銳邊緣的保護:render_page 不會檢查頁碼是否超出文件範圍。若要求渲染 12 頁檔案的第 40 頁,仍會收到名為 <name>_page40.png 的圖像,儘管那根本不是第 40 頁。

建立此保護的提示範例:

報告有多少頁?然後顯示最後一頁。

對於試算表而言,頁數更為重要。引擎會將工作表拆分成多頁,頁數可能遠大於工作表本身的外觀。先取得頁數可避免代理渲染全部頁面。

問題 2:每頁的尺寸是多少?

這個 PDF 的頁面尺寸是什麼 — Letter 還是 A4?

回應會列出每頁的 number、width 與 height(單位為點)。612 × 792 為美國 Letter;約 595 × 842 為 A4。若文件中有橫向頁面混在直向頁面中,尺寸列表會顯示該頁,該頁通常就是有人詢問的表格或圖紙。

另外兩個欄位 name 與 visible 會在格式支援時填寫,例如工作表名稱或隱藏的投影片/工作表。否則它們分別為 null 與 true。

問題 3:檔案是否需要密碼?

get_view_info 沒有保護欄位,因此檔案類型與頁數無法告訴您是否需要密碼。受密碼保護的檔案在每次呼叫任一工具時都必須提供密碼。請在提示中提前提供:

contract.pdf 的密碼已在我的訊息中。先檢查它有多少頁,然後顯示第 2 頁。

若未提供密碼,呼叫會失敗,代理可以向您詢問密碼而不是猜測。若呼叫失敗,get_view_info 會回傳以 View-info lookup failed for 開頭的文字,後接例外類型與訊息,讓代理讀取原因並請求密碼或正確的檔名。

可重複使用的檢查後渲染提示

在渲染以下檔案的任何內容之前,先檢查其檔案類型、頁數與頁面尺寸。告訴我您找到的資訊,然後僅渲染回答我的問題所需的頁面。檔案:contract.docx。問題:終止條款位於哪裡?

代理會呼叫 get_view_info,回報檔案類型與頁數,挑選頁面,並為每個頁面呼叫 render_page。get_license_status 是伺服器上的第三個工具;當您需要知道渲染的頁面是否會加上浮水印時,請使用它。

範例會話

基於文件回應結構的示意,非實際截圖。

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?

代理決定了什麼,引擎又做了什麼?

步驟 代理 引擎
選擇檔案 從您的提示中取得檔案名稱 在儲存資料夾中解析,若名稱不匹配則列出可用檔案
檢查 判斷哪些問題重要 回傳檔案類型、頁數與頁面尺寸
選取頁面 將您的問題映射到頁碼 無
渲染 為每個選定的頁面呼叫 render_page 產生 PNG

誠實的限制

  • Evaluation mode. 渲染的頁面會帶有評估浮水印,且伺服器同時最多只能開啟 15 份文件。請先詢問「Viewer 伺服器是否已授權?」讓代理在依賴輸出前呼叫 get_license_status。
  • The page count does not choose pages for you. get_view_info 只告訴您哪些頁面存在,並不會指明哪一頁包含答案。為此,請渲染目錄頁或幾個候選頁面。
  • PNG only. render_page 沒有格式選項。

FAQ

How can an AI agent get the page count of a PDF? 若 Viewer 伺服器已連線,Claude 可以呼叫 get_view_info 並讀取 pageCount,無需渲染任何內容。答案直接來自文件,而非猜測。

Can a document info MCP tool tell the agent which pages to render? 可以。先提供頁數與尺寸,然後告訴它您在找什麼。它會渲染能回答問題的頁面。

Does inspecting a document upload it anywhere? 不會。伺服器會從您設定的資料夾讀取檔案,並將小型 JSON 物件回傳給您的客戶端。

深入了解