A Model Context Protocol (MCP) server for integrating Jina.ai's Search API with LLMs. This server provides efficient and comprehensive web search capabilities, optimised for retrieving clean, LLM-friendly content from the web.
- 🔍 Advanced web search through Jina.ai Search API
- 🚀 Fast and efficient content retrieval
- 📄 Clean text extraction with preserved structure
- 🧠 Content optimised for LLMs
- 🌐 Support for various content types including documentation
- 🏗️ Built on the Model Context Protocol
- 🔄 Configurable caching for performance
- 🖼️ Optional image and link gathering
- 🌍 Localisation support through browser locale
- 🎯 Token budget control for response size
This server requires configuration through your MCP client. Here are examples for different environments:
Add this to your Cline MCP settings:
{
"mcpServers": {
"jinaai-search": {
"command": "node",
"args": ["-y", "mcp-jinaai-search"],
"env": {
"JINAAI_API_KEY": "your-jinaai-api-key"
}
}
}
}
For WSL environments, add this to your Claude Desktop configuration:
{
"mcpServers": {
"jinaai-search": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"JINAAI_API_KEY=your-jinaai-api-key npx mcp-jinaai-search"
]
}
}
}
The server requires the following environment variable:
-
JINAAI_API_KEY
: Your Jina.ai API key (required)
The server implements a single MCP tool with configurable parameters:
Search the web and get clean, LLM-friendly content using Jina.ai Reader. Returns top 5 results with URLs and clean content.
Parameters:
-
query
(string, required): Search query -
format
(string, optional): Response format ("json" or "text"). Defaults to "text" -
no_cache
(boolean, optional): Bypass cache for fresh results. Defaults to false -
token_budget
(number, optional): Maximum number of tokens for this request -
browser_locale
(string, optional): Browser locale for rendering content -
stream
(boolean, optional): Enable stream mode for large pages. Defaults to false -
gather_links
(boolean, optional): Gather all links at the end of response. Defaults to false -
gather_images
(boolean, optional): Gather all images at the end of response. Defaults to false -
image_caption
(boolean, optional): Caption images in the content. Defaults to false -
enable_iframe
(boolean, optional): Extract content from iframes. Defaults to false -
enable_shadow_dom
(boolean, optional): Extract content from shadow DOM. Defaults to false -
resolve_redirects
(boolean, optional): Follow redirect chains to final URL. Defaults to true
- Clone the repository
- Install dependencies:
pnpm install
- Build the project:
pnpm run build
- Run in development mode:
pnpm run dev
- Create a changeset:
pnpm changeset
- Version the package:
pnpm version
- Build and publish:
pnpm release
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see the LICENSE file for details.
- Built on the Model Context Protocol
- Powered by Jina.ai Search API