Skip to content
Install
Reader logo

Reader

Author: jina-ai

Description: Jina AI’s Reader service/codebase behind https://r.jina.ai and https://s.jina.ai. Provides (1) URL-to-LLM-friendly conversion by prefixing any URL with https://r.jina.ai/ and (2) web search grounding via https://s.jina.ai/<query> which returns top results already fetched and converted. Supports request-header controls (markdown/html/text/screenshot output, image auto-captioning via x-with-generated-alt, cache controls, proxies, cookies forwarding, CSS target selectors, SPA support via Puppeteer, streaming via SSE, and optional JSON output via Accept: application/json). Repo is TypeScript/Node (>=18) with build/start scripts; primary runtime entrypoints appear to be build/stand-alone/crawl.js (serve) and build/stand-alone/search.js (dry-run).

Stars: 10.2k

Forks: 769

License: Apache License 2.0

Category: Enterprise

Overview

Installation

See repository README for installation instructions.

01

r.jina.ai

Read: Convert any URL into LLM-friendly content by prepending https://r.jina.ai/ to the target URL; also supports POST with a body parameter url=... for SPA/hash-based routes.

02

s.jina.ai

Search: Perform a web search by prepending https://s.jina.ai/ to an encoded query; returns the top 5 results with each result fetched and rendered in an LLM-friendly format (supports in-site filtering via the site= query parameter).

FAQs

How do I fix the "Unauthorized" error when using Jina Reader search tools over MCP?

This is a known MCP interface bug, not your configuration. While being resolved, use Jina's direct API at s.jina.ai with your credentials instead of MCP search tools. The read_url tool works normally through MCP. Monitor GitHub Issue #1222 for updates on when search functionality will be restored via the MCP server interface.

What are the rate limits for Jina AI Reader's free tier vs premium API keys?

Free tier provides 500 requests per minute for the read endpoint and 100 requests per minute for search, starting with 10 million token credits. Premium tier increases limits to 5,000 RPM for read and 1,000 RPM for search. Without any API key, read-only access is throttled to 20 RPM, while search is completely blocked.

How do I configure Jina AI Reader MCP server in Cursor with the authorization header workaround?

In your Cursor configuration file at `~/.cursor/mcp.json`, use npx mcp-remote with a colon-separated header format instead of space-separated, and define the full Bearer token in an environment variable named `AUTH_HEADER` to bypass Cursor's space-handling bug that breaks standard authorization headers.

When should I use Jina Reader instead of Playwright MCP for web scraping in my coding agent?

Use Jina Reader for read-only content extraction when you need documentation, articles, or search results converted to clean Markdown without interaction. Reserve Playwright for workflows requiring clicks, form submissions, authentication flows, or sequential navigation steps. Reader optimizes token efficiency for passive scraping, while Playwright handles stateful browser tasks that Reader cannot execute.

How does Jina Reader handle JavaScript-rendered single-page applications (SPAs) and dynamic content?

Jina Reader renders JavaScript-heavy pages and SPAs automatically through its conversion pipeline. For slow-loading dynamic applications, completion improves by using direct API headers like `x-timeout` or `x-wait-for-selector` to extend render wait times before extraction begins. These headers give JavaScript frameworks additional milliseconds to populate routes, ensuring Reader captures fully hydrated content rather than partial initial HTML.

Can I use Jina AI Reader to access paywalled or authenticated web pages through the MCP server?

Yes, Reader can access authenticated pages by forwarding cookies via the `x-set-cookie` header when calling the API directly. However, cookie forwarding disables caching, making authenticated reads slower and more expensive than public pages. The MCP server interface may not expose cookie-forwarding parameters, so you might need to call r.jina.ai directly for authenticated access rather than through the MCP tools.

License: Apache License 2.0
Updated 5/8/2025