Skip to main content
Glama
669,904 tools. Updated 2026-10-17 12:28

"Scroll modules for reading web page content" matching MCP tools:

  • Fetch a web/docs URL as clean, token-optimized markdown from Slipstream's shared cache (use INSTEAD of a raw web fetch). The first agent pays the crawl; every agent after gets ~90% fewer tokens. Surfaces warnings other agents left on the page. Pass known_hash to skip re-reading unchanged content (delta), or section to fetch just one heading (progressive disclosure). Returns a contentHash you can pass as known_hash next time.
    ConnectorNo auth
  • Fetch a public web page plus up to 4 pages on the same host that it links to (in link order, or only those whose path starts with `prefix`), and return each one as title + clean Markdown. Good for reading a docs section or a small site in one call. No model call, deterministic. For a single page use page_to_markdown (cheaper), for metadata only use page_metadata. Plain HTTP fetch (no JavaScript rendering, 15 s timeout, only the first 2 MB is read). Errors (non-public URL, upstream HTTP error, timeout, non-text content) return isError with the reason and are never charged. Price: $0.03 USDC per call via x402 (USDC on Base or Solana, no account; nothing is charged for a bad input). First $0.1 of calls per day per client are free (no payment needed).
    ConnectorNo auth
  • Fetch a caller-specified HTTP(S) URL and get clean, LLM-ready Markdown back. **Primary use (the common case):** pass only a `url`. The page is fetched with a normal GET and returned as Markdown — no other parameters are needed. ```json { "url": "https://example.com/article" } ``` **Best for:** any URL, especially sites that block automated traffic or render their content client-side (news, docs, blogs, web apps). **Not for:** searching the web when you don't have a URL — use web_access_search instead. **Optional parameters (omit unless you need them):** - `format` — `markdown` (default), `raw` (the destination's verbatim body), or `json` (a `{ statusCode, headers, data }` envelope with the destination's status and headers). - `executeJS` — set true to render JavaScript for SPAs when the content comes back empty. - `actions` — drive a real browser (click, scroll, type, wait) before capturing the page. See below. **To send a direct POST, PUT or PATCH** (with a body), use `web_access_request` — this tool's direct HTTP path only issues GETs. Plenty of those calls are reads: a GraphQL query, a search backend that takes a body, a JSON API that refuses GET. - `headers` — forward custom request headers; not combinable with `executeJS` or `actions`, which run in a browser. - `countryCode` — ISO 3166-1 alpha-2 (e.g. "US") to route through a proxy in that country. - `solveCaptcha` — defaults true; set false to fail fast instead of spending effort solving a challenge. **Returns:** Markdown by default; the verbatim body or a JSON envelope when `format` is set accordingly. --- ## `actions` — driving the page instead of just loading it An `actions` sequence runs in a real browser session and returns the page as it stands after the last step. Use it when the content you need does not exist in the document until something happens to the page: a click past a consent gate, a search form submitted, a "load more" button, a tab or accordion opened, or rows that only render once scrolled into view. Actions can modify destination data or submit a form, so clients should treat any call to this tool as potentially destructive. **Escalate in this order — each step costs more time and money than the last:** 1. Plain `url` — always try this first. 2. `executeJS: true` — the page renders client-side but needs no interaction. 3. `actions` — the content requires interaction. Takes tens of seconds and holds a browser session. If the data is still absent after all three, it is likely never in the HTML at all — look for the JSON API the page itself calls and fetch that endpoint directly, which is faster and returns exact values. **Steps** (max 50 per request; at most one `screenshot`): - `{"type": "wait", "selector": ".price", "timeout": 20000}` — wait until the selector appears, then continue immediately. Prefer this over a fixed pause. - `{"type": "wait", "milliseconds": 3000}` — fixed pause. Max 30000ms, as is `timeout` above. - `{"type": "click", "selector": "#accept", "all": false}` — `all: true` clicks every match. - `{"type": "write", "text": "..."}` — types into the focused element; click it first. - `{"type": "press", "key": "Enter"}` - `{"type": "scroll", "direction": "down", "amount": 1000, "selector": "..."}` — `selector` scrolls that element instead of the page. - `{"type": "hover", "selector": "..."}` - `{"type": "selectOption", "selector": "select#size", "value": "L"}` — `value` may be an array. - `{"type": "navigate", "url": "https://..."}` — go to another page mid-session, keeping cookies and state. - `{"type": "screenshot", "full_page": true, "quality": 80}` The session opens on `url` before your first step, so never begin with a `navigate` to that same URL. **Examples** Dismiss a cookie banner, then read the page: ```json { "url": "https://example.com/pricing", "actions": [ { "type": "click", "selector": "#accept-cookies" }, { "type": "wait", "selector": "main .plan", "timeout": 15000 } ] } ``` Run a search the site offers no URL for: ```json { "url": "https://example.com", "actions": [ { "type": "click", "selector": "input[name=q]" }, { "type": "write", "text": "standing desk" }, { "type": "press", "key": "Enter" }, { "type": "wait", "selector": ".results .item", "timeout": 20000 } ] } ``` Fill in rows that render only as they scroll into view: ```json { "url": "https://example.com/listings", "actions": [ { "type": "wait", "selector": ".card", "timeout": 20000 }, { "type": "scroll", "direction": "down" }, { "type": "wait", "milliseconds": 1500 }, { "type": "scroll", "direction": "down" }, { "type": "wait", "milliseconds": 1500 } ] } ``` **Returns with `actions`:** a JSON object — `data` (the final page, Markdown by default), `finalUrl`, `statusCode`, and `screenshot` when the sequence took one. If a step fails, the call still succeeds and returns `error` plus `failedActionIndex`, a 0-based index into your `actions` array, with `data` holding the page as it stood at that point — read it to see what the page actually showed, then fix that step's selector. **Not combinable with** `headers` or `format: "raw"`; a browser session is always a GET. Requests must comply with destination policy, robots directives, rate limits, and access controls. Challenge handling is subject to the caller's String account and organization policy.
    Connector
    Destructive
    OAuth
  • Delete a page: its link stops working immediately and it disappears from the page list, analytics and folder pages — readers who open it get a 404. You can restore it within 30 days with restore_proposal; after that the platform erases it for good (content, versions, page images, reading records and viewer-appended rows all cease to exist; not reversible). To erase it immediately, use the web console, where the consequences are spelled out. Pages with unresolved reports cannot be deleted — resolve the report first. confirm must repeat the page's title exactly, to guard against deleting the wrong one: check with list_proposals first.
    Connector
    Destructive
    API key
  • List the URLs of a website without reading them: robots.txt, sitemaps and sitemap indexes plus homepage links, up to 1,000 same-site URLs with lastmod and source. A cheap first step to decide which pages to read with web-read-batch or site-crawl. Returns no page content. Params: url (site or domain, required), max_urls (1 to 1000, default 200). Price: $0.0025 USDC per call, paid inside this MCP call via x402 (USDC on Base, Solana, Polygon or Arbitrum). x402 MCP clients such as @x402/mcp pay automatically. Free sample: call with the example input {"url":"https://agentsvc.io","max_urls":50}.
    ConnectorOAuth
  • Fetch a web page and return its main text content, cleaned of markup. Use to read articles, documentation, and other resources referenced by URL. Blocks private and cloud-metadata addresses and re-validates every redirect hop. Use when: Use when a known URL's content is needed and structured tools cannot answer — e.g. reading a linked document or API docs. For general factual lookup prefer web_search; for token prices prefer get_token_price. Limitations: Read-only GET-style extraction returning cleaned text, not raw HTML or binary content. JS-heavy pages may yield little content; private/internal network targets are deliberately unreachable. Alternatives: web_search, get_token_price
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Create, edit, preview, publish, and manage web pages from MCP-capable AI clients.

  • 26 tools: web pages to Markdown, metadata, tech stack, SSL, SEO, domains, email auth and SSO checks.

  • Fetch a public URL and return its content as JSON validated against the schema you pass. Use it when you need data from a page and cannot parse it reliably yourself. Do not use it for URLs requiring authentication or a session, for internal networks, or when you already have the content — extract it yourself in that case. `extracted_by` tells you where the answer came from: `structured_data` when the page already published it (JSON-LD, OpenGraph, or a JSON body — exact and free) or `model` when it had to be extracted from the text. If structured extraction is unavailable, the response carries `degraded: true`, `data: null` and the page `text` for you to parse: check `degraded` before reading `data`.
    ConnectorNo auth
  • Encode text or a URL into a QR code. data is the content to encode (a link, a generated identifier such as toolkit_generate_id's ids[0], or any string). format selects the output: svg returns inline SVG markup sized in pixels, png_base64 returns base64-encoded PNG bytes (with mimeType and byteLength), and terminal returns plain Unicode half-block characters (no escape codes) for a monospace display, drawn for a dark background: light modules, quiet zone included, are blocks and dark modules are spaces. errorCorrection (L/M/Q/H) trades data capacity for damage tolerance, margin sets the quiet-zone width in modules, and scale sets pixels per module for svg and png_base64, so both are (modules + 2 × margin) × scale pixels per side. The returned version (1–40) reflects how dense the encoded data is. png_base64 rejects an image past 2048 px per side with a typed raster_too_large error, so a dense symbol needs a lower scale; svg is vector markup and carries no such limit.
    ConnectorNo auth
  • Fetch and read the content of one public web page by URL — use when the user asks what a page or article says, or you need to read a prospect's or company's own site before a conversation. Reads the page as it renders in a real browser, so it works on JavaScript sites. Returns the page's readable text. Pass save=true to also keep the page in the user's graph as a web_link (searchable later); default is a one-off read that is not stored. Cannot read LinkedIn, social, or any sign-in-gated page — those are captured through the browser extension, and this tool says so rather than trying. Not for researching a company in general (that is research_company) or reading a file the user uploaded (that is read_file).
    ConnectorNo auth
  • Reads one document or Wiki page in full, by id. Content past 25,000 characters is truncated and the response says so explicitly — when you see that flag, tell the person, instead of reasoning as though you had the whole text. Use it after `search_documents` or `list_documents_brief` pointed at the right page. It is not a way to browse: reading the Wiki page by page burns the context you need for the actual work.
    ConnectorOAuth
  • Search the web and return the top 5 results with their full content as clean markdown. Better than DIY because zero setup and results include page content, not just links. Use when: You need to find current information on any topic — news, documentation, prices, events, or anything else on the web. Not for: you already have the URL — url_reader; you want crypto headlines with sentiment — crypto_news. Returns: results[] with url, title, description, content; query; count Example response: {"query":"ETH gas fees today","count":5,"results":[{"url":"https://etherscan.io/gastracker","title":"Ethereum Gas Tracker","description":"Real-time Ethereum gas price tracker","content":"Current gas: 2 Gwei..."}],"source":"jina_search"} Price: $0.000 USDC per call
    ConnectorNo auth
  • Returns the public outline of AI at Work, the employee AI training course: modules, what is included, seat tiers and the guarantee. Use it for questions about employee training. It does not return transcripts or quiz content. To check readiness, use assess_ai_readiness.
    ConnectorNo auth
  • Search public Bing web results with organic rows, optional context modules, and page pagination. Locale defaults to country=us and lang=en-us. Challenge or transport failures return 503. A well-formed but irrelevant upstream result can return 200 with low_confidence=true; check that signal before relying on it. site: domain-restricted queries are rejected before upstream IO. Use brave_search for domain-restricted searches or bing_news for news results.
    ConnectorNo auth
  • Search public Bing web results with organic rows, optional context modules, and page pagination. Locale defaults to country=us and lang=en-us. Challenge or transport failures return 503. A well-formed but irrelevant upstream result can return 200 with low_confidence=true; check that signal before relying on it. site: domain-restricted queries are rejected before upstream IO. Use brave_search for domain-restricted searches or bing_news for news results.
    ConnectorNo auth
  • Send a POST, PUT or PATCH request to any URL, through String's Web Access API. It works like web_access_fetch, but for calls that submit data rather than read a page — a JSON API that only accepts POST, a GraphQL endpoint, a search backend that takes a body. **Use web_access_fetch instead** whenever you only need to read a page. This tool sends a body to the destination rather than reading it, so use it only for a request the user actually asked for. **Usage Example:** ```json { "url": "https://api.example.com/search", "method": "POST", "body": { "q": "widgets" } } ``` **Returns:** The destination's response, in the requested format.
    Connector
    Destructive
    OAuth
  • Fetch a web page and return its main text content, cleaned of markup. Use to read articles, documentation, and other resources referenced by URL. Blocks private and cloud-metadata addresses and re-validates every redirect hop. Use when: Use when a known URL's content is needed and structured tools cannot answer — e.g. reading a linked document or API docs. For general factual lookup prefer web_search; for token prices prefer get_token_price. Limitations: Read-only GET-style extraction returning cleaned text, not raw HTML or binary content. JS-heavy pages may yield little content; private/internal network targets are deliberately unreachable. Alternatives: web_search, get_token_price
    ConnectorNo auth
  • USE WHEN reading the full content of a Pine Script v6 documentation file. Returns the file content; when limit is set, a header shows the char range and offset to continue reading. AFTER calling this tool, use offset=<end> to continue if the header indicates more content is available. For large files (ta.md, strategy.md, collections.md, drawing.md, general.md), prefer list_sections() + get_section() instead. Data sourced from bundled Pine Script v6 documentation.
    ConnectorNo auth
  • Search XPay Hub for paid API services. Use this PROACTIVELY when the user asks you to: search the web, find emails, enrich contacts/companies, verify emails, find similar websites, extract web page content, get company news, search for people by title/company, get job postings, generate images, or any data lookup task. Returns matching servers with slugs, tool counts, and pricing. Use xpay_details next to see the full tool list for a server.
    ConnectorNo auth
  • Scan any external content before an agent INGESTS it (SKILL.md, web page, user input, tool output) for prompt-injection, data exfiltration, dangerous code execution, hidden/invisible unicode and instruction overrides: 0-100 risk score + SAFE/WARN/BLOCK verdict + structured findings with matched evidence. Is it safe to feed this content to my agent? A fast, cheap, deterministic, high-volume pre-ingest firewall. Prompt-injection / skill-audit / untrusted-content security check for agents. Price: $0.10 per call (x402 payment, USDC on Base mainnet).
    ConnectorNo auth
  • Check whether a public web page has changed since the last time this was called for it, and get the diff. Use for watching one page over time: a company's team or leadership page, a pricing page, a careers page, anything where the change is the news. The first call records a baseline and reports no change, which is normal. Pass your own agent id as `tag` so two watchers on the same page do not consume each other's changes. For the contents of a page use read_web_page; for the open web use web_search.
    ConnectorNo auth