colpali_mcp_server

camillebrl/colpali_mcp_server

3.3

If you are the rightful owner of colpali_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Colpali MCP Server is a Model Context Protocol server designed for semantic image retrieval using ColPali and Elasticsearch.

Tools
4
Resources
0
Prompts
0

Colpali MCP Server - Python

Un serveur MCP (Model Context Protocol) pour effectuer de la recherche (retrieval) sur une base de données d'images en utilisant ColPali et Elasticsearch.

🚀 Fonctionnalités

  • Recherche sémantique d'images : Trouvez des images pertinentes en utilisant des requêtes en langage naturel
  • Indexation d'images et de PDFs : Indexez automatiquement des images individuelles ou des PDFs complets
  • Embeddings multimodaux : Utilise ColPali pour générer des embeddings riches combinant vision et langage
  • Stockage scalable : Elasticsearch pour un stockage et une recherche efficaces
  • API MCP standard : Compatible avec tout client MCP

📋 Prérequis

  • Python 3.10+
  • Elasticsearch 8.0+
  • GPU recommandé pour ColPali (fonctionne aussi sur CPU)

🔧 Installation

git clone https://github.com/camillebrl/colpali_server
cd colpali_server
make install

🎯 Utilisation

Ajoute à ton mcp.json de ton client MCP:

{
  "mcpServers": {
    "colpali-server": {
          "command": "path to colpali_server/start_server.sh"
          "env": {
            "ES_HOST": "localhost:9200", # adapt to your elasticsearch hostname
            "ES_USER": "elastic", # adapt to your elasticsearch username
            "ES_PASSWORD": "mot_de_passe_elasticsearch" # adapt to your elasticsearch password
          }
    }
  }
}

Utiliser avec un client MCP

Le serveur expose les outils suivants :

🔍 search_images

Recherche des images pertinentes dans la base de données.

{
  "tool": "search_images",
  "arguments": {
    "query": "schéma d'architecture réseau",
    "top_k": 5
  }
}
📥 index_image

Indexe une nouvelle image dans la base de données. Note que les images d'un folder sont indexées 1 par 1 (batch size de 1). Si vous avez accès à une meilleure GPU, tester un batch_size plus grand.

{
  "tool": "index_image",
  "arguments": {
    "image_path": "/path/to/image.png",
    "source_file": "architecture.pdf",
    "page_number": 3,
    "metadata": {
      "author": "John Doe",
      "category": "network"
    }
  }
}
📊 get_index_stats

Obtient les statistiques de l'index.

{
  "tool": "get_index_stats",
  "arguments": {}
}
🗑️ clear_index

Vide complètement l'index (attention : irréversible).

{
  "tool": "clear_index",
  "arguments": {
    "confirm": true
  }
}
Debugging

Pour afficher les logs du server:

tail -n 1000 /tmp/colpali_mcp_startup.log

📚 Ressources

NOTE

Si vous avez plus de capacité GPU, modifiez le maximul top_k dans le image_rag_server.py pour le tool search_screenshots à + (en fonction de vos ressources). Car en effet, c'est le nombre max d'images que prendra le vlm mcp server tool search en entrée.