MCP
jina-ai · jina-ai/MCP
An official Jina AI remote MCP server providing tools for AI agents to read web pages, search content, generate embeddings, and rerank results using Jina AI's APIs.
Official Jina AI Remote MCP Server
Preview
What you can do with it
- Have an agent summarize content from any web page or PDF using the Reader API.
- Integrate advanced search capabilities into an AI agent to find relevant information.
- Enhance an agent's understanding of text through embeddings for better context.
Safety check
Usable, but read the notes first.
- ●Installer downloads a remote script and pipes it to the shell.
README.md
Automated scan of the repo files. Always review code you run.
From the README
Jina AI Remote MCP Server
A remote Model Context Protocol (MCP) server for the Jina Reader, Search, Embeddings and Reranker APIs:
Usage
[!WARNING] Some clients do not support env variable, so you may need to replace
${JINA_API_KEY}below to a hardcoded real API keyjina_xxx.
For client that supports remote MCP server:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}" // optional
}
}
}
}
For Claude Code:
claude mcp add -s user --transport http jina https://mcp.jina.ai/v1 \
--header "Authorization: Bearer ${JINA_API_KEY}"
For OpenAI Codex: find ~/.codex/config.toml and add the following:
[mcp_servers.jina-mcp-server]
command = "npx"
args = [
"-y",
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization: Bearer ${JINA_API_KEY}"]
For client that does not support remote MCP server yet, you need mcp-remote a local proxy to connect to the remote MCP server.
{
"mcpServers": {
"jina-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization: Bearer ${JINA_API_KEY}"
]
}
}
}
Available tools
| Tool | Description | Is Jina API Key Required? |
|---|---|---|
primer | Get current contextual information for localized, time-aware responses | No |
read_url | Read a web page or PDF as markdown. Pass question for passages instead of the full body via Reader API | Optional* |
capture_screenshot_url | Capture a screenshot of a web page via Reader API | Optional* |
guess_datetime_url | Guess a page's publish or last-update datetime, with a confidence score | No |
search_web | Search the web. Returns titles, URLs and engine snippets via Reader API | Yes |
search_arxiv | Search academic papers and preprints on arXiv repository via Reader API | Yes |
search_ssrn | Search academic papers on SSRN (Social Science Research Network) via Reader API | Yes |
search_images | Search the web for images via Reader API | Yes |
search_jina_blog | Search Jina AI news and blog posts at jina.ai/news | No |
sort_by_relevance | Rerank documents by relevance to a query via Reranker API | Yes |
deduplicate_strings | Get top-k semantically unique strings via Embeddings API and submodular optimization | Yes |
extract_pdf | Extract figures, tables, and equations from PDF documents (arXiv papers or any PDF URL) using layout detection | Yes |
Optional tools work without an API key at rate limits. Use a key for higher limits. Free keys: https://jina.ai
Tool Filtering before Registering
Registering a tool costs context tokens for its name, description and schema whether or not it is called. With 12 tools, that budget is spent before the first request.
Filtering server-side through query parameters on the endpoint URL (/v1?...) excludes tools before registration, so the client never sees them.
Query Parameters
| Parameter | Description | Example |
|---|---|---|
exclude_tools | Comma-separated tool names to exclude | exclude_tools=search_web,search_arxiv |
include_tools | Comma-separated tool names to include | include_tools=read_url,search_web |
exclude_tags | Comma-separated tags to exclude | exclude_tags=search,rerank |
include_tags | Comma-separated tags to include | include_tags=search,read |
max_tokens | Cap read_url response size in tokens. 0 disables truncation | max_tokens=50000 |
Available Tags
| Tag | Tools |
|---|---|
search | search_web, search_arxiv, search_ssrn, search_images, search_jina_blog |
read | read_url, capture_screenshot_url |
utility | primer, guess_datetime_url, extract_pdf |
rerank | sort_by_relevance, deduplicate_strings |
Precedence
Filters are applied in this order (highest to lowest priority):
exclude_tools- Always excludes specified toolsexclude_tags- Excludes tools in specified tagsinclude_tools- Includes specified toolsinclude_tags- Starts with only tools in specified tags
Examples
Exclude the rerank and utility tags:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?exclude_tags=rerank,utility",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}
Only include search and read tools:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?include_tags=search,read",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}
Exclude specific tools:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?exclude_tools=search_ssrn,search_images",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}
Troubleshooting
I got stuck in a tool calling loop - what happened?
This is a common issue with LMStudio when the default context window is 4096 and you're using a thinking model like gpt-oss-120b or qwen3-4b-thinking. As thinking and tool calling continue, the run hits the context limit, the model loses the start of the task, and it loops.
Load the model with enough context length to hold the whole tool-calling chain.
I can't see all tools.
Some MCP clients have local caching and do not act