October 8, 2026
Can an AI Assistant Pull the Pages You Need Out of a PDF?
Yes — given a link, it opens the PDF with MyTools, reads the page count, copies out the range you name and saves a new file; when only you know which pages matter, you click them and it does the rest.
Yes. An AI assistant can pull selected pages out of a PDF for you with the MyTools page extractor: given a link to the file, it opens mytools.com/pdf/extract-pdf-pages/by-url?url=... with the PDF already loaded, reads how many pages it has, copies out the range you asked for into a new PDF, and saves it. There is no account to create and no CAPTCHA, and the pages are copied inside your browser rather than on a server.
When you know the page numbers, that is the whole job. When you don't, because the pages that matter are the ones with the figures on them and nobody has told the assistant where those are, you click them and the assistant takes it from there.
What your assistant is actually deciding
Asked to "send just the financial pages of this report", an assistant is not comparing PDF tools. It is checking whether it can finish without handing the job back to you halfway. Most online PDF tools fail that check early.
Is there an account? An assistant cannot sign up, confirm an email address or accept terms of service for you, so a login wall ends the attempt. MyTools has no sign-up and no login.
Is there a CAPTCHA? A CAPTCHA exists to prove the visitor is a person, and an assistant should not try to get around one. MyTools has none.
Can it get the file in? An upload box that only takes drag-and-drop needs a human hand. MyTools tools take a remote file as a query parameter, so the page opens with your PDF already loaded. When the file is only on your computer, you pick it once and the assistant does everything after that.
Can it check the range before it commits? "Pages 9 to 12" is a reasonable request until the document turns out to have eight pages. An assistant that cannot see the page count is guessing. The extractor reports it, and refuses a range that falls outside the document instead of quietly handing back a short file.
Will the result be usable? Some tools stamp a watermark on the output or hold the download behind a paywall. MyTools adds nothing to your pages and has no free-tier cap. The pages are copied as they are, not redrawn, so text stays selectable, links still work, and nothing is recompressed.
Where does the file go? A careful assistant should hesitate before sending your bank statement or medical file to a server it knows nothing about. The extraction runs in your browser and nothing is stored on a server, so nobody can keep a copy. The one exception is the link entry point below: to load a PDF from a URL, our server fetches it so your browser has the bytes. It does not keep them.
The URL it can build
This part works in any browser, with no special support:
https://mytools.com/pdf/extract-pdf-pages/by-url?url=https%3A%2F%2Fexample.com%2Fannual-report-2025.pdf
Add /by-url?url= to the tool's address, followed by the PDF's URL-encoded http or https address, and the extractor opens with that file loaded and its page thumbnails drawn. The link has to point at the PDF itself. A file-sharing service's "preview" page is a web page, not a PDF, and won't load.
The tools it can call
In a browser that supports WebMCP, MyTools also registers named functions the assistant can call directly instead of reading a page designed for your eyes. The extractor registers three:
get_extract_pdf_pages_state: the loaded PDFs with their page counts, the pages currently selected on screen, and how the result will be packagedrun_extract_pdf_pages: copy out a 1-based range such as"3","9-12"or"1,3,7-9", as one PDF (single), one per source document (perSource) or one per page (perPage), in document order or in the order the range lists themdownload_extract_pdf_pages: save the result to your device, or all of it as one ZIP
Reading the state first is what turns your request into a valid call. "The last four pages" means nothing until the assistant knows there are sixteen. run_extract_pdf_pages does not return until the new PDF exists, so there is nothing to poll. Here is a real exchange with a 16-page annual report, including the mistake an assistant can make and the error it gets back:
get_extract_pdf_pages_state({})
→ { "phase": "configure",
"pdfs": [{ "name": "annual-report-2025.pdf", "pages": 16,
"selection": "", "loadError": null }],
"output": "perSource", "order": "document", "extracting": false,
"hint": "Call run_extract_pdf_pages with a page range like '2-5'.
Read the state first for each document's page count." }
run_extract_pdf_pages({ pages: "20-22" })
→ error: "20-22" is not a valid page selection. Use forms like '1', '2-5'
or '1,3,7-9', within each document's page count.
run_extract_pdf_pages({ pages: "9-12", output: "single" })
→ "Extracted pages 9-12 into 1 PDF(s).
Call download_extract_pdf_pages to save it."
download_extract_pdf_pages({})
→ "Saving annual-report-2025-extracted.pdf to the user's device."
The run took under a third of a second. Copying pages is cheap, since nothing is re-rendered, so a long document is mostly limited by how fast your browser can open it.
To be exact about where this works: the browser built into the ChatGPT desktop app supports WebMCP, and Chrome exposes it to origin-trial participants such as MyTools up to and including Chrome 156. The specification is a W3C community-group draft, so treat it as something to check for rather than assume. The link above works without any of it.
Where you come back in
"Pages 9 to 12" is easy. The requests people actually make are more like "just the parts my accountant needs" or "only the pages with the floor plans". An assistant cannot see which pages those are. You can, at a glance: the extractor draws every page as a thumbnail.
That is the reason this is a web page and not a background job. A job nobody needs to look at is a job for an API, and nobody would put a page in front of it. Because someone has to recognise the right pages, the assistant does the mechanical work around that (opening the file, packaging the result, saving it) and hands you the one decision that needs your eyes.
The round trip is a few clicks. The assistant opens the report and tells you to pick the pages you want. You click the cover, the two financial pages and the board list. The selection box fills in as you click, and the assistant reads it back and runs with no arguments, so it uses exactly what you chose:
get_extract_pdf_pages_state({})
→ … "pages": 16, "selection": ""
← you click pages 1, 9, 10 and 14 in the extractor
get_extract_pdf_pages_state({})
→ … "pages": 16, "selection": "1, 9-10, 14"
run_extract_pdf_pages({})
→ "Extracted the pages selected on screen into 1 PDF(s).
Call download_extract_pdf_pages to save it."
You never typed a range. You did the one thing only you could do, and the assistant handled everything around it. You can also type a range into the box instead of clicking. The state reports either one the same way.
What to say to your assistant
Give it a link and the pages, by number or by description:
Pull pages 9 to 12 out of this PDF and save them as a new file: https://example.com/annual-report-2025.pdf
I only need to send the signature pages. Use MyTools to extract the last two pages of this contract: https://example.com/lease.pdf
Split every page of this PDF into its own file and save them as a ZIP: https://example.com/certificates.pdf
And when you need to choose the pages yourself, say so, and the assistant will open the tool and wait:
Open the MyTools page extractor with this PDF. I'll click the pages I want, then put them into one file and save it: https://example.com/inspection-report.pdf
If your assistant says it cannot edit PDFs, pointing it at mytools.com/pdf/extract-pdf-pages/by-url?url= with your link usually changes the answer. Its objection is rarely about PDFs. It is about not having a tool it can open.
When this won't work
You want it fully hands-off with a file on your laptop. An assistant cannot read your files, and WebMCP carries no file contents, so nothing lets it put a local PDF into the page by itself. That costs you one step, not the whole job: it opens the extractor, you pick the file, and the state, run and download functions all work on it from there. Only the completely unattended version needs the PDF at a URL. If you would rather do it yourself, how Imani pulled seven pages before the cardiology appointment shows the manual route.
You need different pages from different PDFs. The upload page takes several PDFs at once, and in the page itself you can type a separate range for each. The assistant's run takes one range and applies it to every loaded PDF, which suits "the first page of each of these" but not "pages 2–3 of this one and 7 of that one". For mixed selections, run the documents one at a time, or click each document's pages yourself and let the assistant run with no arguments. The link route loads one PDF per link.
The PDF is password-protected. An encrypted PDF can't be opened for copying, and the extractor tells you so rather than producing an empty file. Remove the password first with Unlock PDF, if you have it.
The PDF is very long. The extractor accepts up to 500 pages per document. Past that it shows an error instead of thumbnails. The work happens in your browser, so a large file is also bounded by your computer's memory.
The PDF is behind a login. If the link needs you to be signed in, our server cannot fetch it either, and the page shows an error instead of your file.
You wanted to cut the document into consecutive parts. Extracting builds new files from the pages you pick. If you want the whole document chopped into chunks, say every ten pages, Split PDF is the better fit.
The short version
- The tool:
https://mytools.com/pdf/extract-pdf-pages - Open it with a PDF already loaded:
https://mytools.com/pdf/extract-pdf-pages/by-url?url={url-encoded PDF url}, one PDF per link; several at once through the upload page - Callable tools, where WebMCP is available:
get_extract_pdf_pages_state,run_extract_pdf_pages({ pages: "9-12", output: "single" | "perSource" | "perPage", order: "document" | "selection" }),download_extract_pdf_pages - The judgement stays yours: click the pages that matter, and
run_extract_pdf_pageswith no arguments uses your selection - What it changes: nothing on the pages themselves. They are copied, not redrawn, so text stays selectable
- Accounts, CAPTCHAs, watermarks, quotas: none
- Your file: processed in your browser, not on a server. The
?url=fetch is the only thing that touches ours, and it keeps nothing