Everything else follows from running a real browser — scripts execute, localStorage is available, and waitFor lets the caller name a CSS selector to block on rather than guess at a delay. There is no extraction beyond that wait, so what comes back is the page itself and not a parsed subset of it; anything narrower is work for whatever reads the result.
A single-tool page fetcher that drives browser automation instead of issuing an HTTP request, so a page whose content arrives by script comes back rendered.
- fetchpage loads the url with full JavaScript rendering, so dynamic content is present in what returns rather than missing from the markup.
- waitFor takes a CSS selector and timeout bounds the wait, so the page is read once the part you care about has appeared.
- Cookies load automatically from local storage where they exist, and localStorage is supported, so a page depending on a session you already hold still returns content.
- CSS selectors and dynamic content are handled by the same call, so the page that comes back is the one a browser would have shown.
Nothing to supply but the url. A page that depends on being signed in relies on cookies already sitting in local storage, since that is where this tool loads them from.
One command — npx -y mcp-fetch-page@latest
