by jina-ai
Official Jina AI Remote MCP Server
# Add to your Claude Code skills
git clone https://github.com/jina-ai/MCPA remote Model Context Protocol (MCP) server that provides access to Jina Reader, Embeddings and Reranker APIs with a suite of URL-to-markdown, web search, image search, and embeddings/reranker tools:
| Tool | Description | Is Jina API Key Required? |
|-----------|-------------|----------------------|
| primer | Get current contextual information for localized, time-aware responses | No |
| read_url | Extract clean, structured content from web pages as markdown via Reader API | Optional* |
| capture_screenshot_url | Capture high-quality screenshots of web pages via Reader API | Optional* |
| guess_datetime_url | Analyze web pages for last update/publish datetime with confidence scores | No |
| search_web | Search the entire web for current information and news 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 | Yes |
| | Search for images across the web (similar to Google Images) via | Yes |
| | Search Jina AI news and blog posts at | No |
| | Search for academic papers and return BibTeX citations (DBLP + Semantic Scholar) | No |
| | Expand and rewrite search queries based on the query expansion model via | Yes |
| | Read multiple web pages in parallel for efficient content extraction via | Optional* |
| | Run multiple web searches in parallel for comprehensive topic coverage and diverse perspectives via | Yes |
| | Run multiple arXiv searches in parallel for comprehensive research coverage and diverse academic angles via | Yes |
| | Run multiple SSRN searches in parallel for comprehensive social science research coverage via | Yes |
| | Rerank documents by relevance to a query via | Yes |
| | Classify texts into user-defined labels via | Yes |
| | Get top-k semantically unique strings via and | Yes |
| | Get top-k semantically unique images via and | Yes |
| | Extract figures, tables, and equations from PDF documents (arXiv papers or any PDF URL) using layout detection | Yes |
No comments yet. Be the first to share your thoughts!
search_imagessearch_jina_blogsearch_bibtexexpand_queryparallel_read_urlparallel_search_webparallel_search_arxivparallel_search_ssrnsort_by_relevanceclassify_textdeduplicate_stringsdeduplicate_imagesextract_pdfOptional tools work without an API key but have rate limits. For higher rate limits and better performance, use a Jina API key. You can get a free Jina API key from https://jina.ai
[!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.
[!NOTE] The server uses Streamable HTTP transport (MCP spec 2025-03-26). The
/sseendpoint is kept as an alias for backward compatibility. See FAQ for details.
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 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}"
]
}
}
}
For Claude Code:
[!WARNING] Upgrading from
/sse? If you previously added with--transport sse, remove it first withclaude mcp remove -s user jina, then re-add using the command below.
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}"]
Every MCP tool requires the LLM to pre-allocate tokens in its context window for the tool's name, description, and schema. For LLMs with limited context windows, registering all 19 tools can consume significant space before any actual work begins.
By filtering tools server-side via query parameters on the endpoint URL (/v1?...), excluded tools are never registered with the MCP client. The client and LLM never see them, saving context window for what matters.
| 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=parallel,rerank |
| include_tags | Comma-separated tags to include | include_tags=search,read |
| Tag | Tools |
|-----|-------|
| search | search_web, search_arxiv, search_ssrn, search_images, search_jina_blog, search_bibtex |
| parallel | parallel_search_web, parallel_search_arxiv, parallel_search_ssrn, parallel_read_url |
| read | read_url, parallel_read_url, capture_screenshot_url |
| utility | primer, show_api_key, expand_query, guess_datetime_url, extract_pdf |
| rerank | sort_by_relevance, deduplicate_strings, deduplicate_images |
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 tagsExclude parallel tools (saves ~4 tools worth of context tokens):
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?exclude_tags=parallel",
"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_images,deduplicate_images",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}
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 the thinking and tool calling continue, once you hit the context window limit, the AI starts losing track of the beginning of the task. That's how it gets trapped in this rolling context window.
The solution is to load the model with enough context length to contain the full tool calling chain and thought process.

Some MCP clients have local caching and do not actively update tool definitions. If you're not seeing all the available tools or if tools seem outdated, you may need to remove and re-add the jina-mcp-server to your MCP client configuration. This will force the client to refresh its cached tool definitions. In LMStudio, you can click the refresh button to load new tools.

Cursor and Claude Desktop (Windows) have a bug where spaces inside args aren't escaped when it invokes npx, which ends up mangling these values. You can work around it using:
{
// rest of config...
"args": [
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization:${AUTH_HEADER}" // note no spaces around ':'
],
"env": {
"AUTH_HEA