Qdrant MCP Server
resmiQdrant vektör arama motorunun üzerinde anlamsal bellek katmanı uygulayın
Dokümantasyon
mcp-server-qdrant: Bir Qdrant MCP sunucusu
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 yapay zeka destekli bir IDE geliştiriyor olun, ister bir sohbet arayüzünü geliştiriyor olun, isterse özel yapay zeka iş akışları oluşturuyor olun, MCP, LLM'leri ihtiyaç duydukları bağlamla bağlamak için standart bir yol sunar.
Bu depo, bir vektör arama motoru olan Qdrant için nasıl bir MCP sunucusu oluşturulacağına dair bir örnektir.
Genel Bakış
Qdrant vektör arama motorunda anıları tutmak ve geri getirmek için resmi bir Model Context Protocol sunucusu. Qdrant veritabanı üzerinde anlamsal bir bellek katmanı görevi görür.
Bileşenler
Araçlar
qdrant-store- Qdrant veritabanında bazı bilgileri saklar
- Girdi:
information(string): Saklanacak bilgimetadata(JSON): Saklanacak isteğe bağlı meta verilercollection_name(string): Bilginin saklanacağı koleksiyonun adı. Varsayılan bir koleksiyon adı yoksa bu alan zorunludur. Varsayılan bir koleksiyon adı varsa, bu alan etkin değildir.
- Döndürür: Onay mesajı
qdrant-find- Qdrant veritabanından ilgili bilgileri getirir
- Girdi:
query(string): Arama için kullanılacak sorgucollection_name(string): Bilginin saklanacağı koleksiyonun adı. Varsayılan bir koleksiyon adı yoksa bu alan zorunludur. Varsayılan bir koleksiyon adı varsa, bu alan etkin değildir.
- Döndürür: Qdrant veritabanında saklanan 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 olup, aktarım protokolünü seçmek için kullanılır.
[!NOTE]
QDRANT_URLveQDRANT_LOCAL_PATHaynı anda sağlanamaz.
| Ad | Açıklama | Varsayılan Değer |
|---|---|---|
QDRANT_URL | Qdrant sunucusunun URL'si | Yok |
QDRANT_API_KEY | Qdrant sunucusu için API anahtarı | Yok |
COLLECTION_NAME | Kullanılacak varsayılan koleksiyonun adı. | Yok |
QDRANT_LOCAL_PATH | Yerel Qdrant veritabanının yolu (QDRANT_URL alternatifi) | Yok |
EMBEDDING_PROVIDER | Kullanılacak gömme sağlayıcısı (şu anda yalnızca "fastembed" desteklenir) | fastembed |
EMBEDDING_MODEL | Kullanılacak gömme modelinin adı | sentence-transformers/all-MiniLM-L6-v2 |
TOOL_STORE_DESCRIPTION | Saklama aracı için özel açıklama | Varsayılan için settings.py bölümüne bakın |
TOOL_FIND_DESCRIPTION | Bulma aracı için özel açıklama | Varsayılan için settings.py bölümüne bakın |
QDRANT_SEARCH_LIMIT | Aramadan döndürülecek maksimum sonuç sayısı | 10 |
QDRANT_READ_ONLY | Salt okunur modu etkinleştirir (qdrant-store aracını devre dışı bırakır) | false |
FastMCP Ortam Değişkenleri
mcp-server-qdrant, FastMCP tabanlı olduğundan, tüm FastMCP ortam değişkenlerini de destekler. En
önemlileri aşağıda listelenmiştir:
| Ortam Değişkeni | Açıklama | Varsayılan Değer |
|---|---|---|
FASTMCP_LOG_LEVEL | Günlük seviyesini ayarlar (DEBUG, INFO, WARNING, ERROR, CRITICAL) | INFO |
FASTMCP_SERVER_DEBUG | Hata ayıklama modunu etkinleştirir | 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ına yüklenecek bağımlılıkların listesi | [] |
[!NOTE] Sunucuya özgü ayarlar
FASTMCP_SERVER_önekini kullanır. Bu, gelecekteki sürümlerde değişebilir.
Kurulum
uvx Kullanarak
uvx kullanırken, mcp-server-qdrant'ı doğrudan çalıştırmak için özel bir kurulum gerekmez.
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \
uvx mcp-server-qdrant
Aktarım Protokolleri
Sunucu, --transport bayrağı kullanılarak belirtilebilen farklı aktarım protokollerini destekler:
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
uvx mcp-server-qdrant --transport sse
Desteklenen aktarım protokolleri:
stdio(varsayılan): Yalnızca yerel MCP istemcileri tarafından kullanılabilen standart girdi/çıktı aktarımısse: Uzak istemciler için mükemmel olan Sunucu Tarafından Gönderilen Olaylar aktarımıstreamable-http: Uzak istemciler için mükemmel olan, SSE'den daha yeni, Akışkan HTTP aktarımı
Belirtilmezse varsayılan aktarım stdio şeklindedir.
SSE aktarımı kullanıldığında, sunucu belirtilen portu dinler ve gelen bağlantıları bekler. 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:
# Build the container
docker build -t mcp-server-qdrant .
# Run the container
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] Lütfen, sunucunun tüm ağ arayüzlerini dinlemesini sağlamak için
FASTMCP_SERVER_HOST="0.0.0.0"ayarını yaptığımızı unutmayın. Bu, sunucuyu bir Docker konteynerinde çalıştırırken gereklidir.
Smithery Üzerinden Kurulum
Claude Desktop için Qdrant MCP Sunucusunu Smithery aracılığıyla 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ıyla kullanmak için,
claude_desktop_config.json dosyanızı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 ada sahip bir koleksiyon yoksa otomatik olarak oluşturacaktır.
Varsayılan olarak, sunucu anıları kodlamak için sentence-transformers/all-MiniLM-L6-v2 gömme modelini kullanacaktır.
Şimdilik yalnızca FastEmbed modelleri desteklenmektedir.
Diğer Araçlar için Destek
Bu MCP sunucusu, MCP uyumlu herhangi bir istemciyle kullanılabilir. Örneğin, Model Context Protocol için yerleşik destek sağlayan Cursor ve VS Code ile kullanabilirsiniz.
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 # Enable SSE transport
Cursor/Windsurf'te, daha sonra ayarlarınızda MCP sunucusunu, SSE aktarım protokolünü kullanarak bu çalışan sunucuya işaret edecek şekilde yapılandırabilirsiniz. Cursor'a bir MCP sunucusunun nasıl ekleneceğine dair açıklama Cursor belgelerinde bulunabilir. Eğer Cursor/Windsurf'ü yerel olarak çalıştırıyorsanız, aşağıdaki URL'yi kullanabilirsiniz:
http://localhost:8000/sse
[!TIP] Uzak bağlantıları destekleyebildiği için, Cursor/Windsurf'ü MCP sunucusuna bağlamanın tercih edilen yolu olarak SSE aktarımını öneriyoruz. Bu, sunucuyu ekibinizle paylaşmayı veya bir bulut ortamında kullanmayı kolaylaştırır.
Bu yapılandırma, Qdrant MCP sunucusunu şunları yapabilen özel bir kod arama aracına dönüştürür:
- Kod parçacıklarını, belgeleri ve uygulama ayrıntılarını saklamak
- Anlamsal aramaya dayalı olarak ilgili kod örneklerini getirmek
- Geliştiricilerin belirli uygulamaları veya kullanım kalıplarını bulmasına yardımcı olmak
Veritabanını, kod parçacıklarının doğal dil açıklamalarını (information parametresinde) gerçek kodla birlikte
(metadata.code özelliğinde) saklayarak ve ardından aradığınız şeyi tanımlayan doğal dil sorguları kullanarak
arama yaparak doldurabilirsiniz.
[!NOTE] Yukarıda sağlanan araç açıklamaları örnektir ve özel kullanım durumunuz için özelleştirilmesi gerekebilir. Açıklamaları, ekibinizin iş akışına ve saklayıp getirmek 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 hala Cursor ile çalışmasını sağlayamıyorsanız, lütfen
aracı yeni bir kod parçacığı ürettiğinde MCP araçlarının her zaman kullanılması için Cursor kurallarını oluşturmayı
düşünün. MCP sunucusunun belgeler veya diğer içerik türleri için kullanılmasını önlemek amacıyla, kuralları yalnızca
belirli dosya türleri için çalışacak şekilde kısıtlayabilirsiniz.
Claude Code ile Kullanım
Bu MCP sunucusuna bağlayarak, mevcut kod tabanınız üzerinde anlamsal arama yapmayı sağlayarak Claude Code'un yeteneklerini geliştirebilirsiniz.
mcp-server-qdrant'ı Kurma
-
MCP sunucusunu Claude Code'a ekleyin:
# Add mcp-server-qdrant configured for code search 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 -
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'a MCP
sunucusunun nasıl kullanılacağı konusunda rehberlik eder. Yukarıda sağlananlar örnektir ve özel kullanım durumunuz için
özelleştirilmesi gerekebilir. Ancak, Claude Code zaten şunları yapabilmelidir:
- Açıklamalarla birlikte kod parçacıklarını saklamak için
qdrant-storearacını kullanmak. - Doğal dil kullanarak ilgili kod parçacıklarını aramak için
qdrant-findaracını kullanmak.
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 MCP
denetçisini tarayıcınızda açacaktır.
COLLECTION_NAME=mcp-dev fastmcp dev src/mcp_server_qdrant/server.py
VS Code ile Kullanım
Tek tıklamayla kurulum için aşağıdaki kurulum düğmelerinden birine tıklayın:
Manuel Kurulum
VS Code'da Kullanıcı Ayarları (JSON) dosyanıza aşağıdaki JSON bloğunu ekleyin. Bunu Ctrl + Shift + P tuşlarına basıp 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 kullanmayı tercih ederseniz, 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şturabilirsiniz:
{
"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}"
}
}
}
}
Docker ile çalışma alanı yapılandırması için, .vscode/mcp.json içinde bunu kullanın:
{
"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}"
}
}
}
}
Katkıda Bulunma
mcp-server-qdrant'ın nasıl geliştirilebileceğine dair önerileriniz varsa veya bir hata bildirmek istiyorsanız, bir konu (issue) açın! Her türlü katkıyı memnuniyetle karşılıyoruz.
mcp-server-qdrant Yerel Olarak Test Etme
MCP denetçisi, MCP sunucularını test etmek ve hata ayıklamak için bir geliştirici aracıdır. Hem bir istemci kullanıcı arayüzü (varsayılan port 5173) hem de bir MCP proxy sunucusu (varsayılan port 3000) çalıştırır. Denetçiyi kullanmak için tarayıcınızda istemci kullanıcı arayüzünü açın.
QDRANT_URL=":memory:" COLLECTION_NAME="test" \
fastmcp dev src/mcp_server_qdrant/server.py
Başlatıldıktan sonra, denetçi arayüzüne erişmek için tarayıcınızda http://localhost:5173 adresini açın.
Lisans
Bu MCP sunucusu Apache Lisansı 2.0 altında lisanslanmıştır. Bu, Apache Lisansı 2.0'ın şartlarına ve koşullarına tabi olarak yazılımı kullanmakta, değiştirmekte ve dağıtmakta özgür olduğunuz anlamına gelir. Daha fazla ayrıntı için lütfen proje deposundaki LICENSE dosyasına bakın.