MCP JinaAI Reader Server
Lector mcp-jinaai
⚠️ Aviso
Este repositorio ya no se mantiene.
La funcionalidad de esta herramienta ahora está disponible en mcp-omnisearch , que combina múltiples herramientas MCP en un paquete unificado.
Utilice mcp-omnisearch en su lugar.
Un servidor de Protocolo de Contexto de Modelo (MCP) para integrar la API de Lector de Jina.ai con LLM. Este servidor proporciona capacidades de extracción de contenido web eficientes y completas, optimizadas para la documentación y el análisis de contenido web.
Related MCP server: Jina AI Remote MCP Server
Características
Extracción avanzada de contenido web a través de la API del lector Jina.ai
🚀 Recuperación de contenido rápida y eficiente
📄 Extracción de texto completa con estructura preservada
Formato limpio optimizado para LLM
🌐 Soporte para varios tipos de contenido, incluida documentación
🏗️ Construido sobre el Protocolo de Contexto Modelo
Configuración
Este servidor requiere configuración a través de su cliente MCP. A continuación, se muestran ejemplos para diferentes entornos:
Configuración de Cline
Agregue esto a su configuración de Cline MCP:
{
"mcpServers": {
"jinaai-reader": {
"command": "node",
"args": ["-y", "mcp-jinaai-reader"],
"env": {
"JINAAI_API_KEY": "your-jinaai-api-key"
}
}
}
}Escritorio Claude con configuración WSL
Para entornos WSL, agregue esto a su configuración de Claude Desktop:
{
"mcpServers": {
"jinaai-reader": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"JINAAI_API_KEY=your-jinaai-api-key npx mcp-jinaai-reader"
]
}
}
}Variables de entorno
El servidor requiere la siguiente variable de entorno:
JINAAI_API_KEY: Su clave API de Jina.ai (obligatoria)
API
El servidor implementa una única herramienta MCP con parámetros configurables:
leer_url
Convierta cualquier URL en texto compatible con LLM utilizando Jina.ai Reader.
Parámetros:
url(cadena, obligatoria): URL a procesarno_cache(booleano, opcional): Omite la caché para resultados actualizados. El valor predeterminado es falso.format(cadena, opcional): Formato de respuesta ("json" o "stream"). El valor predeterminado es "json".timeout(número, opcional): tiempo máximo en segundos para esperar la carga de la página webtarget_selector(cadena, opcional): selector CSS para centrarse en elementos específicoswait_for_selector(cadena, opcional): selector CSS para esperar elementos específicosremove_selector(cadena, opcional): selector CSS para excluir elementos específicoswith_links_summary(booleano, opcional): Recopilar todos los enlaces al final de la respuestawith_images_summary(booleano, opcional): Recopilar todas las imágenes al final de la respuestawith_generated_alt(booleano, opcional): agrega texto alternativo a las imágenes que no tienen subtítuloswith_iframe(booleano, opcional): incluye contenido iframe en la respuesta
Desarrollo
Configuración
Clonar el repositorio
Instalar dependencias:
npm installConstruir el proyecto:
npm run buildEjecutar en modo de desarrollo:
npm run devPublicación
Actualizar la versión en package.json
Construir el proyecto:
npm run buildPublicar en npm:
npm publishContribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Licencia MIT: consulte el archivo LICENCIA para obtener más detalles.
Expresiones de gratitud
Construido sobre el Protocolo de Contexto Modelo
Desarrollado por la API del lector Jina.ai
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
read_url
TDQS
Scored across 1 tool
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
Related MCP Connectors
Jina AI Reader/Search MCP — turn any URL into clean LLM-ready markdown, plus web search.
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
Cloud scraping & crawling API for AI agents. Turn any URL into clean, LLM-ready markdown.
Convert any webpage to clean LLM-ready markdown, extraction-first, with article and news modes.
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.131 npm1MIT
- 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