Skip to main content
Glama
mhalder

Qdrant MCP Server

by mhalder

Qdrant MCP Server

CI codecov

Сервер протокола контекста модели (MCP), предоставляющий возможности семантического поиска с использованием векторной базы данных Qdrant и различных провайдеров эмбеддингов.

Возможности

  • Без настройки: Работает «из коробки» с Ollama — ключи API не требуются

  • Приоритет конфиденциальности: Локальные эмбеддинги и векторное хранилище — данные никогда не покидают ваш компьютер

  • Векторизация кода: Интеллектуальная индексация кодовой базы с разбиением на основе AST и семантическим поиском по коду

  • Поиск по истории Git: Индексация истории коммитов для семантического поиска по прошлым изменениям, исправлениям и паттернам

  • Расширенный поиск: Контекстный поиск (код + git с корреляциями) и федеративный поиск по нескольким репозиториям

  • Несколько провайдеров: Ollama (по умолчанию), OpenAI, Cohere и Voyage AI

  • Гибридный поиск: Комбинирование семантического и ключевого поиска для получения лучших результатов

  • Семантический поиск: Поиск на естественном языке с фильтрацией по метаданным

  • Инкрементальная индексация: Эффективные обновления — повторно индексируются только измененные файлы

  • Настраиваемые промпты: Создание пользовательских промптов для направленных рабочих процессов без изменения кода

  • Ограничение частоты запросов (Rate Limiting): Интеллектуальное регулирование с экспоненциальной задержкой

  • Полный CRUD: Создание, поиск и управление коллекциями и документами

  • Структурированное логирование: Логирование в формате JSON через Pino с настраиваемыми уровнями логирования

  • Гибкое развертывание: Запуск локально (stdio) или как удаленный HTTP-сервер

  • Аутентификация по ключу API: Подключение к защищенным экземплярам Qdrant (Qdrant Cloud, self-hosted с ключами API)

Related MCP server: MCP Qdrant Server with OpenAI Embeddings

Быстрый старт

Предварительные требования

  • Node.js 22.x или 24.x

  • Podman или Docker с поддержкой Compose

Установка

# Clone and install
git clone https://github.com/mhalder/qdrant-mcp-server.git
cd qdrant-mcp-server

# Node 22.x
npm install

# Node 24.x (requires C++20 flag for native module compilation)
CXXFLAGS='-std=c++20' npm install

# Start services (choose one)
podman compose up -d   # Using Podman
docker compose up -d   # Using Docker

# Pull the embedding model
podman exec ollama ollama pull nomic-embed-text  # Podman
docker exec ollama ollama pull nomic-embed-text  # Docker

# Build
npm run build

Конфигурация

Локальная настройка (транспорт stdio)

claude mcp add --transport stdio qdrant -- node /path/to/qdrant-mcp-server/build/index.js

Или добавьте в ~/.claude.json:

{
  "mcpServers": {
    "qdrant": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/qdrant-mcp-server/build/index.js"]
    }
  }
}

Для Qdrant Cloud или защищенных экземпляров добавьте --env QDRANT_API_KEY=your-key или установите в конфигурации окружения.

Попробуйте:

Create a collection called "notes" and add a document about machine learning

Включите примеры промптов: Скопируйте prompts.example.json в prompts.json и перезапустите. Используйте /prompt для вывода списка доступных промптов.

Удаленная настройка (транспорт HTTP)

⚠️ Предупреждение о безопасности: При развертывании HTTP-транспорта в продакшене:

  • Всегда запускайте за обратным прокси-сервером (nginx, Caddy) с HTTPS

  • Реализуйте аутентификацию/авторизацию на уровне прокси

  • Используйте брандмауэры для ограничения доступа к доверенным сетям

  • Никогда не открывайте доступ напрямую в публичный интернет без защиты

  • Рассмотрите возможность реализации ограничения частоты запросов на уровне прокси

  • Мониторьте логи сервера на предмет подозрительной активности

Запуск сервера:

TRANSPORT_MODE=http HTTP_PORT=3000 node build/index.js

Вариант 1: Использование claude mcp add

claude mcp add --transport http qdrant http://your-server:3000/mcp

Вариант 2: Добавление в ~/.claude.json

{
  "mcpServers": {
    "qdrant": {
      "type": "http",
      "url": "http://your-server:3000/mcp"
    }
  }
}

Использование другого провайдера:

"env": {
  "EMBEDDING_PROVIDER": "openai",  // or "cohere", "voyage"
  "OPENAI_API_KEY": "sk-...",      // provider-specific API key
  "QDRANT_URL": "http://localhost:6333"
}

Перезапустите после внесения изменений.

См. раздел Расширенная конфигурация ниже для получения информации обо всех параметрах.

Инструменты

Управление коллекциями

Инструмент

Описание

create_collection

Создать коллекцию с указанной метрикой расстояния (Cosine/Euclid/Dot)

list_collections

Список всех коллекций

get_collection_info

Получить детали и статистику коллекции

delete_collection

Удалить коллекцию и все документы

Операции с документами

Инструмент

Описание

add_documents

Добавить документы с автоматическим эмбеддингом (поддерживает ID строк/чисел, метаданные)

semantic_search

Поиск на естественном языке с опциональной фильтрацией по метаданным

hybrid_search

Гибридный поиск, сочетающий семантический и ключевой (BM25) поиск с RRF

delete_documents

Удалить конкретные документы по ID

Векторизация кода

Инструмент

Описание

index_codebase

Индексировать кодовую базу для семантического поиска с разбиением на основе AST

search_code

Поиск по индексированной кодовой базе с использованием запросов на естественном языке

reindex_changes

Инкрементально переиндексировать только измененные файлы (обнаруживает добавленные/измененные/удаленные)

get_index_status

Получить статус индексации и статистику для кодовой базы

clear_index

Удалить все индексированные данные для кодовой базы

История Git

Инструмент

Описание

index_git_history

Индексировать историю коммитов git для семантического поиска по прошлым изменениям и исправлениям

search_git_history

Поиск по индексированной истории git с использованием запросов на естественном языке

index_new_commits

Инкрементально индексировать только новые коммиты с момента последней индексации

get_git_index_status

Получить статус индексации и статистику для истории git репозитория

clear_git_index

Удалить все индексированные данные истории git для репозитория

Расширенный поиск

Инструмент

Описание

contextual_search

Комбинированный поиск по коду + истории git с корреляциями файлов и коммитов

federated_search

Поиск по нескольким репозиториям с ранжированием Reciprocal Rank Fusion (RRF)

Ресурсы

  • qdrant://collections - Список всех коллекций

  • qdrant://collection/{name} - Детали коллекции

Настраиваемые промпты

Создавайте пользовательские промпты, адаптированные к вашим конкретным задачам, без изменения кода. Промпты обеспечивают направленные рабочие процессы для типичных задач.

Примечание: По умолчанию сервер ищет prompts.json в корневом каталоге проекта. Если файл существует, промпты загружаются автоматически. Вы можете указать собственный путь с помощью переменной окружения PROMPTS_CONFIG_FILE.

Настройка

  1. Создайте файл конфигурации промптов (например, prompts.json в корне проекта):

    См. prompts.example.json для примеров конфигураций, которые можно скопировать и настроить.

  2. Настройте сервер (опционально — нужно только для пользовательского пути):

Если вы разместите prompts.json в корне проекта, дополнительная настройка не требуется. Чтобы использовать собственный путь:

{
  "mcpServers": {
    "qdrant": {
      "command": "node",
      "args": ["/path/to/qdrant-mcp-server/build/index.js"],
      "env": {
        "QDRANT_URL": "http://localhost:6333",
        "PROMPTS_CONFIG_FILE": "/custom/path/to/prompts.json"
      }
    }
  }
}
  1. Используйте промпты в своем ИИ-ассистенте:

Claude Code:

/mcp__qdrant__find_similar_docs papers "neural networks" 10

VSCode:

/mcp.qdrant.find_similar_docs papers "neural networks" 10

Примеры промптов

См. prompts.example.json для готовых к использованию промптов, включая:

  • setup_rag_collection - Создание коллекций, оптимизированных для RAG

  • analyze_and_optimize - Аналитика и рекомендации по коллекциям

  • compare_search_strategies - Сравнение семантического и гибридного поиска

  • migrate_to_hybrid - Руководство по миграции коллекции

  • debug_search_quality - Устранение неполадок с низким качеством поиска

  • build_knowledge_base - Структурированная документация с метаданными

  • index_git_history - Индексация истории коммитов репозитория для семантического поиска

  • search_project_history - Поиск по истории git для понимания реализации функций

  • investigate_code_with_history - Глубокое погружение в код с контекстным поиском

  • cross_repo_search - Поиск паттернов по нескольким репозиториям

  • trace_feature_evolution - Отслеживание эволюции функций во времени

  • security_audit_search - Поиск кода и исправлений, связанных с безопасностью

Синтаксис шаблонов

Шаблоны используют плейсхолдеры {{variable}}:

  • Обязательные аргументы должны быть предоставлены

  • Необязательные аргументы используют значения по умолчанию, если не указаны

  • Неизвестные переменные остаются в выводе как есть

Векторизация кода

Интеллектуально индексируйте и ищите по своей кодовой базе с помощью семантического поиска кода. Идеально подходит для разработки с поддержкой ИИ, исследования кода и понимания больших кодовых баз.

Возможности

  • Разбиение с учетом AST: Интеллектуальное разделение кода на границах функций/классов с использованием tree-sitter

  • Поддержка нескольких языков: 35+ типов файлов, включая TypeScript, Python, Java, Go, Rust, C++, и другие

  • Инкрементальные обновления: Повторная индексация только измененных файлов для быстрых обновлений

  • Умные паттерны игнорирования: Учитывает файлы .gitignore, .dockerignore и пользовательские файлы .contextignore

  • Семантический поиск: Запросы на естественном языке для поиска релевантного кода

  • Фильтрация по метаданным: Фильтрация по типу файла, паттернам путей или языку

  • Локальный приоритет: Вся обработка происходит локально — ваш код никогда не покидает ваш компьютер

Быстрый старт

1. Индексируйте свою кодовую базу:

# Via Claude Code MCP tool
/mcp__qdrant__index_codebase /path/to/your/project

2. Ищите по своему коду:

# Natural language search
/mcp__qdrant__search_code /path/to/your/project "authentication middleware"

# Filter by file type
/mcp__qdrant__search_code /path/to/your/project "database schema" --fileTypes .ts,.js

# Filter by path pattern
/mcp__qdrant__search_code /path/to/your/project "API endpoints" --pathPattern src/api/**

3. Обновляйте после изменений:

# Incrementally re-index only changed files
/mcp__qdrant__reindex_changes /path/to/your/project

Примеры использования

Индексация проекта на TypeScript

// The MCP tool automatically:
// 1. Scans all .ts, .tsx, .js, .jsx files
// 2. Respects .gitignore patterns (skips node_modules, dist, etc.)
// 3. Chunks code at function/class boundaries
// 4. Generates embeddings using your configured provider
// 5. Stores in Qdrant with metadata (file path, line numbers, language)

index_codebase({
  path: "/workspace/my-app",
  forceReindex: false, // Set to true to re-index from scratch
});

// Output:
// ✓ Indexed 247 files (1,823 chunks) in 45.2s

Поиск кода аутентификации

search_code({
  path: "/workspace/my-app",
  query: "how does user authentication work?",
  limit: 5,
});

// Results include file path, line numbers, and code snippets:
// [
//   {
//     filePath: "src/auth/middleware.ts",
//     startLine: 15,
//     endLine: 42,
//     content: "export async function authenticateUser(req: Request) { ... }",
//     score: 0.89,
//     language: "typescript"
//   },
//   ...
// ]

Поиск с фильтрами

// Only search TypeScript files
search_code({
  path: "/workspace/my-app",
  query: "error handling patterns",
  fileTypes: [".ts", ".tsx"],
  limit: 10,
});

// Only search in specific directories
search_code({
  path: "/workspace/my-app",
  query: "API route handlers",
  pathPattern: "src/api/**",
  limit: 10,
});

Инкрементальная переиндексация

// After making changes to your codebase
reindex_changes({
  path: "/workspace/my-app",
});

// Output:
// ✓ Updated: +3 files added, ~5 files modified, -1 files deleted
// ✓ Chunks: +47 added, -23 deleted in 8.3s

Проверка статуса индексации

get_index_status({
  path: "/workspace/my-app",
});

// Output:
// {
//   status: "indexed",      // "not_indexed" | "indexing" | "indexed"
//   isIndexed: true,        // deprecated: use status instead
//   collectionName: "code_a3f8d2e1",
//   chunksCount: 1823,
//   filesCount: 247,
//   lastUpdated: "2025-01-30T10:15:00Z",
//   languages: ["typescript", "javascript", "json"]
// }

Поддерживаемые языки

Языки программирования (35+ типов файлов):

  • Web: TypeScript, JavaScript, Vue, Svelte

  • Backend: Python, Java, Go, Rust, Ruby, PHP

  • Systems: C, C++, C#

  • Mobile: Swift, Kotlin, Dart

  • Functional: Scala, Clojure, Haskell, OCaml

  • Scripting: Bash, Shell, Fish

  • Data: SQL, GraphQL, Protocol Buffers

  • Config: JSON, YAML, TOML, XML, Markdown

См. конфигурацию для получения полного списка и параметров настройки.

Пользовательские паттерны игнорирования

Создайте файл .contextignore в корне проекта, чтобы указать дополнительные паттерны для игнорирования:

# .contextignore
**/test/**
**/*.test.ts
**/*.spec.ts
**/fixtures/**
**/mocks/**
**/__tests__/**

Лучшие практики

  1. Индексируйте один раз, обновляйте инкрементально: Используйте index_codebase для начальной индексации, затем reindex_changes для обновлений

  2. Используйте фильтры: Сужайте область поиска с помощью fileTypes и pathPattern для получения лучших результатов

  3. Осмысленные запросы: Используйте естественный язык, описывающий то, что вы ищете (например, "database connection pooling" вместо "db")

  4. Сначала проверяйте статус: Используйте get_index_status, чтобы убедиться, что кодовая база проиндексирована перед поиском

  5. Локальный эмбеддинг: Используйте Ollama (по умолчанию), чтобы все оставалось локальным и приватным

Производительность

Типичная производительность на современном ноутбуке (Apple M1/M2 или аналогичном):

Размер кодовой базы

Файлы

Время индексации

Задержка поиска

Малая (10k LOC)

50

~10с

<100мс

Средняя (100k LOC)

500

~2мин

<200мс

Большая (500k LOC)

2,500

~10мин

<500мс

Примечание: Время индексации зависит от провайдера эмбеддингов. Ollama (локально) — самый быстрый вариант для начальной индексации.

Поиск по истории Git

Индексируйте и ищите по истории коммитов git вашего репозитория, используя естественный язык. Идеально подходит для поиска прошлых исправлений, понимания паттернов изменений и обучения на предыдущем опыте.

Возможности

  • Семантический поиск коммитов: Находите коммиты, описывая то, что вы ищете, на естественном языке

  • Классификация Conventional Commits: Автоматическая классификация коммитов (feat, fix, refactor и т.д.)

  • Инкрементальные обновления: Индексируйте только новые коммиты для эффективных обновлений

  • Богатая фильтрация: Фильтрация по типу коммита, автору или диапазону дат

  • Извлечение метаданных: Включает измененные файлы, вставки/удаления и полный контекст коммита

Быстрый старт

**1.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityStale
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides RAG capabilities for semantic document search using Qdrant vector database and Ollama/OpenAI embeddings, allowing users to add, search, list, and delete documentation with metadata support.
    16
    16
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables storing and retrieving information using semantic search with Qdrant vector database. Acts as a memory layer for LLMs to persistently store and semantically search through information and metadata.
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic search and retrieval-augmented generation (RAG) using Qdrant vector database. Supports indexing documents from URLs and local directories, with flexible embedding options using Ollama or OpenAI.
    2
    -

Latest Blog Posts

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/mhalder/qdrant-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server