Skip to main content
Glama

срезAI — MCP-сервер и поисковый API для ИИ-агентов

Прочитать страницу / Read a page

read_url
Read-onlyIdempotent

Открывает одну страницу по известному адресу и возвращает её текст чистым markdown - без навигации, рекламы, скриптов и HTML. JavaScript выполняется на нашей стороне, поэтому SPA тоже читаются.

Когда: адрес известен и нужен текст - статья, документация, карточка товара. Когда не: адреса нет - сначала web_search; страниц несколько - read_urls (один вызов вместо пяти); нужны 2-5 конкретных полей - extract (в контекст придут только они); нужно увидеть вёрстку - fetch_page. Возвращает: заголовок и текст, по умолчанию первые 4000 символов. Длинная страница приходит по частям: в конце ответа указано значение offset, с которым надо вызвать тул повторно, чтобы получить продолжение. Так документ любого объёма читается окнами под ваш контекст, без повторной оплаты уже прочитанного. Читает и файлы, а не только страницы: PDF (включая сканы - распознаём текст), Word (docx), Excel (xlsx), PowerPoint (pptx), OpenDocument (odt/ods/odp/odg), RTF, EPUB и текстовые (txt/md/csv/json/xml). Адрес документа передавайте как есть: https://site.ru/otchet.docx. Старые двоичные .doc/.xls/.ppt не читаются - их отдаёт только LibreOffice, у нас его нет; нужен файл в новом формате. Цена: 1 кредит, самый дешёвый способ получить содержимое страницы (fetch_page - 3).

Opens a single page by a known URL and returns its text as clean markdown - no navigation, ads, scripts or HTML. JavaScript is executed on our side, so SPAs read fine too.

Use when: you have the URL and need the text - an article, documentation, a product page. Do not use when: you have no URL - start with web_search; you have several pages - read_urls (one call instead of five); you need a handful of specific fields - extract (only those reach your context); you need to see the layout - fetch_page. Returns: title and text, the first 4000 characters by default. A long page arrives in windows: the end of the response states the offset to call the tool with again to get the continuation. That way a document of any size is read in windows sized to your context, without paying twice for what you already read. Reads files too, not only pages: PDF (scans included - we recognise the text), Word (docx), Excel (xlsx), PowerPoint (pptx), OpenDocument (odt/ods/odp/odg), RTF, EPUB and text formats (txt/md/csv/json/xml). Pass the document URL as it is: https://site.ru/report.docx. Legacy binary .doc/.xls/.ppt are not readable - only LibreOffice can open them and we do not run it; re-save the file in a modern format. Cost: 1 credit - the cheapest way to get page content (fetch_page costs 3).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "read_url"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesПолный URL страницы (http/https) / Full page URL
freshNoПрочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае. / Read the page anew instead of using recently read text. Use it when the page has just changed. Does not affect the price: the credit is charged either way.
engineNoКак забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт. / How to fetch the page: auto (default - starts with the fast path and escalates on its own if no text came back), fast (static sites and docs), dynamic (waits for JS rendering - for SPAs), stealth (slow, most browser-like). Set it explicitly only if you know the site.
offsetNoС какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы. / Where to resume reading. Take the value from this tool's previous response ("continue: offset N"), do not compute it yourself. Empty - from the start of the page.
maxCharsNoСколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало. / How many characters of text to return (200-50000, default 4000). Raise it if you need the whole text, not just the beginning.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / engine / description
      Previous value: -"Как забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт."New value: +"Как забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт. / How to fetch the page: auto (default - starts with the fast path and escalates on its own if no text came back), fast (static sites and docs), dynamic (waits for JS rendering - for SPAs), stealth (slow, most browser-like). Set it explicitly only if you know the site."
    • changedInput schema / properties / fresh / description
      Previous value: -"Прочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае."New value: +"Прочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае. / Read the page anew instead of using recently read text. Use it when the page has just changed. Does not affect the price: the credit is charged either way."
    • changedInput schema / properties / maxChars / description
      Previous value: -"Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало."New value: +"Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало. / How many characters of text to return (200-50000, default 4000). Raise it if you need the whole text, not just the beginning."
    • changedInput schema / properties / offset / description
      Previous value: -"С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы."New value: +"С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы. / Where to resume reading. Take the value from this tool's previous response (\"continue: offset N\"), do not compute it yourself. Empty - from the start of the page."
    • changedInput schema / properties / url / description
      Previous value: -"Полный URL страницы (http/https)"New value: +"Полный URL страницы (http/https) / Full page URL"
    • removedInput schema / properties / webmcp
      Removed value: -{
      -  "description": "Экспериментально: проверить, объявляет ли страница WebMCP-инструменты (+1,5-3 с). По умолчанию выключено.",
      -  "type": "boolean"
      -}
  2. Changed6 schema fields changed
    • changedInput schema / properties / engine / description
      Previous value: -"Как забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт. / How to fetch the page: auto (default - starts with the fast path and escalates on its own if no text came back), fast (static sites and docs), dynamic (waits for JS rendering - for SPAs), stealth (slow, most browser-like). Set it explicitly only if you know the site."New value: +"Как забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт."
    • changedInput schema / properties / fresh / description
      Previous value: -"Прочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае. / Read the page anew instead of using recently read text. Use it when the page has just changed. Does not affect the price: the credit is charged either way."New value: +"Прочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае."
    • changedInput schema / properties / maxChars / description
      Previous value: -"Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало. / How many characters of text to return (200-50000, default 4000). Raise it if you need the whole text, not just the beginning."New value: +"Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало."
    • changedInput schema / properties / offset / description
      Previous value: -"С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы. / Where to resume reading. Take the value from this tool's previous response (\"continue: offset N\"), do not compute it yourself. Empty - from the start of the page."New value: +"С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы."
    • changedInput schema / properties / url / description
      Previous value: -"Полный URL страницы (http/https) / Full page URL"New value: +"Полный URL страницы (http/https)"
    • changedInput schema / properties / webmcp / description
      Previous value: -"Экспериментально: проверить, объявляет ли страница WebMCP-инструменты (+1,5-3 с). По умолчанию выключено. / Experimental: also probe declared WebMCP tools (+1.5-3 s). Off by default."New value: +"Экспериментально: проверить, объявляет ли страница WebMCP-инструменты (+1,5-3 с). По умолчанию выключено."
  3. Changed1 schema field changed
    • changedInput schema / properties / webmcp / description
      Previous value: -"Спросить страницу, какие WebMCP-инструменты она объявляет, и вернуть их в поле webmcp. Это +1,5-3 с к чтению (лишний заход в браузер), поэтому по умолчанию выключено. Включайте, если собираетесь выполнять действие на сайте через webmcp, а не только читать. / Ask the page which WebMCP tools it declares and return them in the webmcp field. This adds 1.5-3 s to the read (an extra browser pass), so it is off by default. Enable it when you plan to perform an action on the site via webmcp, not just read it."New value: +"Экспериментально: проверить, объявляет ли страница WebMCP-инструменты (+1,5-3 с). По умолчанию выключено. / Experimental: also probe declared WebMCP tools (+1.5-3 s). Off by default."
  4. Changed1 schema field changed
    • addedInput schema / properties / webmcp
      Added value: +{
      +  "description": "Спросить страницу, какие WebMCP-инструменты она объявляет, и вернуть их в поле webmcp. Это +1,5-3 с к чтению (лишний заход в браузер), поэтому по умолчанию выключено. Включайте, если собираетесь выполнять действие на сайте через webmcp, а не только читать. / Ask the page which WebMCP tools it declares and return them in the webmcp field. This adds 1.5-3 s to the read (an extra browser pass), so it is off by default. Enable it when you plan to perform an action on the site via webmcp, not just read it.",
      +  "type": "boolean"
      +}
  5. Changed3 schema fields changed
    • changedInput schema / properties / engine / description
      Previous value: -"Как забирать страницу: auto (по умолчанию — начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS — для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт. / How to fetch the page: auto (default — starts with the fast path and escalates on its own if no text came back), fast (static sites and docs), dynamic (waits for JS rendering — for SPAs), stealth (slow, most browser-like). Set it explicitly only if you know the site."New value: +"Как забирать страницу: auto (по умолчанию - начинает с быстрого способа и сам поднимается, если текста не оказалось), fast (быстро, для статики и документации), dynamic (ждёт отрисовки JS - для SPA), stealth (медленно, максимально браузерное поведение). Указывайте явно только если знаете сайт. / How to fetch the page: auto (default - starts with the fast path and escalates on its own if no text came back), fast (static sites and docs), dynamic (waits for JS rendering - for SPAs), stealth (slow, most browser-like). Set it explicitly only if you know the site."
    • changedInput schema / properties / maxChars / description
      Previous value: -"Сколько символов текста вернуть (200–50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало. / How many characters of text to return (200–50000, default 4000). Raise it if you need the whole text, not just the beginning."New value: +"Сколько символов текста вернуть (200-50000, по умолчанию 4000). Поднимите, если нужен полный текст, а не только начало. / How many characters of text to return (200-50000, default 4000). Raise it if you need the whole text, not just the beginning."
    • changedInput schema / properties / offset / description
      Previous value: -"С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто — с начала страницы. / Where to resume reading. Take the value from this tool's previous response (\"continue: offset N\"), do not compute it yourself. Empty — from the start of the page."New value: +"С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто - с начала страницы. / Where to resume reading. Take the value from this tool's previous response (\"continue: offset N\"), do not compute it yourself. Empty - from the start of the page."
  6. Changed2 schema fields changed
    • addedInput schema / properties / fresh
      Added value: +{
      +  "description": "Прочитать страницу заново, не беря недавно прочитанный текст. Нужно, когда страница только что изменилась. На цену не влияет: кредит списывается в любом случае. / Read the page anew instead of using recently read text. Use it when the page has just changed. Does not affect the price: the credit is charged either way.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "С какого символа продолжить чтение. Берите значение из предыдущего ответа этого тула («продолжить: offset N»), не считайте сами. Пусто — с начала страницы. / Where to resume reading. Take the value from this tool's previous response (\"continue: offset N\"), do not compute it yourself. Empty — from the start of the page.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
  7. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic safe-read profile; the description goes well beyond with server-side JS execution, ad/nav stripping, the offset-window pagination contract, credit pricing versus sibling cost, and concrete file-format support with an explicit unsupported set (.doc/.xls/.ppt) and the reason. That is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core promise, then Use when / Do not use when, Returns, formats, cost — a clean hierarchy with no filler sentences. The only cost is the full Russian/English duplication, which roughly doubles token length for a single-language reader.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully covers return shape (title + text), default truncation at 4000 chars, and the continuation protocol, plus format coverage and pricing. An agent has everything needed to call it correctly on first attempt, including the multi-call pagination pattern.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds workflow-level meaning to offset and maxChars by framing them as a windowed-read loop ('the end of the response states the offset... without paying twice'), which is more than the field docs alone convey. It does not restate engine/fresh semantics, so it is an enhancement rather than a full substitute.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Opens a single page by a known URL and returns its text as clean markdown" names a specific verb, resource, and output form, and immediately differentiates itself from read_urls, extract, fetch_page, and web_search by scope. The agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'Use when' / 'Do not use when' pair with four named alternatives and the exact condition selecting each (no URL → web_search; several pages → read_urls; a few fields → extract; layout → fetch_page). Nothing is left to inference, including a cost-based tiebreaker against fetch_page.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.