qdrant-mcp-ollama
qdrant-mcp-ollama
Qdrant ベクトルデータベース用の Model Context Protocol (MCP) サーバーです。Ollama を使用して GPU アクセラレーションによる埋め込みを実現します。
なぜ公式の mcp-server-qdrant ではないのか?
公式 Qdrant MCP サーバー は埋め込みに FastEmbed を使用しており、以下の問題があります。
CPU のみで動作 — 大規模なコードベースでは遅く、最新の GPU を十分に活用できない
小さなモデルを使用 (
all-MiniLM-L6-v2, 384-dim) — 埋め込みの品質が低いローカルモードではシングルプロセスロック — 同時にアクセスできる MCP クライアントは 1 つだけ
このサーバーはこれら 3 つの問題をすべて解決します。
公式 |
| |
埋め込みエンジン | FastEmbed (CPU) | Ollama (GPU) |
デフォルトモデル |
|
|
同時アクセス | なし (ローカルモード) | あり (Qdrant サーバー) |
モデルの柔軟性 | FastEmbed モデルのみ | 任意の Ollama 埋め込みモデル |
Related MCP server: Claude Context MCP
Architecture
┌──────────────┐ ┌────────────────────┐ ┌─────────────┐
│ MCP Client │────>│ qdrant-mcp-ollama │────>│ Ollama │
│ (Claude Code, │ │ (server.py) │ │ (GPU) │
│ Kilo Code, │<────│ │ └─────────────┘
│ Cursor, etc) │ └────────┬───────────┘
└──────────────┘ │
v
┌────────────────────┐
│ Qdrant Server │
│ (Docker, :6333) │
│ Storage: local │
│ disk / cloud │
└────────────────────┘前提条件
Ollama — 埋め込みモデルをプルした状態でインストール済み・実行中であること
Docker — Qdrant サーバーを実行するため
uv — Python パッケージマネージャー(推奨)または
pip
クイックスタート
1. Ollama で埋め込みモデルをプルする
ollama pull bge-m32. Qdrant サーバーを起動する
docker run -d --name qdrant-server \
-p 6333:6333 -p 6334:6334 \
-v qdrant-storage:/qdrant/storage \
--restart unless-stopped \
qdrant/qdrant:latest3. MCP サーバーを実行する
# No install needed — uv downloads dependencies on-the-fly:
QDRANT_URL="http://localhost:6333" \
EMBEDDING_MODEL="bge-m3" \
uv run --with fastmcp --with qdrant-client --with httpx python server.py4. コードベースを埋め込む
uv run --with qdrant-client --with httpx python embed_codebase.py \
/path/to/your/project my-project --preset python5. MCP クライアントから検索する
設定が完了したら(下記のセクション参照)、AI アシスタントに次のように依頼します:
"コードベースの認証ロジックを検索して"
すると qdrant_find ツールを使い、意味的に関連するコードチャンクを返します。
Qdrant サーバーのセットアップ
オプション A: Docker(推奨)
特定のドライブ(例: Windows の E:)にデータを保存する場合:
# Create storage directories
mkdir -p E:/qdrant-storage E:/qdrant-snapshots
# Start Qdrant with persistent storage
docker run -d --name qdrant-server \
-p 6333:6333 -p 6334:6334 \
-v E:/qdrant-storage:/qdrant/storage \
-v E:/qdrant-snapshots:/qdrant/snapshots \
--restart unless-stopped \
qdrant/qdrant:latestLinux/macOS の場合:
docker run -d --name qdrant-server \
-p 6333:6333 -p 6334:6334 \
-v ~/qdrant-storage:/qdrant/storage \
--restart unless-stopped \
qdrant/qdrant:latest--restart unless-stopped フラグにより、Qdrant は Docker Desktop と一緒に自動起動します。
起動を確認する:
docker ps --filter name=qdrant-server
# Or open http://localhost:6333/dashboard in your browserオプション B: Qdrant Cloud
cloud.qdrant.io にサインアップして、URL と API キーを取得します。次に設定します:
QDRANT_URL="https://your-cluster.cloud.qdrant.io:6333"
QDRANT_API_KEY="your-api-key"注意:
QDRANT_API_KEY環境変数は Qdrant クライアントに自動的に渡されます。
コードベースの埋め込み
embed_codebase.py スクリプトはディレクトリをスキャンし、ソースファイルをまとまりとしてチャンク化して、GPU 上の Ollama を使用して Qdrant に一括埋め込みします。
基本的な使い方
uv run --with qdrant-client --with httpx python embed_codebase.py <directory> <collection-name>拡張子のプリセットを使用する
# Python project
python embed_codebase.py ./my-api api-backend --preset python
# Full-stack web project
python embed_codebase.py ./my-app frontend --preset web
# R / bioinformatics project
python embed_codebase.py ./analysis bio-analysis --preset r
# Everything
python embed_codebase.py ./mono-repo all-code --preset allカスタム拡張子
python embed_codebase.py ./project my-collection --extensions .py .sql .sh .yaml利用可能なプリセット
プリセット | 拡張子 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 一般的なソース拡張子すべて |
--preset または --extensions を指定しない場合、スクリプトがファイルタイプを自動検出します。
すべてのオプション
usage: embed_codebase.py <directory> <collection> [options]
positional arguments:
directory Path to the codebase directory
collection Qdrant collection name
options:
--extensions EXT [EXT ...] File extensions to include (e.g. .py .ts)
--preset PRESET Use a preset group of extensions
--model MODEL Ollama embedding model (default: bge-m3)
--qdrant-url URL Qdrant server URL (default: http://localhost:6333)
--ollama-url URL Ollama server URL (default: http://localhost:11434)
--chunk-size N Max lines per chunk (default: 80)
--chunk-overlap N Overlap lines between chunks (default: 10)
--batch-size N Upload batch size for Qdrant (default: 500)
--append Append to existing collection instead of replacingアペンドモード
デフォルトではスクリプトを再実行すると、コレクションが置き換えられます。既存のコレクションに追加するには --append を使用します:
# First embed
python embed_codebase.py ./src main-code --preset typescript
# Add more files later
python embed_codebase.py ./docs main-code --extensions .md --append複数コードベースの使用
コードベースごとに別々のコレクションを使用すると、検索結果の範囲が適切に限定され、関連性が保たれます:
# Project A
python embed_codebase.py ~/projects/api-server api-server --preset python
# Project B
python embed_codebase.py ~/projects/web-app web-app --preset web
# Project C
python embed_codebase.py ~/projects/data-pipeline data-pipeline --preset pythonMCP サーバーを設定するときは、次の点に注意してください。
COLLECTION_NAMEを設定しない場合 — クエリごとにコレクションを指定する必要があります。これは 1 つの MCP サーバーで複数プロジェクトを扱う場合に最適です。COLLECTION_NAMEを設定する場合 — デフォルトのコレクションが自動的に使用されます。MCP クライアントがプロジェクト単位の設定をサポートしている場合は、プロジェクトごとに設定してください。
Claude Code の設定
MCP サーバーを追加する
claude mcp add qdrant -s user \
-e QDRANT_URL="http://localhost:6333" \
-e OLLAMA_URL="http://localhost:11434" \
-e EMBEDDING_MODEL="bge-m3" \
-- uv run --with fastmcp --with qdrant-client --with httpx \
python /path/to/qdrant-mcp-ollama/server.py/path/to/qdrant-mcp-ollama/ は、このリポジトリをクローンしたときの実際のパスに置き換えてください。
デフォルトコレクションを設定する場合
主に 1 つのプロジェクトで作業している場合は、次のように設定します:
claude mcp add qdrant -s user \
-e QDRANT_URL="http://localhost:6333" \
-e OLLAMA_URL="http://localhost:11434" \
-e EMBEDDING_MODEL="bge-m3" \
-e COLLECTION_NAME="my-project" \
-- uv run --with fastmcp --with qdrant-client --with httpx \
python /path/to/qdrant-mcp-ollama/server.py動作確認
claude mcp list
# Should show: qdrant: ... ✓ Connected
claude mcp get qdrant
# Shows full configuration detailsClaude Code での使用方法
設定すると、Claude Code で次のツールを使用できるようになります。
qdrant_store— 情報の保存:"この認証パターンを Qdrant に保存"qdrant_find— 検索:"データベースマイグレーション関連のコードを検索"
複数コレクションの設定(デフォルトなし)では、コレクションを指定します。
"
api-serverコレクションからレート制限ロジックを検索"
Kilo Code(VS Code 拡張機能)の設定
Kilo Code は、MCP 対応の組み込み VS Code 拡張機能です。
オプション 1: 手動の MCP 設定
VS Code で Kilo Code の設定を開きます。
MCP サーバーの設定に移動します。
次の内容で新しいサーバーを追加します。
フィールド | 値 |
名前 |
|
コマンド |
|
引数 |
|
環境変数を設定します。
環境変数 | 値 |
|
|
|
|
|
|
| 使用するプロジェクトのコレクション名(例: |
オプション 2: VS Code の settings.json
settings.json に次を追加します。(Ctrl+Shift+P > Preferences: Open User Settings (JSON))
{
"kilocode.mcpServers": {
"qdrant": {
"command": "uv",
"args": [
"run", "--with", "fastmcp", "--with", "qdrant-client", "--with", "httpx",
"python", "/path/to/qdrant-mcp-ollama/server.py"
],
"env": {
"QDRANT_URL": "http://localhost:6333",
"OLLAMA_URL": "http://localhost:11434",
"EMBEDDING_MODEL": "bge-m3",
"COLLECTION_NAME": "my-project"
}
}
}
}Kilo Code のプロジェクト別設定
複数コードベースを扱う場合は、プロジェクト固有の COLLECTION_NAME を指定して、Kilo Code を プロジェクトスコープ(グローバルではなく)で設定します。これにより、各ワークスペースは自分のコードベースだけを検索するようになります。
その他の MCP クライアントの設定
Cursor / Windsurf
リモート対応クライアントでは、SSE トランスポートでサーバーを実行します。
QDRANT_URL="http://localhost:6333" \
OLLAMA_URL="http://localhost:11434" \
EMBEDDING_MODEL="bge-m3" \
FASTMCP_PORT=8000 \
uv run --with fastmcp --with qdrant-client --with httpx \
python server.py --transport sseCursor / Windsurf の MCP 設定で、http://localhost:8000/sse に接続します。
汎用 MCP クライアント (stdio)
デフォルトのトランスポートは stdio です。stdio をサポートする MCP クライアントは、このコマンドでこのサーバーを使用できます。
uv run --with fastmcp --with qdrant-client --with httpx python server.py設定リファレンス
MCP サーバー環境変数
環境変数 | 説明 | デフォルト |
| Qdrant サーバーの URL(例 : |
|
| Qdrant Cloud 用 API キー | None |
| Ollama サーバーの URL(例 : |
|
| Ollama の埋め込みモデル名 |
|
| デフォルトのコレクション(空 = 呼び出しごとに指定が必要) | (空) |
埋め込みモデルの選選択
以下のモデルはすべて ollama pull <model> で利用でできます。
モデル | 次元数数 | サイズズ | 速度伏 | 品質 | 最適する用用途途 |
| 1024 | 1.2GB | 中程度度 | 高 | 汎用・多言言語 |
| 768 | 274MB | 高速速 | 良 | 軽量、英語中心心 |
|
| 670MB | 中程度度 | 高 | 英語・高品質 |
|
| 1.2GB | 中程度 | 非と高 | 最高品質・英語英 |
| 386 | 46MB | 非常高速速 | 普通 | 最小リソース源 |
推奨: まずは bge-m3 から始めてください。コードの扱いに優れ、多言語コンテンツ(あらゆる言語のコメント)に対応し、品質と速度のバランスが良好です。
重要: コレクションのインデックスに使用した埋め込みモデルは、クエリに使用するモデルと一致している必要があります。別のモデルで再埋め込みする場合は、コレクションを削除して再度作成してください。
GPU 使用率
大きなモデルほど GPU を使用します。GPU がフル活用されていない場合は:
nomic-embed-text(274 MB) からbge-m3(1.2 GB) 以上のモデルに切代え替える埋に込みスクリプトはすべての文テキストを一度に送信し、GPU 利利率率を最最化
単一クエリリ(
qdrant_find)でる GPる使用率率のスパイククは短瞬間で正常で(単一問一併わせの埋め込込みは数ミリリ秒で完了)
GPU 使使用率を確認確認する: nvidia-smi (NVIDIA) または rocm-smi (AMD)
MCPツールズ
qrant_store
Qドランt デデータベースに情報を保存します。
パラメーター | 型 | 必必須 | 説明 |
| string | 必須 | 保存して検索可能対象となるテキスト |
| string | デフォルトが未設定の場合 | 対象コレクション |
| dict | 任意 | 添付する任意のメタデータ |
qrant_fund
セマンティックス度検索を検索します。
パラメメーータター | 型 | 必要須 | 説明語 |
| string | 必省 | 自然言語の検索クエリ |
| string | デフォルト未定設定の場場合 | 対对象 collectionターゲット |
| int | 任意 | れターンする最最大件数 (デフォールルト: 5) |
トブルシューティング
「接続が断されまし」 / M CPサーババーが起動んでない
は Ollama が動作動していますか?
ollama listで確認確認してください。必要なければollama serveで起動動してください。は埋め込こみコルデルがルル済みみか?
llama pull bge-m3を実実行してください。は Odrant が件動してますか?
docker ls --filter name=qdrant-serveで確認してください。
「コレクションが存在しません」
コードベースの作コレクションは、コードベースの埋め込みスクリプト作るか、初回の qdrant_store 呼び出しで自動作成されます。次のいずれかを実行してください。
まずコードベースのインデックス化を行うため
embed_codebase.pyを実行するまたは
qdrant_storeで情報を保存してコレクションを自動生成する
次元誤差
埋め込み時に使用するモデルと、クエリ時に使用するぶモデルが異なる場合に発生します。対処法は以下の通りです。
コレクションを削除する:
http://localhost:6333/ダッシュボードを訪ねてください正しいモデルで再埋め込みする
MCP サーバー設定の
EMBEDDING_MODELが、埋め込みに使用したモデルと一致しているか確認する
。「ストレージフォルダががすに他のインスタンスへアクセスされていきます」
このこの問題は、公式 mcp-server-qdrant がを使用する場合に、ローカルモード (QDRANT_LOCAL_PATH) で発生します。このリポジがは URL 経由で Qdrant サーバに接続して避けています。両方のサーバーが同じ蹊ローカルパスを指し示すことらないようご注意ください。
埋め込みが遅い / GPU の活用率が低い
より大きなモデルを使用する:
nomic-embed-text(274 MB) の代わりにbge-m3(1.2 GB)埋め込みスクリプトはすべてのテキストを1つのバッチで送信します — 数千のチャンクがある場合、これによりGPU使用率が最大化されます
非常に大きなコードベース(10,000+ファイル)の場合は、ディレクトリごとに複数回に分けて実行することを検討してください
License
Apache License 2.0 — LICENSE を参照してください。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables semantic code search across codebases using Qdrant vector database and OpenAI embeddings, allowing users to find code by meaning rather than just keywords through natural language queries.2MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to index and search codebases using semantic search powered by multiple embedding providers (OpenAI, VoyageAI, Gemini, Ollama) and vector database storage.
- FlicenseNot gradedqualityDmaintenanceEnables semantic code search across multi-language codebases using natural language queries, integrated with Qdrant vector database for fast, cached retrieval.1
- AlicenseNot gradedqualityFmaintenanceIndexes codebases into Qdrant for semantic search, enabling AI assistants to find relevant code by meaning without re-exploring the repo.MIT
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Search your knowledge bases from any AI assistant using hybrid RAG.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/michal7kw/qdrant-mcp-ollama'
If you have feedback or need assistance with the MCP directory API, please join our Discord server