mcp_qrant
Provides tools for storing and querying vector embeddings in Elasticsearch.
Provides tools for storing and querying vector embeddings in Milvus.
Provides tools for storing and querying vector embeddings in MongoDB (Atlas).
Provides tools for storing and querying vector embeddings in PostgreSQL (via pgvector extension).
Provides tools for storing and querying vector embeddings in Redis.
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., "@mcp_qrantsearch for renewable energy in my Qdrant collection"
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.
mcp_qrant — Vector-Store MCP Server
A Python/FastAPI MCP server (JSON-RPC 2.0) that exposes a unified interface for storing and querying vector databases. Phase 1 ships Qdrant (self-embedding, local or remote). Nine more providers are listed and will be activated in later phases.
Quick Start
# from the project root
MCPQ_PORT=8008 ./.venv/bin/python server.pyThe server listens on http://127.0.0.1:8008 and handles MCP JSON-RPC at both / and /mcp.
Environment variables:
Variable | Default | Purpose |
|
| Listening port |
|
| Bind address |
|
| Directory of provider JSON descriptors |
Related MCP server: Qdrant MCP Server
Tools (5)
list_providers
Returns all 10 provider descriptors. Each entry includes available (bool), embeds_internally (bool), and connection_schema (field list for the UI form).
list_embeddings
Returns the embedding-model catalog (FastEmbed BGE, HuggingFace MiniLM, OpenAI small/large). Only relevant for providers where embeds_internally: false — those need a model chosen from this list to embed text before upsert/search.
test_connection
Validates a provider connection without writing data.
{"provider": "qdrant", "connection": {"mode": "local", "path": "/tmp/mydb"}}Returns {"ok": true} or {"ok": false, "message": "..."}.
store
Embeds (if needed) and upserts text chunks into a collection.
{
"provider": "qdrant",
"connection": {"mode": "local", "path": "/tmp/mydb"},
"collection": "my_docs",
"items": [
{"text": "solar panels convert sunlight", "metadata": {"src": "wiki"}},
{"text": "the cat sat on the mat", "metadata": {"src": "test"}}
]
}Returns {"stored": 2, "errors": 0}.
embedding is optional; Qdrant ignores it (self-embeds). Pass an id from list_embeddings for future non-self-embedding providers.
find
Semantic search over a collection.
{
"provider": "qdrant",
"connection": {"mode": "local", "path": "/tmp/mydb"},
"collection": "my_docs",
"query": "renewable energy",
"limit": 3
}Returns {"results": [{"text": "...", "metadata": {...}, "score": 0.91}, ...]}.
Providers (10)
Name | Label | Available | Embeds internally |
| Qdrant | yes | yes |
| PostgreSQL + pgvector | coming soon | no |
| Chroma | coming soon | no |
| FAISS | coming soon | no |
| Milvus | coming soon | no |
| MongoDB Atlas | coming soon | no |
| Pinecone | coming soon | no |
| Redis | coming soon | no |
| Weaviate | coming soon | no |
| Elasticsearch | coming soon | no |
embeds_internally
true(Qdrant): the provider does its own embedding viaqdrant-client[fastembed]. Pass text initems[].textandquery; theembeddingfield is ignored.false(all others, Phase 2+): the MCP will embed text using the model you select fromlist_embeddingsbefore upserting or searching. Pass the modelidin theembeddingfield.
Connection Schemas
list_providers returns a connection_schema per provider that drives the UI form. Qdrant's fields:
Field | Type | Notes |
| select |
|
| text | required when |
| text | required when |
| password | required for Qdrant Cloud; masked in UI |
Running Tests
./.venv/bin/python -m pytest tests/ -v18 tests, all green (Tasks 1–7).
Smoke Test
cd tests && ./smoke.shBoots the server on port 8008, fires list_providers (10 entries), store 2 chunks into a temp local Qdrant path, and find with a semantic query — then shuts down and cleans up.
PHP Prototype (Retired)
An earlier PHP prototype (htdocs/vector/) implemented qdrant-store/qdrant-find as a thin stateless translator to Qdrant Cloud REST. That work informed the tool contract but is superseded by this Python server. The PHP files will be retired at the remote-Qdrant cutover when this MCP handles both local and remote modes end-to-end.
Architecture
server.py FastAPI app + JSON-RPC router (_wrap envelope)
handlers.py Handlers class — delegates to registry
stores/
base.py VectorStoreProvider protocol
registry.py build_registry + providers_payload
qdrant.py QdrantProvider (connect/test_connection/store/find)
providers/ 10 JSON descriptor files (available, embeds_internally, connection_schema)
embedding.py Embedding catalog (used by future non-self-embedding providers)
config.py AppConfig (env-var driven)
tests/
smoke.sh Live boot + curl smoke (store/find against real local Qdrant)
test_*.py 18 unit testsThis server cannot be installed
Maintenance
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/didierphmartin/mcp_qrant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server