qdrant-mcp
Uses OpenAI Embeddings (e.g., text-embedding-3-small) to generate vector embeddings for document chunks, enabling semantic search. Also optionally uses an OpenAI model for generating chunk headers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@qdrant-mcpSearch for 'vector search' in category guides."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
qdrant-mcp
MCP server for document ingestion and semantic search on Qdrant.
Overview
qdrant-mcp provides tools to:
ingest local documents into a Qdrant collection
generate embeddings with OpenAI
run vector search with optional metadata filters
Features
ingest_documentsconverts files such as
docx,pptx, andpdfto Markdown via MarkItDownsplits content into chunks using
chunk_sizeandoverlap_ratioembeds chunks with OpenAI Embeddings (
text-embedding-3-smallby default)upserts chunk text and metadata into Qdrant
search_documentsembeds query text with the same embeddings API
retrieves top
kmatches from Qdrantsupports filtering by
categoryandpath
Requirements
Python 3.11+
uvQdrant (for example,
http://localhost:6333)OPENAI_API_KEY
Setup
uv syncRun inside the Codex CLI
[mcp_servers.qdrant-mcp]
command = "uv"
args = ["run", "qdrant-mcp"]
cwd = "/sandbox/qdrant-mcp"
env = {
OPENAI_API_KEY = "sk-...",
QDRANT_URL = "http://127.0.0.1:6333",
QDRANT_API_KEY = "QDRANT_API_KEY",
QDRANT_COLLECTION = "codex_collection",
CHUNK_HEADER_MODEL = "gpt-5.4-mini"
}Testing
Set OPENAI_API_KEY, QDRANT_URL, and QDRANT_API_KEY in .env, then run:
uv run python -m unittest tests/integration/test_qdrant_integration.pyMCP Tools
ingest_documents
Parameters:
paths: list[str]category: strchunk_size: int = 1200overlap_ratio: float = 0.15embedding_model: str = "text-embedding-3-small"chunk_header_mode: Literal["enabled", "disabled"] = "enabled"
Returns:
collectionembedding_modelingested_filesingested_pointsfailed_files
search_documents
Parameters:
query: strtop_k: int = 5category: str | None = Nonepath: str | None = Noneembedding_model: str = "text-embedding-3-small"
Returns:
collectionembedding_modelquerycountresults(score,path,category,chunk_index,text)
delete_documents_by_path
Parameters:
path: strcategory: str | None = None
Returns:
collectionpathcategorystatusoperation_id
list_category
Parameters:
limit: int = 100
Returns:
collectioncountcategories
list_path
Parameters:
category: strlimit: int = 1000
Returns:
collectioncategorycountpaths
Notes
If the target collection does not exist, it is created automatically on first ingestion.
If payload indexes for
categoryandpathdo not exist, they are created during ingestion.By default, ingestion prepends a generated
Chunk-Header(max 64 chars), derived from the first 4096 bytes, to every chunk.The Chunk-Header model is read from
CHUNK_HEADER_MODELwhenchunk_header_modeisenabled(default:gpt-5.4-mini).The collection name is configured only through
QDRANT_COLLECTION(not via MCP tool parameters).With
text-embedding-3-small, the vector size is1536.
License
See LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/msstnk/qdrant-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server