An AIエージェントは、単一ページをレンダリングする前に、ドキュメントに対して3つのことを尋ねるべきです:ページ数、各ページのサイズ、そしてパスワードが必要かどうかです。GroupDocs.Viewer.Mcp サーバーは、最初の2つに対してローカルで実行される安価な呼び出し(get_view_info)で答え、パスワードの質問はプロンプトで解決します。エージェントは必要なページだけをレンダリングします:

contract.docx は何ですか — ページ数とページサイズは?

ステップバイステップ版は設定とトラブルシューティングを含むドキュメントにあります: レンダリング前にドキュメントのページ数を確認する方法.

なぜ最初に検査するのか?

render_page ツールが生成する各ページは、インラインPNGとしてエージェントに返され、数百キロバイトになることが多いです。1つの表を見つけるために60ページのファイルをレンダリングするエージェントは、不要な59枚の画像に時間とコンテキストウィンドウを費やします。検査ツール get_view_info は何もレンダリングしません。小さなJSONオブジェクトを返すので、何をレンダリングするかの判断は推測ではなく事実に基づいて行われます。

このパターンは任意のクライアントで再利用可能です:Claude Desktop、Claude Code、Cursor、GitHub Copilot または Windsurf を使用した VS Code。これは設定する機能ではなく、プロンプトに組み込む習慣です。

質問 1: ページ数は何ページですか?

get_view_info は pageCount を返します。これは文書化された鋭いエッジに対する唯一のガードです:render_page はページ番号がドキュメント内にあるかをチェックしません。12ページのファイルでページ40を要求すると、実際にはページ40ではないページの画像が <name>_page40.png として保存されて返されます。

ガードを組み込むプロンプト例:

レポートは何ページありますか? そして最後のページを見せてください。

スプレッドシートの場合、ページ数はさらに重要です。エンジンはシートをページに分割し、シートの見た目よりもはるかに多くなることがあります。最初に把握することで、エージェントがすべてのページをレンダリングするのを防げます。

質問 2: 各ページのサイズは何ですか?

このPDFのページサイズは何ですか — Letterですか、A4ですか?

レスポンスは各ページについて number、width、height をポイント単位で一覧します。612×792 は US Letter、約595×842 は A4 です。縦向きページの中に横向きページが1枚あるドキュメントは、サイズ情報にそれが示され、そのページはしばしば質問対象の表や図面です。

name と visible の2つのフィールドは、フォーマットにそれらが存在する場合に埋められます。例えばワークシート名や非表示スライド・シートです。存在しない場合はそれぞれ 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 ツールはサーバー上の3番目のツールです;レンダリングされたページに透かしが入るかどうかを知りたいときに使用してください。

例セッション

ドキュメント化されたレスポンス形状に基づくイラストで、実際のスクリーンショットではありません。

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 を呼び出します。
  • ページ数はページを選択しません。 get_view_info は存在するページを示すだけで、どのページに答えがあるかは示しません。そのためには、目次ページやいくつかの候補ページをレンダリングしてください。
  • PNG のみ。 render_page にはフォーマットオプションがありません。

FAQ

AIエージェントはPDFのページ数をどう取得できますか? Viewerサーバーが接続されていれば、Claude は get_view_info を呼び出し、何もレンダリングせずに pageCount を読み取れます。答えはドキュメントから取得され、推測ではありません。

ドキュメント情報MCPツールはエージェントにどのページをレンダリングすべきか教えられますか? はい。まずページ数とサイズを渡し、次に探しているものを伝えてください。質問に答えるページだけをレンダリングします。

ドキュメントを検査するとどこかにアップロードされますか? いいえ。サーバーは設定したフォルダーからファイルを読み取り、小さなJSONオブジェクトをクライアントに返します。

さらに深く