MCP JinaAI Reader Server
The MCP JinaAI Reader Server converts web content into LLM-friendly text using Jina.ai's Reader API.
Extract web content: Efficiently retrieve and process web content with preserved structure and formatting.
Customize extraction: Use CSS selectors to target, exclude, or wait for specific elements.
Enhance output: Include summaries of links and images, generate alt text, and extract iframe content.
Control behavior: Set timeout limits, bypass caching for fresh results, and choose between JSON or streaming response formats.
Support various content types: Process different web content including documentation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP JinaAI Reader Serverread the React documentation at https://react.dev/learn"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-jinaai-reader
⚠️ Notice
This repository is no longer maintained.
The functionality of this tool is now available in mcp-omnisearch, which combines multiple MCP tools in one unified package.
Please use mcp-omnisearch instead.
A Model Context Protocol (MCP) server for integrating Jina.ai's Reader API with LLMs. This server provides efficient and comprehensive web content extraction capabilities, optimized for documentation and web content analysis.
Related MCP server: Jina AI Remote MCP Server
Features
📚 Advanced web content extraction through Jina.ai Reader API
🚀 Fast and efficient content retrieval
📄 Complete text extraction with preserved structure
🔄 Clean format optimized for LLMs
🌐 Support for various content types including documentation
🏗️ Built on the Model Context Protocol
Configuration
This server requires configuration through your MCP client. Here are examples for different environments:
Cline Configuration
Add this to your Cline MCP settings:
{
"mcpServers": {
"jinaai-reader": {
"command": "node",
"args": ["-y", "mcp-jinaai-reader"],
"env": {
"JINAAI_API_KEY": "your-jinaai-api-key"
}
}
}
}Claude Desktop with WSL Configuration
For WSL environments, add this to your Claude Desktop configuration:
{
"mcpServers": {
"jinaai-reader": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"JINAAI_API_KEY=your-jinaai-api-key npx mcp-jinaai-reader"
]
}
}
}Environment Variables
The server requires the following environment variable:
JINAAI_API_KEY: Your Jina.ai API key (required)
API
The server implements a single MCP tool with configurable parameters:
read_url
Convert any URL to LLM-friendly text using Jina.ai Reader.
Parameters:
url(string, required): URL to processno_cache(boolean, optional): Bypass cache for fresh results. Defaults to falseformat(string, optional): Response format ("json" or "stream"). Defaults to "json"timeout(number, optional): Maximum time in seconds to wait for webpage loadtarget_selector(string, optional): CSS selector to focus on specific elementswait_for_selector(string, optional): CSS selector to wait for specific elementsremove_selector(string, optional): CSS selector to exclude specific elementswith_links_summary(boolean, optional): Gather all links at the end of responsewith_images_summary(boolean, optional): Gather all images at the end of responsewith_generated_alt(boolean, optional): Add alt text to images lacking captionswith_iframe(boolean, optional): Include iframe content in response
Development
Setup
Clone the repository
Install dependencies:
npm installBuild the project:
npm run buildRun in development mode:
npm run devPublishing
Update version in package.json
Build the project:
npm run buildPublish to npm:
npm publishContributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Acknowledgments
Built on the Model Context Protocol
Powered by Jina.ai Reader API
Available Tools
1 toolread_urlB
Convert any URL to LLM-friendly text using Jina.ai Reader
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to process | |
| no_cache | No | Bypass cache for fresh results | |
| format | No | Response format (json or stream) | json |
| timeout | No | Maximum time in seconds to wait for webpage load | |
| target_selector | No | CSS selector to focus on specific elements | |
| wait_for_selector | No | CSS selector to wait for specific elements | |
| remove_selector | No | CSS selector to exclude specific elements | |
| with_links_summary | No | Gather all links at the end of response | |
| with_images_summary | No | Gather all images at the end of response | |
| with_generated_alt | No | Add alt text to images lacking captions | |
| with_iframe | No | Include iframe content in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic function without disclosing behavioral traits like rate limits, authentication needs, error handling, or performance characteristics. It mentions the external service (Jina.ai Reader) but doesn't explain implications of using a third-party service.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core functionality, making every word earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 11 parameters and no output schema, the description is insufficient. It doesn't explain what 'LLM-friendly text' means in practice, doesn't describe the response format, and provides no guidance on parameter interactions or error cases. The lack of output schema increases the need for more descriptive context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing comprehensive parameter documentation. The description adds no parameter-specific information beyond the schema, maintaining the baseline score. It doesn't explain relationships between parameters or provide usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Convert') and resource ('any URL') while specifying the method ('using Jina.ai Reader') and output format ('LLM-friendly text'). It distinguishes this as a URL-to-text conversion tool with no siblings to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Convert any URL to LLM-friendly text') but provides no explicit guidance on when to use this tool versus alternatives, prerequisites, or limitations. With no sibling tools, the baseline is adequate but lacks specific usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool's purpose is clearly defined and distinct by default.
A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The tool name 'read_url' follows a clear verb_noun pattern.
One tool is too few for a server with a purpose that could reasonably support more operations, such as handling different URL types or providing metadata extraction. This minimal set feels thin and under-scoped for the domain.
The server's domain appears to be URL content reading, but the single tool only covers basic text conversion. There are obvious gaps, such as no tools for handling errors, extracting structured data, or managing different content formats, which limits agent effectiveness.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Jina AI Reader/Search MCP — turn any URL into clean LLM-ready markdown, plus web search.
Cloud scraping & crawling API for AI agents. Turn any URL into clean, LLM-ready markdown.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Converts any URL to clean, LLM-ready Markdown using real Chrome browsers
Related MCP Servers
- AlicenseAqualityFmaintenanceIntegrates Jina.ai's Grounding API with LLMs for real-time, fact-based web content grounding and analysis, enhancing LLM responses with precise, verified information.1321MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Jina AI's web reading, search, embeddings, and reranking capabilities. Enables URL content extraction, web/arXiv/image search, document deduplication, and relevance ranking through natural language.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceProvides web content extraction, search capabilities (web, arXiv, SSRN, images), semantic deduplication, and reranking through Jina AI's Reader, Embeddings, and Reranker APIs.1Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides tools for web content extraction, search, embeddings, reranking, and image processing via Jina AI APIs, enabling intelligent data retrieval and analysis.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/spences10/mcp-jinaai-reader'
If you have feedback or need assistance with the MCP directory API, please join our Discord server