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 物件回傳給您的客戶端。
深入了解
- 文件說明,標準操作方式: 在渲染之前檢查文件頁數的方式
- Documentation hub: GroupDocs.Viewer MCP Server
- 從這裡開始: 多模態代理需要像素,而不僅是文字
- 相關: 使用 MCP 自動化產生報告的螢幕截圖等級頁面圖像
- 相關: 答案在圖表中:AI 代理透過 MCP 閱讀圖表與掃描檔
- 本地部署與安全模型: AI 文件處理的 3 種架構,以及能將檔案保留在內部網路的方案
- Questions: GroupDocs Viewer 論壇
- Source: GroupDocs.Viewer.Mcp on GitHub