Databases Python ★ 1,440

qdrant/mcp-server-qdrant

A Qdrant MCP server

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "qdrant-mcp-server-qdrant": {
      "command": "python",
      "args": [
        "-m",
        "mcp_server_qdrant"
      ]
    }
  }
}

mcp-server-qdrant: Bir Qdrant MCP sunucusu

smithery badge

Model Context Protocol (MCP), LLM uygulamaları ile harici veri kaynakları ve araçları arasında sorunsuz entegrasyon sağlayan açık bir protokoldür. İster AI destekli bir IDE oluşturuyor olun, ister bir sohbet arayüzünü geliştiriyor olun, ister özel AI iş akışları oluşturuyor olun, MCP, LLM'leri ihtiyaç duydukları bağlam ile bağlamak için standartlaştırılmış bir yol sağlar.

Bu depo, Qdrant (bir vektör arama motoru) için MCP sunucusu oluşturmanın bir örneğidir.

Genel Bakış

Qdrant vektör arama motorunda anıları saklama ve alma işlemleri için resmi bir Model Context Protocol sunucusu. Qdrant veritabanının üstünde anlamsal bir bellek katmanı olarak çalışır.

Bileşenler

Araçlar

  1. qdrant-store
    • Qdrant veritabanında bilgi saklama
    • Giriş:
      • information (string): Saklanacak bilgi
      • metadata (JSON): Saklanacak isteğe bağlı metadata
      • collection_name (string): Bilginin saklanacağı koleksiyonun adı. Bu alan, varsayılan koleksiyon adı yoksa gereklidir. Varsayılan koleksiyon adı varsa, bu alan etkin değildir.
    • Döndürülen: Onay mesajı
  2. qdrant-find
    • Qdrant veritabanından ilgili bilgileri alma
    • Giriş:
      • query (string): Arama için kullanılacak sorgu
      • collection_name (string): Bilginin saklanacağı koleksiyonun adı. Bu alan, varsayılan koleksiyon adı yoksa gereklidir. Varsayılan koleksiyon adı varsa, bu alan etkin değildir.
    • Döndürülen: Qdrant veritabanında depolanan bilgiler ayrı mesajlar olarak

Ortam Değişkenleri

Yapılandırma ortam değişkenleri aracılığıyla yapılır. Tek komut satırı argümanı --transport, taşıma protokolünü seçmek için kullanılır.

[!NOTE] QDRANT_URL ve QDRANT_LOCAL_PATH değişkenlerini aynı anda sağlayamazsınız.

Ad Açıklama Varsayılan Değer
QDRANT_URL Qdrant sunucusunun URL'si Hiçbiri
QDRANT_API_KEY Qdrant sunucusu için API anahtarı Hiçbiri
COLLECTION_NAME Kullanılacak varsayılan koleksiyonun adı. Hiçbiri
QDRANT_LOCAL_PATH Yerel Qdrant veritabanına giden yol (QDRANT_URL alternatifi) Hiçbiri
EMBEDDING_PROVIDER Kullanılacak embedding sağlayıcısı (şu anda yalnızca "fastembed" desteklenir) fastembed
EMBEDDING_MODEL Kullanılacak embedding modelinin adı sentence-transformers/all-MiniLM-L6-v2
TOOL_STORE_DESCRIPTION Depolama aracı için özel açıklama settings.py içinde varsayılan değeri gözüne
TOOL_FIND_DESCRIPTION Bulma aracı için özel açıklama settings.py içinde varsayılan değeri gözüne
QDRANT_SEARCH_LIMIT Arama sonuçlarından döndürülecek maksimum sonuç sayısı 10
QDRANT_READ_ONLY Salt okunur modu etkinleştir (qdrant-store aracını devre dışı bırakır) false

FastMCP Ortam Değişkenleri

mcp-server-qdrant FastMCP'ye dayandığından, tüm FastMCP ortam değişkenlerini de destekler. En önemli olanlar aşağıda listelenmiştir:

Ortam Değişkeni Açıklama Varsayılan Değer
FASTMCP_LOG_LEVEL Günlük kaydı seviyesini ayarlayın (DEBUG, INFO, WARNING, ERROR, CRITICAL) INFO
FASTMCP_SERVER_DEBUG Hata ayıklama modunu etkinleştir false
FASTMCP_SERVER_HOST Sunucunun bağlanacağı ana bilgisayar adresi 127.0.0.1
FASTMCP_SERVER_PORT Sunucunun çalışacağı port 8000
FASTMCP_SERVER_ON_DUPLICATE_RESOURCES Yinelenen kaynaklar için davranış (warn, error, replace, ignore) warn
FASTMCP_SERVER_ON_DUPLICATE_TOOLS Yinelenen araçlar için davranış (warn, error, replace, ignore) warn
FASTMCP_SERVER_ON_DUPLICATE_PROMPTS Yinelenen istemler için davranış (warn, error, replace, ignore) warn
FASTMCP_SERVER_DEPENDENCIES Sunucu ortamında yüklenecek bağımlılık listesi []

[!NOTE] Sunucuya özgü ayarlar FASTMCP_SERVER_ ön ekini kullanır. Bu gelecek sürümlerde değişebilir.

Kurulum

uvx kullanarak

uvx kullanılırken mcp-server-qdrant'ı doğrudan çalıştırmak için belirli bir kurulum yapılması gerekmez.

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \
uvx mcp-server-qdrant

Taşıma Protokolleri

Sunucu, --transport bayrağı kullanılarak belirtilen farklı taşıma protokollerini destekler:

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
uvx mcp-server-qdrant --transport sse

Desteklenen taşıma protokolleri:

  • stdio (varsayılan): Standart giriş/çıkış taşıması, yalnızca yerel MCP istemcileri tarafından kullanılabilir
  • sse: Server-Sent Events taşıması, uzak istemciler için mükemmel
  • streamable-http: Akışı yapılabilir HTTP taşıması, uzak istemciler için mükemmel, SSE'den daha yeni

Belirtilmezse varsayılan taşıma stdio'dur.

SSE taşıması kullanıldığında, sunucu belirtilen portta dinlemeye başlayacak ve gelen bağlantıları bekleyecektir. Varsayılan port 8000'dir, ancak FASTMCP_SERVER_PORT ortam değişkeni kullanılarak değiştirilebilir.

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
FASTMCP_SERVER_PORT=1234 \
uvx mcp-server-qdrant --transport sse

Docker kullanarak

MCP sunucusunu oluşturmak ve çalıştırmak için bir Dockerfile mevcuttur:

# Konteyner oluştur
docker build -t mcp-server-qdrant .

# Konteyner çalıştır
docker run -p 8000:8000 \
  -e FASTMCP_SERVER_HOST="0.0.0.0" \
  -e QDRANT_URL="http://your-qdrant-server:6333" \
  -e QDRANT_API_KEY="your-api-key" \
  -e COLLECTION_NAME="your-collection" \
  mcp-server-qdrant

[!TIP] FASTMCP_SERVER_HOST="0.0.0.0" ayarlandığını lütfen unutmayın; bu, sunucunun tüm ağ arayüzlerinde dinlemesi için gereklidir. Docker konteynerinde sunucu çalıştırırken bu gereklidir.

Smithery aracılığıyla kurulum

Qdrant MCP Server'ı Smithery aracılığıyla Claude Desktop'a otomatik olarak kurmak için:

npx @smithery/cli install mcp-server-qdrant --client claude

Claude Desktop'ın manuel yapılandırması

Bu sunucuyu Claude Desktop uygulaması ile kullanmak için, claude_desktop_config.json dosyasının "mcpServers" bölümüne aşağıdaki yapılandırmayı ekleyin:

{
  "qdrant": {
    "command": "uvx",
    "args": ["mcp-server-qdrant"],
    "env": {
      "QDRANT_URL": "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
      "QDRANT_API_KEY": "your_api_key",
      "COLLECTION_NAME": "your-collection-name",
      "EMBEDDING_MODEL": "sentence-transformers/all-MiniLM-L6-v2"
    }
  }
}

Yerel Qdrant modu için:

{
  "qdrant": {
    "command": "uvx",
    "args": ["mcp-server-qdrant"],
    "env": {
      "QDRANT_LOCAL_PATH": "/path/to/qdrant/database",
      "COLLECTION_NAME": "your-collection-name",
      "EMBEDDING_MODEL": "sentence-transformers/all-MiniLM-L6-v2"
    }
  }
}

Bu MCP sunucusu, belirtilen adda bir koleksiyon yoksa otomatik olarak oluşturacaktır.

Varsayılan olarak, sunucu anıları kodlamak için sentence-transformers/all-MiniLM-L6-v2 embedding modelini kullanacaktır. Şu anda, yalnızca FastEmbed modelleri desteklenmektedir.

Diğer araçlar için destek

Bu MCP sunucusu, herhangi bir MCP uyumlu istemci ile kullanılabilir. Örneğin, bunu Cursor ve VS Code ile kullanabilirsiniz; bunlar Model Context Protocol için yerleşik destek sağlar.

Cursor/Windsurf ile kullanım

Bu MCP sunucusunu, araç açıklamalarını özelleştirerek Cursor veya Windsurf için bir kod arama aracı olarak çalışacak şekilde yapılandırabilirsiniz:

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="code-snippets" \
TOOL_STORE_DESCRIPTION="Store reusable code snippets for later retrieval. \
The 'information' parameter should contain a natural language description of what the code does, \
while the actual code should be included in the 'metadata' parameter as a 'code' property. \
The value of 'metadata' is a Python dictionary with strings as keys. \
Use this whenever you generate some code snippet." \
TOOL_FIND_DESCRIPTION="Search for relevant code snippets based on natural language descriptions. \
The 'query' parameter should describe what you're looking for, \
and the tool will return the most relevant code snippets. \
Use this when you need to find existing code snippets for reuse or reference." \
uvx mcp-server-qdrant --transport sse # SSE taşımasını etkinleştir

Cursor/Windsurf'te, bu çalışan sunucuya SSE taşıma protokolü kullanarak işaret ederek MCP sunucusunu ayarlarınızda yapılandırabilirsiniz. Cursor'a bir MCP sunucusu eklemenin açıklaması Cursor dokumentasyonunda bulunabilir. Cursor/Windsurf'ü yerel olarak çalıştırıyorsanız, aşağıdaki URL'yi kullanabilirsiniz:

http://localhost:8000/sse

[!TIP] Cursor/Windsurf'ü MCP sunucusuna bağlamak için SSE taşımasını tercih edilen yol olarak öneriyoruz; uzak bağlantıları destekleyebilir. Bu, sunucuyu takımınızla paylaşmayı veya bulut ortamında kullanmayı kolaylaştırır.

Bu yapılandırma, Qdrant MCP sunucusunu aşağıdakileri yapabilen özel bir kod arama aracına dönüştürür:

  1. Kod parçacıkları, dokümantasyon ve uygulama ayrıntılarını depolama
  2. Anlamsal aramayanında ilgili kod örneklerini alma
  3. Geliştiricilerin belirli uygulamaları veya kullanım deseni bulmasına yardımcı olma

Veritabanını, kod parçacıklarının doğal dil açıklamalarını (information parametresinde) gerçek kod ile birlikte (metadata.code özelliğinde) saklayarak ve ardından aradığınız şeyi açıklayan doğal dil sorguları kullanarak arama yaparak doldurabileceğiniz.

[!NOTE] Yukarıda sağlanan araç açıklamaları örnektir ve belirli kullanım durumunuz için özelleştirilmesi gerekebilir. Tanımları, takımınızın iş akışına ve depolamak ve almak istediğiniz belirli kod parçacığı türlerine daha iyi uyacak şekilde ayarlamayı düşünün.

mcp-server-qdrant'ı başarıyla yüklediyseniz ancak Cursor ile çalışamıyorsanız, MCP araçlarının aracı her zaman yeni bir kod parçacığı ürettiğinde kullanılmasını sağlamak için lütfen Cursor kurallarını oluşturmayı düşünün. Kuralları belirli dosya türleriyle çalışacak şekilde sınırlandırabilir; böylece MCP sunucusu dokümantasyon veya diğer içerik türleri için kullanılmaz.

Claude Code ile kullanım

Bu MCP sunucusunu Claude Code'a bağlayarak mevcut kod tabanınız üzerinde anlamsal aramanın yeteneklerini geliştireyebilirsiniz.

mcp-server-qdrant'ı kurma

  1. MCP sunucusunu Claude Code'a ekleyin:

    # Kod araması için yapılandırılan mcp-server-qdrant'ı ekle
    claude mcp add code-search \
    -e QDRANT_URL="http://localhost:6333" \
    -e COLLECTION_NAME="code-repository" \
    -e EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \
    -e TOOL_STORE_DESCRIPTION="Store code snippets with descriptions. The 'information' parameter should contain a natural language description of what the code does, while the actual code should be included in the 'metadata' parameter as a 'code' property." \
    -e TOOL_FIND_DESCRIPTION="Search for relevant code snippets using natural language. The 'query' parameter should describe the functionality you're looking for." \
    -- uvx mcp-server-qdrant
    
  2. Sunucunun eklendiğini doğrulayın:

    claude mcp list
    

Claude Code'da Anlamsal Kod Aramasını Kullanma

TOOL_STORE_DESCRIPTION ve TOOL_FIND_DESCRIPTION içinde belirtilen araç açıklamaları, Claude Code'u MCP sunucusunun nasıl kullanılacağı konusunda rehberlik eder. Yukarıda sağlananlar örnektir ve belirli kullanım durumunuz için özelleştirilmesi gerekebilir. Ancak, Claude Code zaten şunları yapabilmelidir:

  1. Kod parçacıklarını açıklamalarla depolamak için qdrant-store aracını kullanma.
  2. Doğal dil kullanarak ilgili kod parçacıklarını aramak için qdrant-find aracını kullanma.

MCP sunucusunu geliştirme modunda çalıştırma

MCP sunucusu, mcp dev komutu kullanılarak geliştirme modunda çalıştırılabilir. Bu, sunucuyu başlatacak ve tarayıcınızda MCP inspector'u açacaktır.

COLLECTION_NAME=mcp-dev fastmcp dev src/mcp_server_qdrant/server.py

VS Code ile kullanım

Tek tıklamalı kurulum için aşağıdaki kurulum düğmelerinden birine tıklayın:

Install with UVX in VS Code Install with UVX in VS Code Insiders

Install with Docker in VS Code Install with Docker in VS Code Insiders

Manuel kurulum

VS Code'unda Kullanıcı Ayarları (JSON) dosyasına aşağıdaki JSON bloğunu ekleyin. Bunu Ctrl + Shift + P tuşlarına basarak ve Preferences: Open User Settings (JSON) yazarak yapabilirsiniz.

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "qdrantUrl",
        "description": "Qdrant URL"
      },
      {
        "type": "promptString",
        "id": "qdrantApiKey",
        "description": "Qdrant API Key",
        "password": true
      },
      {
        "type": "promptString",
        "id": "collectionName",
        "description": "Collection Name"
      }
    ],
    "servers": {
      "qdrant": {
        "command": "uvx",
        "args": ["mcp-server-qdrant"],
        "env": {
          "QDRANT_URL": "${input:qdrantUrl}",
          "QDRANT_API_KEY": "${input:qdrantApiKey}",
          "COLLECTION_NAME": "${input:collectionName}"
        }
      }
    }
  }
}

Veya Docker'ı tercih ediyorsanız, bunun yerine bu yapılandırmayı ekleyin:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "qdrantUrl",
        "description": "Qdrant URL"
      },
      {
        "type": "promptString",
        "id": "qdrantApiKey",
        "description": "Qdrant API Key",
        "password": true
      },
      {
        "type": "promptString",
        "id": "collectionName",
        "description": "Collection Name"
      }
    ],
    "servers": {
      "qdrant": {
        "command": "docker",
        "args": [
          "run",
          "-p", "8000:8000",
          "-i",
          "--rm",
          "-e", "QDRANT_URL",
          "-e", "QDRANT_API_KEY",
          "-e", "COLLECTION_NAME",
          "mcp-server-qdrant"
        ],
        "env": {
          "QDRANT_URL": "${input:qdrantUrl}",
          "QDRANT_API_KEY": "${input:qdrantApiKey}",
          "COLLECTION_NAME": "${input:collectionName}"
        }
      }
    }
  }
}

Alternatif olarak, çalışma alanınızda aşağıdaki içeriğe sahip bir .vscode/mcp.json dosyası olu

Benzer MCP sunucuları

Daha fazla: Databases →