Claude Code Read PDF: What Works, What Doesn’t, and How to Extend It

Claude Code can read PDFs. Its built-in Read tool handles PDF files on your local filesystem, extracting text and presenting it for analysis. This works well for many use cases, but it has constraints that trip people up.

What Claude Code Does With PDFs Natively

The Read tool in Claude Code supports PDF files out of the box. Point it at a PDF on disk and it extracts the content. You can ask Claude Code to summarize a research paper, pull data from an invoice, or answer questions about a contract, and it reads the PDF to do so.

The basic workflow is simple. You reference the file path and ask your question:

“Read proposal.pdf and summarize the key deliverables and timeline.”

Claude Code opens the PDF, extracts the text content, and gives you a summary. It works for text-heavy PDFs like reports, papers, contracts, and documentation.

The Limits You’ll Hit

20 pages per request. Claude Code’s Read tool caps PDF reading at 20 pages per call. If your PDF is longer than that, you need to specify a page range. This is a hard limit, not a soft one: reading a large PDF without specifying pages will fail.

For a 50-page report, you’d work through it in chunks:

“Read pages 1-20 of annual-report.pdf and list the financial highlights.”

Then:

“Now read pages 21-40 and continue the summary.”

This works, but it means you can’t ask a single question that requires information scattered across a 100-page document without planning your approach.

No fetching remote PDFs. Claude Code can only read files on your local filesystem. If someone sends you a URL to a PDF, Claude Code can’t fetch it on its own. You’d need to download it first (curl -o file.pdf <url>) and then point Claude Code at the local file. Or you can use a web fetch tool through MCP to grab it.

Scanned PDFs are hit or miss. The Read tool works best with PDFs that contain actual text content. Scanned documents (image-based PDFs) may not extract well, depending on whether the PDF includes an OCR text layer.

No writing or editing PDFs. Claude Code can read PDFs but can’t modify them or create new ones natively. If you need to generate a PDF, you’d have Claude Code write a script that uses a library like pdf-lib or reportlab.

Tips for Working With Large PDFs

When you have a long PDF, a structured approach saves time:

  1. Start with the table of contents. Ask Claude Code to read the first few pages and identify the document structure. This tells you which page ranges matter for your question.

  2. Use targeted page ranges. Once you know the structure, read only the sections you need. “Read pages 34-45 of the report” is faster and more focused than reading the whole thing.

  3. Break analytical tasks into passes. For a thorough analysis, do one pass for facts and data, another for methodology or arguments, and a final pass to synthesize.

  4. Keep the PDF in your project directory. Claude Code works best when files are in or near your working directory. Drop PDFs into a docs/ folder so they’re easy to reference.

Extending PDF Capabilities With MCP Tools

MCP tools can fill the gaps in Claude Code’s native PDF support. A web fetch tool lets Claude Code grab PDFs from URLs without you downloading them manually. This is useful when someone shares a link to a paper or spec document and you want to analyze it without leaving your terminal session.

AgentPatch provides web fetch alongside search, image generation, and other tools through a single MCP connection:

The AgentPatch CLI is designed for AI agents to use via shell access. Install it, and your agent can discover and invoke any tool on the marketplace.

Install (zero dependencies, Python 3.10+):

pip install agentpatch

Set your API key:

export AGENTPATCH_API_KEY=your_api_key

Example commands your agent will use:

ap search "web search"
ap run google-search --input '{"query": "test"}'

Get your API key from the AgentPatch dashboard.

Install the AgentPatch skill — it teaches Claude Code when to use AgentPatch and how to use the CLI:

/plugin marketplace add fullthom/agentpatch-claude-skill
/plugin install agentpatch@agentpatch

MCP Server (Alternative)

If you prefer raw MCP tool access instead of the skill:

claude mcp add -s user --transport http agentpatch https://agentpatch.ai/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Replace YOUR_API_KEY with your actual key from the AgentPatch dashboard.

With web fetch available, you can ask Claude Code to grab a remote PDF and analyze it in one step:

“Fetch the PDF at https://example.com/whitepaper.pdf and summarize the main findings.”

Claude Code calls the fetch tool through AgentPatch, gets the content, and analyzes it. The 20-page limit still applies to the Read tool, but fetched content comes through as text, which avoids that constraint for many documents.

Example Workflow

You’re reviewing a set of research papers for a project. Some are local, some are URLs from a Slack thread:

“Read pages 1-15 of papers/attention-is-all-you-need.pdf and give me a two-paragraph summary of the architecture.”

For a remote paper:

“Fetch the PDF at https://arxiv.org/pdf/2301.00001 and compare its approach to the one in the local paper.”

Claude Code handles both: the local file through its built-in Read tool, and the remote file through AgentPatch’s fetch tool.

Wrapping Up

Claude Code reads PDFs well within its constraints: 20 pages per request, local files only, text-based content. For most workflows, that covers the common cases. When you need to fetch remote PDFs or work beyond the native limits, MCP tools through agentpatch.ai fill the gap with a single connection.