Docs menu
Get started
What is Opus GrowthQuickstartAdd to your AIHow it worksSafety and approvalCreditsPlansFAQAI apps
All AI appsChatGPTClaudeGrokPerplexityClaude CodeCodexGemini CLIOpenClawCursorVS CodeWindsurfOther MCPConnect ad platforms
Google AdsMeta AdsLinkedIn AdsMicrosoft AdvertisingTikTok AdsChatGPT AdsAgencies and MCCConnect data sources
Search ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWebsites and SEO
AI ServerWordPressSEO IntelligenceClick fraudTool reference
All toolsGoogle AdsMeta AdsTikTok AdsLinkedIn AdsMicrosoft AdvertisingChatGPT AdsSearch ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWordPressAI ServerSEO IntelligenceClick fraudCross-channelAccount and billingLanguage
Read Live Page
Reads a LIVE web page exactly as a visitor's browser would and returns the HTTP status code, the response headers and the HTML body.
- Type
- Reads only
- Credits
- 1
- Platform
- AI Server
- Approval
- Not needed, nothing changes
What it does
Reads a LIVE web page exactly as a visitor's browser would and returns the HTTP status code, the response headers and the HTML body. Writes NOTHING anywhere — this is the read-only counterpart of site_fetch.
`outline=true` returns the page's STRUCTURE instead of the body: title, meta description, canonical, and the full h1-h6 heading tree with an `h1_count`. It answers structure questions (did an edit land, is there an H1, is the heading order right) in a small reply; a normal WordPress page is around 50 KB of HTML. The outline is computed from the SAME fetch, so it reflects what the server actually rendered, including whatever a theme or page builder shortcode produced (issue #260: `post_content` shows the shortcode, not the `<h1>` the theme emits from it).
`text=true` returns the page's READABLE TEXT instead of the HTML: title, meta description, canonical, H1s, the visible text with scripts/styles/navigation markup stripped (first 6,000 characters, `text_truncated` says if there was more) and the list of same-site `internal_links`. It shows what a page says, whether it matches a CTA / ad / post, and which pages it links to. A typical page is 50-120 KB of HTML and the raw body does not fit in one tool result; the text view is a few KB.
It shows what actually shipped: whether the page is live, 200 or 404, which language the server picked, the canonical/hreflang/meta description, and where a redirect lands. REDIRECTS ARE REPORTED, NOT HIDDEN: when the URL you asked for redirects, the answer carries `redirected: true`, `requested_url`, `final_url` and a `redirects` list with every hop (from, status, to), and `status`/`headers` describe the FINAL page. `redirects` lists every hop, so whether www redirects to the apex host is answered by `redirects`, not by `status` alone.
Why this exists (issue #257): the other tools with similar names do different jobs and cost a wasted turn. `site_fetch` is a DOWNLOADER, it requires a path and writes the file into the site. `site_headers` MANAGES response headers, it does not read a page. And curl inside site_run_command cannot resolve the site's own domain from the hosting container. So verifying a page you just published had no tool at all.
`max_bytes` caps the body (default 200 KB, max 2 MB) and is applied exactly — the body is cut to it and `truncated` tells you when something was left behind. Pass `max_bytes=0` when you only need to know whether a URL answers: the response then carries `status` and `headers` and NO body, which is the cheap way to check a batch of internal links one call at a time. The URL passes the same SSRF guard as every other outbound request, so private and internal addresses are refused. Read-only.
MCP: site_read_url
How to use it
You don't call tools by name. Write what you want in ChatGPT, Claude or another assistant connected to Opus Growth, in your own words; it picks this tool when it fits.
Parameters
| Name | Type | Required | Default | |
|---|---|---|---|---|
| url | string | Required | · | URL to read, use as a destination, or otherwise process as described by this operation. |
| max_bytes | integer | Optional | 200000 | Numeric max bytes value for site read url. Use the provider's expected unit, range, and precision. |
| outline | boolean | Optional | false | Whether to enable outline for this operation. |
| text | boolean | Optional | false | Text content, query text, or copy to use exactly as required by this operation. |
Related tools
add_siteSet Up Site Contact-Form Emailconfigure_site_smtpCreate Free Trial Websitecreate_trial_siteDeploy Site From ZIPdeploy_site_zipList Hosting Serverslist_serversList Websites On Serverlist_sitesRemove Website From Serverremove_siteInstall Site Starterscaffold_siteBlock Website Pathssite_block_paths