MCP JinaAI Search Server
# mcp-jinaai-search
---
## ⚠️ Notice
**This repository is no longer maintained.**
The functionality of this tool is now available in [mcp-omnisearch](https://github.com/spences10/mcp-omnisearch), which combines multiple MCP tools in one unified package.
Please use [mcp-omnisearch](https://github.com/spences10/mcp-omnisearch) instead.
---
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.
<a href="https://glama.ai/mcp/servers/u6603w196t">
<img width="380" height="200" src="https://glama.ai/mcp/servers/u6603w196t/badge" />
</a>
## 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 are
examples for different environments:
### Cline Configuration
Add this to your Cline MCP settings:
```json
{
"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:
```json
{
"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.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
## Development
### Setup
1. Clone the repository
2. Install dependencies:
```bash
pnpm install
```
3. Build the project:
```bash
pnpm run build
```
4. Run in development mode:
```bash
pnpm run dev
```
### Publishing
1. Create a changeset:
```bash
pnpm changeset
```
2. Version the package:
```bash
pnpm version
```
3. Build and publish:
```bash
pnpm release
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- Built on the
[Model Context Protocol](https://github.com/modelcontextprotocol)
- Powered by [Jina.ai Search API](https://jina.ai)
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'search' has a clear and singular purpose, making it impossible for an agent to misselect among non-existent alternatives.
A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The name 'search' follows a simple verb pattern, which is appropriate and unambiguous for its function.
A single tool is too few for a server named 'MCP JinaAI Search Server', which suggests a broader search functionality scope. While the tool covers basic web search, the server lacks additional tools for advanced operations like filtering, pagination, or domain-specific searches, making it feel thin and under-scoped.
The server is severely incomplete for a search domain. It only offers a basic search tool without any supporting operations such as refining queries, handling multiple result pages, or accessing search history. This creates significant gaps that could lead to agent failures when more complex search tasks are required.