jina ai mcp multimodal search

Local 2025-09-01 00:34:06 0

Enables semantic search, image search, and cross-modal search functionalities through integration with Jina AI's neural search capabilities.


A Model Context Protocol (MCP) server that provides seamless integration with Jina AI's neural search capabilities. This server enables semantic search, image search, and cross-modal search functionalities through a simple interface.

? Features

  • Semantic Search: Find semantically similar documents using natural language queries
  • Image Search: Search for visually similar images using image URLs
  • Cross-Modal Search: Perform text-to-image or image-to-text searches

? Prerequisites

  • Node.js 16 or higher
  • A Jina AI account and API key (Get one here)
  • MCP-compatible environment (e.g., Cline)

?️ Installation

  1. Clone the repository:

    git clone <repository-url>
    cd jina-ai-mcp

  2. Install dependencies:

    npm install

  3. Create a .env file with your Jina AI API key:

    JINA_API_KEY=your_api_key_here

  4. Build the server:

    npm run build

⚙️ Configuration

Add the following configuration to your MCP settings file:

{
  "mcpServers": {
    "jina-ai": {
      "command": "node",
      "args": [
        "/path/to/jina-ai-mcp/build/index.js"
      ],
      "env": {
        "JINA_API_KEY": "your_api_key_here"
      }
    }
  }
}

? Available Tools

Perform semantic/neural search on text documents.

use_mcp_tool({
  server_name: "jina-ai",
  tool_name: "semantic_search",
  arguments: {
    query: "search query text",
    collection: "your-collection-name",
    limit: 10 // optional, defaults to 10
  }
})

Search for similar images using an image URL.

use_mcp_tool({
  server_name: "jina-ai",
  tool_name: "image_search",
  arguments: {
    imageUrl: "https://example.com/image.jpg",
    collection: "your-collection-name",
    limit: 10 // optional, defaults to 10
  }
})

Perform text-to-image or image-to-text search.

use_mcp_tool({
  server_name: "jina-ai",
  tool_name: "cross_modal_search",
  arguments: {
    query: "a beautiful sunset", // or image URL for image2text
    mode: "text2image", // or "image2text"
    collection: "your-collection-name",
    limit: 10 // optional, defaults to 10
  }
})

? Response Format

All search tools return results in the following format:

{
  content: [
    {
      type: "text",
      text: JSON.stringify({
        results: [
          {
            id: string,
            score: number,
            data: Record<string, any>
          }
        ]
      }, null, 2)
    }
  ]
}

? Error Handling

The server handles various error cases: - Invalid API key - Missing or invalid parameters - API rate limits - Network errors - Invalid collection names

All errors are properly formatted and returned with appropriate error codes and messages.

? Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

? License

This project is licensed under the MIT License - see the LICENSE file for details.

? Acknowledgments