Qdrant RagSystem MCP
Qdrant RAG MCP Server
MCP server con embedding locale (google/embeddinggemma-300m) tramite sentence-transformers e database vettoriale Qdrant.
Caratteristiche
- Embedding completamente locale: Utilizza google/embeddinggemma-300m (768 dimensioni) tramite sentence-transformers
- Database vettoriale: Qdrant cloud per storage e ricerca semantica
- 8 Tools MCP: Gestione collezioni, ricerca semantica e documenti
Installazione
# Crea virtual environment (opzionale ma consigliato)
python3 -m venv venv
source venv/bin/activate # Su Windows: venv\Scripts\activate
# Installa dipendenze
pip install -r requirements.txt
Nota: Al primo avvio, sentence-transformers scaricherà automaticamente il modello google/embeddinggemma-300m (~300MB).
Configurazione
Le credenziali Qdrant sono in .env
Avvio
python3 main.py
Tools Disponibili
1. list_collections
Lista tutte le collezioni disponibili in Qdrant.
2. create_collection
Crea una nuova collezione con configurazione ottimale per embeddings (768 dim, Cosine distance).
Parametri:
collection_name
(string): Nome della nuova collezione
3. get_collection_info
Ottieni informazioni dettagliate su una collezione.
Parametri:
collection_name
(string): Nome della collezione
4. search_collection
Ricerca semantica all'interno di una collezione specifica.
Parametri:
collection_name
(string): Nome della collezionequery
(string): Testo della querylimit
(number, opzionale): Numero massimo di risultati (default: 5)
5. search_chunk
Cerca un chunk specifico tramite ID.
Parametri:
collection_name
(string): Nome della collezionechunk_id
(string): ID del chunk
6. search_all_chunks
Ricerca semantica in tutte le collezioni disponibili.
Parametri:
query
(string): Testo della querylimit
(number, opzionale): Numero massimo di risultati per collezione (default: 5)
7. search_documents
Cerca documenti esistenti per fonte (source).
Parametri:
collection_name
(string): Nome della collezionesource
(string, opzionale): Nome della fonte/documentolimit
(number, opzionale): Numero massimo di chunk (default: 100)
8. add_document
Aggiunge un documento, suddividendolo in chunk e generando embeddings automaticamente.
Parametri:
collection_name
(string): Nome della collezionetext
(string): Testo completo del documentosource
(string): Nome/identificatore del documentometadata
(object, opzionale): Metadati aggiuntivichunk_size
(number, opzionale): Dimensione chunk in parole (default: 512)chunk_overlap
(number, opzionale): Sovrapposizione in parole (default: 50)
Utilizzo con Claude Desktop
Aggiungi al file di configurazione di Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"qdrant-rag": {
"command": "python3",
"args": ["/Users/your-user/QdrantRagSystemMCP/main.py"],
"env": {
"QDRANT_URL": "https://tuo-url-qdrant.cloud.qdrant.io",
"QDRANT_API_KEY": "tuo-qdrant-token"
}
}
}
}
Tecnologie
- MCP SDK: mcp
- Qdrant: qdrant-client
- Sentence Transformers: sentence-transformers
- Modello: google/embeddinggemma-300m (768 dimensioni, locale)
- Python: 3.8+