LYRENTH
HomePricingIntegrationsDocsBlogIndex statsAboutContact
July 5, 2026 · mcp · agents

Add web reading to Claude Desktop, Claude Code, or Cursor with one MCP block

A five-minute quickstart: drop one MCP block into your assistant and it reads any URL as a clean AIDocument. Covers read_url, read_urls, and check_usage.

Your coding assistant is good at a lot of things, but reading a live web page is usually not one of them. Ask it about a docs page or a changelog and it either guesses from training data or hands you a raw HTTP fetch buried in navigation, cookie banners, and script tags. This post fixes that in about five minutes. You add one config block, and your assistant can read any public URL as a clean AIDocument: a Markdown body with the page chrome stripped out.

If you have not met the shape yet, an AIDocument is Lyrenth's one clean format for a web page: Markdown plus a title, a description, and the page's structure, with the boilerplate removed. There is a longer explainer in What is an AIDocument?, but you do not need it to follow along here.

MCP in two sentences

The Model Context Protocol is an open standard for connecting an AI application to external tools. You register a small server, the assistant sees the tools it exposes, and it can call them mid-conversation without you copy-pasting anything.

Lyrenth ships an MCP server. Point your assistant at it once and web reading becomes a native tool the model can reach for on its own.

The config block

This is the exact block. Add it to your MCP client config: Claude Desktop, Claude Code, Cursor, or any other MCP-capable client. Swap your-key for a real key from your Lyrenth dashboard.

{
  "mcpServers": {
    "lyrenth": {
      "command": "npx",
      "args": ["-y", "lyrenth-mcp"],
      "env": { "LYRENTH_API_KEY": "your-key" }
    }
  }
}

That is the whole install. npx -y lyrenth-mcp pulls and runs the server, and the LYRENTH_API_KEY env var authenticates it. No global install, no build step. Restart the client so it picks up the new server, and you are done.

Where the config file lives depends on the client. Claude Desktop keeps it in its settings directory, Cursor has an MCP settings pane, and Claude Code reads a project or user config. Each one takes the same mcpServers object shown above, so the block does not change between them.

The three tools you get

Once the server is connected, your assistant gains three tools. You rarely call them by name; the model picks the right one from your plain-english request. It helps to know what they actually do.

  • read_url reads one page. It takes an absolute url, an optional max_tokens to cap the body at a clean paragraph or sentence boundary when your context is tight, and an optional fresh flag to skip the cache and force a live fetch. It returns the page as an AIDocument.
  • read_urls reads up to 20 pages in one batch call. It takes a urls array plus the same optional max_tokens and fresh. It is faster than calling read_url in a loop, and a page that fails is reported per item without blocking the rest, which is what you want when the model is comparing or summarizing several sources at once.
  • check_usage takes no arguments and reports your plan tier, credits used against your monthly limit, credits remaining, and the reset date. Handy when you want the assistant to tell you where you stand before a big batch.

Example one: reading a single page

With the server connected, you just ask. Something like: "Read modelcontextprotocol.io/introduction and tell me what MCP is in one line." The assistant calls read_url and gets back a clean document. Here is the genuine start of that response, trimmed:

# What is the Model Context Protocol (MCP)? - Model Context Protocol
Source: https://modelcontextprotocol.io/docs/getting-started/intro
status 200 · render static · 448 words · ~207 tokens · 100% smaller than raw HTML · truncated to budget

---

MCP (Model Context Protocol) is an open-source standard for connecting
AI applications to external systems. Using MCP, AI applications like
Claude or ChatGPT can connect to data sources, tools, and workflows,
enabling them to access key information and perform tasks.

Notice the header line the reader returns: ~207 tokens · 100% smaller than raw HTML. That is the measured economics for this exact page, reported on the response itself, not a global claim. The max_tokens cap did the trimming at a clean boundary, so the model gets a coherent chunk instead of a hard cut mid-sentence. (Economics measured via the header block on the July 2026 API response for that URL.)

Example two: capping a long page to a budget

Longer pages are where the token math bites. Ask the assistant to read a long reference and it can pass max_tokens so the body fits your context window. Reading the Wikipedia article on the Model Context Protocol with a 400-token cap returned this header:

# Model Context Protocol - Wikipedia
Source: https://en.wikipedia.org/wiki/Model_Context_Protocol
status 200 · render static · 7658 words · ~396 tokens · 99% smaller than raw HTML · truncated to budget

A 7,658-word page came back at roughly 396 tokens, trimmed to the budget and reported as 99% smaller than the raw HTML for that page. The assistant reads the substance without the article's markup, sidebar, and citation apparatus eating your window. (Same method: the figure is the header the API returned for that URL in July 2026.)

The batch tool works the same way from your side. "Read these three docs pages and compare them" triggers one read_urls call, each page comes back as its own clean document, and the model reasons over all three at once.

When to prefer the raw API instead

The MCP block is the right choice when a human is in the loop: you are chatting with an assistant and want it to pull a page on demand. It is the lowest-friction path, and it is where most people should start.

Reach for the reader endpoint or the SDKs instead when the reading is programmatic: a scheduled job, a retrieval pipeline, or an agent runtime you control in code. There you want explicit request handling, batching under your own concurrency limits, and the response fields in a typed object rather than as chat text. The quickstart walks through the endpoint and both SDKs. Same AIDocument shape underneath, so nothing you learn here is wasted when you graduate to the API.

Get started

Add the block, restart your client, and ask your assistant to read a URL. The free tier gives you 2,000 AIDocuments a month with no card, which is plenty to wire this up and see whether the clean-text difference shows up in your own work. If it does, you will know from the first page you read.

All postsRead a URL in 5 minutes