Skip to main content
Glama
PsychArch

Jina AI MCP Tools

by PsychArch

Jina AI MCP Tools

Web search and page reading for coding agents. Two tools, no tool-catalog buffet.

jina-mcp-tools is an unofficial, deliberately small Model Context Protocol (MCP) server built on Jina AI Reader and Search.

It gives Codex, Claude Code, and other coding agents the two web capabilities they usually need while programming:

  • Find a small set of relevant pages.

  • Read the pages that actually matter.

That is the whole menu. No embeddings, screenshotting, image search, classification, reranking, or PDF archaeology. Those are useful tools—just not always useful tools to carry into every coding session.

NOTE

This is an unofficial community project. It is not affiliated with or endorsed by Jina AI, and it uses Jina AI APIs rather than replacing them.

Why Another Jina Integration?

Jina already provides an excellent official MCP server and official CLI. They are designed to expose a broad range of Jina capabilities. This project makes a different tradeoff: it treats context space and tool-selection attention as resources worth saving.

MCP tool definitions typically enter an agent's context before the real work begins. A broad catalog is valuable when the agent needs it; for everyday programming research, it can be more menu than meal. jina-mcp-tools exposes at most two focused tools and follows one deliberately boring workflow:

  1. Search the web and receive a short list of results.

  2. Pick the useful URLs.

  3. Read those pages, one manageable page at a time.

  4. Get back to the code.

Boring infrastructure is often very considerate infrastructure.

Related MCP server: Jina Web Search MCP

Which Jina Integration Should I Use?

jina-mcp-tools

Official Jina MCP

Official Jina CLI

Interface

Local or self-hosted MCP over stdio/HTTP

Hosted remote MCP

Shell commands

Default scope

Web search and page reading

Broad Jina tool catalog

Broad Jina command suite

Context approach

At most two small tool definitions

Server-side tool filters are available

Uses the agent's existing shell tool and progressive --help

Large pages

Explicit token-based pagination with an LRU cache

Client-aware response guardrails

Standard output and Unix pipes

Best fit

Coding agents that want a small native MCP surface

Hosted access, research tools, images, PDFs, embeddings, or reranking

Agents and humans who want pipes, JSON, scripting, and the wider Jina platform

Choose jina-mcp-tools when native MCP integration, a minimal default tool surface, and paginated reading matter most.

Choose the official MCP server when you want a hosted endpoint or need its wider capabilities. It can also be narrowed with include_tools or include_tags, which is a good option when hosting convenience matters more than running a local process.

Choose the official CLI when your agent already has reliable shell access and you want Unix composition or the full Jina API suite without registering a large MCP catalog.

Quick Start

Prerequisites

  • Node.js 20 or later.

  • A Jina AI API key for web search. The reader works without a key, subject to Jina's unauthenticated rate limits.

Set the API key in your shell if you want both search and reading:

export JINA_API_KEY=jina_your_api_key

Codex

codex mcp add jina-web --env JINA_API_KEY="$JINA_API_KEY" -- npx -y jina-mcp-tools

Claude Code

claude mcp add --scope user \
  --env JINA_API_KEY="$JINA_API_KEY" \
  --transport stdio jina-web -- npx -y jina-mcp-tools

Omit the API-key option from either command for reader-only mode.

VS Code

VS Code stores MCP configuration in a user-profile mcp.json or a workspace-level .vscode/mcp.json. Its configuration uses servers, not mcpServers. This example securely prompts for the API key and stores it using VS Code's input-variable support:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "jina-api-key",
      "description": "Jina AI API key",
      "password": true
    }
  ],
  "servers": {
    "jina-web": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "jina-mcp-tools"],
      "env": {
        "JINA_API_KEY": "${input:jina-api-key}"
      }
    }
  }
}

Open the user configuration with MCP: Open User Configuration, or save the file as .vscode/mcp.json to share the server configuration with a workspace. Remove env and inputs for reader-only mode.

For a reader-only user-profile installation from the command line:

code --add-mcp "{\"name\":\"jina-web\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"jina-mcp-tools\"]}"

Claude Desktop, Cursor, and Other MCP Clients

For clients that use the mcpServers JSON format:

{
  "mcpServers": {
    "jina-web": {
      "command": "npx",
      "args": [
        "-y",
        "jina-mcp-tools"
      ],
      "env": {
        "JINA_API_KEY": "your_jina_api_key_here"
      }
    }
  }
}

The default transport is stdio. Remove the env block for reader-only mode.

Available Tools

jina_reader

Extract and read content from a web page.

Parameters:

  • url — URL to read (required).

  • page — Page number for paginated content (default: 1).

  • customTimeout — Timeout override in seconds (optional).

Designed for coding-agent research:

  • Automatically paginates large documents instead of returning one oversized response.

  • Keeps an LRU cache so later pages of the same URL are available immediately.

  • Converts GitHub file URLs to raw content URLs.

  • Tries direct Accept: text/markdown retrieval for a maintained allowlist of documentation and blog hosts, then falls back to r.jina.ai if the response fails or is empty.

The default cache holds 50 URLs, and each page is limited to approximately 15,000 tokens. Both values are configurable.

Search the web and return a lightweight shortlist. Use jina_reader to retrieve the full content of promising results. A Jina API key is required.

Only one search tool is registered, depending on --search-endpoint:

  • jina_search uses s.jina.ai (standard, the default).

  • jina_search_vip uses svip.jina.ai (vip).

Parameters:

  • query — Search query (required).

  • count — Number of results (default: 5).

  • siteFilter — Limit results to a domain such as github.com.

The small default result count is intentional: search first, read selectively, and leave some context for the repository you were working on in the first place.

Configuration

Usage: jina-mcp-tools [options]

Options:
  --transport <stdio|http>         Transport type (default: stdio)
  --host <host>                    Host/interface in HTTP mode (default: 127.0.0.1)
  --port <1-65535>                 HTTP port (default: 3000)
  --tokens-per-page <positive-int> Tokens per reader page (default: 15000)
  --search-endpoint <standard|vip> Search endpoint (default: standard)
  --cache-size <positive-int>      Reader cache size in URLs (default: 50)
  -h, --help                       Show the built-in help

HTTP Transport

HTTP mode is intended for self-hosted deployments or clients that cannot spawn a local stdio process.

Start the server:

# Search and reader
JINA_API_KEY=your_api_key npx -y jina-mcp-tools \
  --transport http \
  --host 127.0.0.1 \
  --port 3000

# Reader only
npx -y jina-mcp-tools --transport http --port 3000

Connect to http://localhost:3000/mcp:

  • Codex: codex mcp add jina-web --url http://localhost:3000/mcp

  • Claude Code: claude mcp add --transport http jina-web http://localhost:3000/mcp

  • MCP Inspector: npx -y @modelcontextprotocol/inspector

  • VS Code: code --add-mcp "{\"name\":\"jina-web\",\"type\":\"http\",\"url\":\"http://localhost:3000/mcp\"}"

HTTP Security

HTTP mode binds to 127.0.0.1 by default. For a remote deployment, put the server behind TLS and require a bearer token:

JINA_MCP_HTTP_AUTH_TOKEN=change-me \
  npx -y jina-mcp-tools --transport http --host 0.0.0.0 --port 3000

Clients must send:

Authorization: Bearer change-me

Browser-origin requests are limited to localhost by default. Set JINA_MCP_ALLOWED_ORIGINS to a comma-separated allowlist for browser-based remote clients.

Running the MCP process locally does not make Jina requests offline: search and most reader requests still call Jina AI services. Some allowlisted markdown hosts and GitHub file URLs may be fetched directly.

Proxy Environment Variables

To route outbound requests through a proxy, enable Node's proxy environment support and provide the proxy URLs:

NODE_USE_ENV_PROXY=1 \
HTTP_PROXY=http://127.0.0.1:7890 \
HTTPS_PROXY=http://127.0.0.1:7890 \
NO_PROXY=localhost,127.0.0.1,::1 \
npx -y jina-mcp-tools

For MCP clients that use the mcpServers configuration format, include the same environment variables:

{
  "mcpServers": {
    "jina-web": {
      "command": "npx",
      "args": ["-y", "jina-mcp-tools"],
      "env": {
        "JINA_API_KEY": "your_jina_api_key_here",
        "NODE_USE_ENV_PROXY": "1",
        "HTTP_PROXY": "http://127.0.0.1:7890",
        "HTTPS_PROXY": "http://127.0.0.1:7890",
        "NO_PROXY": "localhost,127.0.0.1,::1"
      }
    }
  }
}

Alternatively, start Node with NODE_OPTIONS=--use-env-proxy. Proxy URLs are only used when proxy environment support is enabled.

Scope and Non-Goals

This project intentionally does not aim to expose every Jina API. It is not the right choice when you need embeddings, reranking, classification, screenshots, image or academic search, query expansion, deduplication, or structured PDF extraction. Use the official MCP server or CLI for those jobs.

The narrow scope is the feature. If this server grows twenty tools and develops a small cockpit, something has gone terribly wrong.

License

MIT

Available Tools

1 tool
jina_readerJina Web ReaderC

Read and extract content from web page.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the webpage to read and extract content from
pageNoPage number for paginated content (1-indexed)
customTimeoutNoOverride timeout in seconds for slow sites

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether it is read-only, rate limits, or error handling. It implies reading but offers no further context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. However, it is very minimal and could be expanded slightly without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (read a URL), but the description lacks details about output format, pagination handling (page parameter), or timeout behavior (customTimeout). It is minimally complete but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain parameter semantics or usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read and extract content from web page' clearly states the verb and resource, but lacks specificity about what kind of extraction (e.g., full HTML, text only). With no sibling tools to differentiate, it is adequate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives or any exclusions. The description does not mention constraints like authentication requirements or site compatibility.

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. 1 tool updatev1.2.4
    • Changedjina_reader1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 1 tool updatev1.2.0
    • First observedjina_reader

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no ambiguity or risk of misselection.

Naming Consistency5/5

The single tool name follows a clear 'jina_reader' pattern, consistent with common conventions.

Tool Count2/5

One tool is too few for a server named 'Jina AI MCP Tools', which suggests a broader scope; a tool for reading web pages alone feels insufficient.

Completeness2/5

The server provides only a read operation, lacking obvious complementary tools like search, list, or write operations, resulting in significant gaps for a comprehensive AI tools surface.

Maintenance

ActivitySlowing
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Enables efficient web search integration with Jina.ai's Search API, offering clean, LLM-optimized content retrieval with support for various content types and configurable caching.
    1
    21 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web content retrieval and semantic search capabilities through the Jina AI API. Provides tools to fetch content from URLs and perform intelligent web searches with natural language queries.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides web content extraction, search capabilities (web, arXiv, SSRN, images), semantic deduplication, and reranking through Jina AI's Reader, Embeddings, and Reranker APIs.
    1
    Apache 2.0