ClaudeのPDF Viewerコネクタ — 会話内でPDFを開く手順と使えるURLの範囲
ClaudeのPDF Viewerコネクタは、arxivなど許可されたURLのPDFを会話内のビューアで開くデモ用コネクタです。追加手順、開けるURLの範囲、ローカル版との違いを解説します。
ClaudeのPDF Viewerコネクタは、公開されているPDFのURLを渡すと、会話の中にPDFビューアを表示するコネクタです。コネクタディレクトリ上の説明は「arxiv.orgなどの許可されたURLからPDFを描画するデモ」で、サインインは不要です。
自分の手元のPDFを読ませる用途には向きません。向くのは、論文のURLを渡して、ページを見ながらClaudeに内容を聞く使い方です。この記事では、追加の手順、開けるURLの範囲、同じ仕組みをローカルで動かす版との違いを順に扱います。
PDF Viewerコネクタとは何か
コネクタディレクトリのページに載っている情報は次のとおりです。
| 項目 | 内容 |
|---|---|
| 名称 | 内容PDF Viewer |
| 提供元 | 内容Model Context Protocol Community |
| 表示 | 内容Anthropic verified |
| カテゴリ | 内容Productivity |
| サインイン | 内容不要 |
| 追加時期 | 内容2026年1月 |
| 提供されるツール | 内容display_pdf の1つ |
| 接続先URL | 内容https://example-server.modelcontextprotocol.io/pdf/mcp |
接続先のホスト名が example-server で始まっていることからも分かるとおり、実用サービスではなく、MCP Appsの機能を見せるサンプルです。実体は、MCP Appsの公式リポジトリ(modelcontextprotocol/ext-apps)にある examples/pdf-server で、PDF.jsを使ったインタラクティブなビューアです。
MCP Apps自体は、ツールの結果としてテキストではなく画面を返す拡張です。仕組みの全体像はMCP Appsのインタラクティブ画面、Claude側で画面つきコネクタがどう扱われるかはClaudeのインタラクティブConnectorにあります。PDF Viewerは、その実例のひとつです。
追加して開くまでの手順
PDF Viewerを会話で使うまで
- 1
コネクタのページを開く
Claudeのコネクタディレクトリで「PDF Viewer」を探し、ページの「Add to Claude」から追加します。
- 2
追加後は認証なしで使える
ディレクトリ上のサインインは「不要」で、提供されるツールは
display_pdfの1つだけです。 - 3
PDFのURLを渡して頼む
会話でURLを示し、「このPDFを開いて」と頼むと、Claudeが
display_pdfを呼び、ビューアが会話内に現れます。
頼み方の例を挙げます。
https://arxiv.org/abs/1706.03762 をPDF Viewerで開いてください。
開いたら、いま表示しているページの内容を3行で要約してください。arxivの抄録ページのURL(/abs/)は、サーバー側でPDFのURL(/pdf/)に変換される実装になっています。論文の番号だけ分かっていれば足ります。
開けるURLの範囲は資料ごとに書き方が違う
「どのURLなら開けるか」は、3つの資料で書き方が揃っていません。
| 資料 | 書かれている範囲 |
|---|---|
| コネクタのページ | 書かれている範囲セキュリティ上の理由で、限られた許可URL(例:arxiv.org)のPDFを描画する |
| サーバーのREADME | 書かれている範囲リモートはarxiv.org、biorxiv.org、medrxiv.org、chemrxiv.org、zenodo.org、osf.io、hal.science、ssrn.comなど |
server.ts のツール説明 | 書かれている範囲ローカルファイル、クライアントのroot、または「任意のHTTPS URL」 |
READMEの「Allowed Sources」節は学術系のサイトを列挙しています。一方、ツール説明は任意のHTTPS URLを受け付けると書き、URLの検証コードも、HTTPSであること(とローカルパスが許可リスト内にあること)だけを確かめています。
どちらが接続先の実際の挙動かは、手元で試すのが確実です。arxivのURLで開き、次に学術系ではない公開PDFのURLを渡してみて、拒否されるかどうかを見ます。読み込めない場合の原因は、サイト側の取得制限、HTTPでの配信、PDFではないファイルのどれかであることが多く、コネクタの許可範囲とは限りません。
ローカルのPDFは読めない
接続先はホストされたリモートサーバーなので、あなたのPCにあるファイルは渡せません。READMEによれば、ローカルファイルは「サーバー起動時のコマンドライン引数」か「クライアントのroot」で許可されたものだけが対象です。リモートで動くサーバーがあなたのディスクを見に行く構成ではありません。
手元のPDFを読ませたいなら、選択肢は3つあります。
- 会話にPDFを添付する。読み込み上限はClaudeとChatGPTのPDF読み込み上限にまとめています
- 構造化して読ませる。LlamaParseコネクタは複雑なレイアウトのPDFを対象にしています
- 墨消しや署名まで任せる。NutrientのPDF墨消しと署名が該当します
PDF Viewerコネクタが受け持つのは「公開URLのPDFを会話の中で見ながら話す」ところだけです。
ビューアの仕組みと、Claudeに渡るもの
READMEは、このサンプルが見せる仕組みをいくつか挙げています。コネクタの挙動を理解するうえで効くのは次の3つです。
ページ内容がClaudeに渡る。ビューアは、いま表示しているページ番号とそのページの本文を、updateModelContext でモデルに伝えます。READMEのコードでは「PDF viewer | タイトル | Current Page: 現在のページ/総ページ数」の見出しに続けてページ本文を送っています。ページをめくるたびにClaudeの見ている内容が更新されるので、「いまのページの表を説明して」と頼めます。選択したテキストについて聞くこともできます。
大きなPDFは分割して読む。ホストによってはツール呼び出しにサイズ制限があるため、PDF全体を1回の応答で返しません。ビューア側が read_pdf_bytes という内部用ツールを繰り返し呼び、HTTP Rangeリクエストで分割して取得します。server.ts の定数では、1回の取得は最大512KBです。Rangeに対応しないサーバーのPDFはサーバー側で一時的にキャッシュされ、上限は1ファイル50MB、保持は最長60秒です。
ビューアの設定がホストに合わせて変わる。インライン表示と全画面表示を切り替えられ、ライトモードとダークモードはホストのテーマに追従します。外部リンクを開く操作(論文のタイトルから元のarxivページへ飛ぶなど)も、ホストを経由して行います。
なお、READMEの表で read_pdf_bytes と save_pdf は「App only」、つまりモデルには見えず画面側だけが呼ぶツールです。Claudeが呼べるのは list_pdfs、display_pdf、interact で、ディレクトリのページに載る display_pdf 1つとは数が合いません。ホスト版は機能を絞った構成だと考えられます。
注釈やフォーム入力はローカル版の領分
READMEのサンプルプロンプトには、ハイライト、スタンプ、フォーム入力、保存まで載っています。これらはすべて interact ツール経由です。READMEのツール表では interact は「stdioのみ。HTTPで使うには --enable-interact が必要」と注記されています。
interact でできること | 例 |
|---|---|
| ページ移動・検索・ズーム | 例「5ページ目へ」「self-attentionを検索」 |
| 注釈の追加 | 例ハイライト、メモ、下線、取り消し線、矩形、スタンプ |
| テキスト・画像の取得 | 例指定ページの get_text、get_screenshot |
| フォーム入力 | 例名前と日付の欄を埋める |
| 保存 | 例save_as で注釈入りPDFを書き出す |
ディレクトリに載るPDF Viewerのツールは display_pdf だけなので、ホスト版で注釈の追加や保存を期待しないほうが安全です。注釈つきで使いたいなら、同じサンプルをローカルで動かします。READMEが示す、MCPクライアントへの登録は次の設定です。
{
"mcpServers": {
"pdf": {
"command": "npx",
"args": [
"-y",
"--silent",
"--registry=https://registry.npmjs.org/",
"@modelcontextprotocol/server-pdf",
"--stdio"
]
}
}
}READMEはstdioをClaude Desktopの例として説明しており、この構成では interact が常に有効です。ローカルファイルの扱いにも違いが出ます。
- stdioでは、クライアントが公開するroot(許可されたディレクトリ)が常に有効になる
- HTTPで動かす場合は、rootは既定で無視される。ローカル用途と分かっているときだけ
--use-client-rootsで有効にする - 注釈入りPDFをClaude Desktopの添付フォルダ(
uploadsという名前のroot)へ保存するには、--writeable-uploads-rootが必要。既定では書き込みが拒否される save_asは既存ファイルの上書きを拒否する。上書きするときはoverwrite: trueを渡す
npmパッケージ @modelcontextprotocol/server-pdf の最新版は2.0.3(2026年9月25日更新)です。READMEの設定どおり npx で呼ぶので、事前のインストールは要りません。
ページを見ながら聞くときの頼み方
ビューアが役に立つのは、Claudeが見ているページと自分の見ているページが一致している間です。次の順で頼むと、ずれに気づきやすくなります。
- 開いた直後に「いま何ページ目で、見出しは何か」を聞く。Claudeに渡っているページ本文と、画面の表示が合っているかの確認になります
- 読みたい節までめくってから、「このページの主張を2文で」と頼む
- 図表の話は、ページ番号を添えて聞く。ビューアが渡すのはページのテキストなので、図の中身そのものはClaudeに伝わらない場合があります
3つ目は、READMEの updateModelContext の例がテキストだけを送っていることからの推測です。図表を読ませたいときは、画像を添付して聞くほうが確実です。
使うときに気をつけること
URLは第三者のサーバーに送られる。PDF Viewerの提供元はMCPコミュニティで、接続先は example-server.modelcontextprotocol.io です。ディレクトリのページにも「信頼できる開発者のコネクタだけを使う」という注意があります。公開論文を開く用途ならリスクは小さく、社内URLや認証付きの共有リンクを渡す用途は想定された使い方ではありません。
デモなので長く使う前提にしない。接続先のホスト名もページの説明も、サンプルであることを示しています。安定して使う業務の道具としてではなく、画面つきコネクタの動きを確かめる題材として使うのが合っています。
画面が出ないとき。ビューアが表示されず文字だけ返ってくる場合は、使っている面がMCP Appsの画面表示に対応していない可能性があります。切り分けの手順はインタラクティブConnectorの切り分けに書いています。クライアントごとの対応状況はMCP Apps対応クライアントの一覧にあります。
まとめ
PDF Viewerコネクタは、公開PDFのURLを会話内で開くだけの小さなデモで、機能の多さを求める道具ではありません。ホスト版は display_pdf の1ツールで、注釈・フォーム入力・保存はローカルのstdio版の領分です。
開けるURLの範囲は、ディレクトリのページとREADME、サーバーのコードで書き方が違います。使う前にarxivと学術系以外の公開PDFで1回ずつ試せば、手元の環境での実際の範囲が分かります。論文を読む目的なら、添付したPDFをClaudeに読ませる方法と併せて選ぶと、手間が少なくなります。