Jina AI Reader/Search MCP — turn any URL into clean LLM-ready markdown, plus web search.
Two tools with clear verb-noun naming (read_url, search) and reasonable descriptions (145 - 180 chars, within baseline 34 - 392). Input schemas present with typed properties. However, critical gaps: no output schema documentation, missing parameter descriptions for _apiKey (generic boilerplate), no error handling guidance, no pagination support for search results, and no input validation rules stated in descriptions. The _apiKey parameter violates secret-injection pattern by exposing credentials as a tool parameter rather than server-side injection. Truncation logic (100k/50k chars) is undocumented and could surprise agents.
Fetch any web page as clean, LLM-ready markdown (strips nav/ads) — ideal for giving an agent the readable content of a URL.
Web search returning the top results as markdown. Higher-volume usage may require your own Jina API key (pass via _apiKey).
API key exposed as tool parameter (_apiKey) violates secret-injection pattern. Credentials should be injected server-side via environment variables, not passed by agents.
No output schema documented. Agents cannot predict response structure (markdown field, truncated flag, error object). LLMs must infer from examples.
Search tool returns up to 50k chars of markdown with no pagination support. Large result sets will blow context windows. No limit parameter, no cursor/offset, no total count.
Truncation behavior (100k for read_url, 50k for search) is undocumented. Agents cannot know why results are incomplete or plan for it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Error responses return raw HTTP status + text. No recovery guidance (e.g., 'URL not found, verify the domain is correct'). LLMs cannot self-correct.