mcp-jinaai-search
A Model Context Protocol (MCP) server for integrating Jina.ai's SearchAPI with LLMs. This server provides efficient and comprehensive websearch capabilities, optimised for retrieving clean, LLM-friendlycontent from the web.
Features
- ๐ 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
Configuration
This server requires configuration through your MCP client. Here areexamples for different environments:
Cline Configuration
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"
}
}
}
}
Claude Desktop with WSL Configuration
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"
]
}
}
}
Environment Variables
The server requires the following environment variable:
JINAAI_API_KEY
: Your Jina.ai API key (required)
API
The server implements a single MCP tool with configurable parameters:
search
Search the web and get clean, LLM-friendly content using Jina.aiReader. Returns top 5 results with URLs and clean content.
Parameters:
query
(string, required): Search queryformat
(string, optional): Response format ("json" or "text").Defaults to "text"no_cache
(boolean, optional): Bypass cache for fresh results.Defaults to falsetoken_budget
(number, optional): Maximum number of tokens for thisrequestbrowser_locale
(string, optional): Browser locale for renderingcontentstream
(boolean, optional): Enable stream mode for large pages.Defaults to falsegather_links
(boolean, optional): Gather all links at the end ofresponse. Defaults to falsegather_images
(boolean, optional): Gather all images at the end ofresponse. Defaults to falseimage_caption
(boolean, optional): Caption images in the content.Defaults to falseenable_iframe
(boolean, optional): Extract content from iframes.Defaults to falseenable_shadow_dom
(boolean, optional): Extract content from shadowDOM. Defaults to falseresolve_redirects
(boolean, optional): Follow redirect chains tofinal URL. Defaults to true
Development
Setup
- Clone the repository
- Install dependencies:
pnpm install
- Build the project:
pnpm run build
- Run in development mode:
pnpm run dev
Publishing
- Create a changeset:
pnpm changeset
- Version the package:
pnpm version
- Build and publish:
pnpm release
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Acknowledgments
- Built on theModel Context Protocol
- Powered by Jina.ai Search API