Skip to main content

qdrant-full-mcp: run Qdrant from Claude Code, Codex and any MCP client

PyPI version Python versions CI MIT license MCP server

The complete Qdrant MCP server. Manage Qdrant Cloud and your vector data from Claude Code, Codex, Cursor, VS Code or any MCP client, in plain English.

Quick start · Features · How it works · Comparison · FAQ


qdrant-full-mcp is an open-source Model Context Protocol (MCP) server for the Qdrant vector database. It gives AI coding agents 43 tools to run Qdrant end to end: Qdrant Cloud management (clusters, backups, API keys), data operations (collections, upserts, dense, sparse and hybrid search, payload indexes) and plain-text memory with local embeddings. It does everything the official mcp-server-qdrant does, and adds infrastructure management and safety rails on top.

Zero to a working RAG store in one chat "Create a free Qdrant cluster in Mumbai, store these notes, then find what we said about refunds." The agent creates the cluster, creates a database key, asks once whether to remember it, stores your text and searches it. No console, no config edits, no restart.

Features

☁️ Qdrant Cloud management Create, scale, suspend, restart and delete clusters; list regions, packages and prices
🔑 Keys that just work The agent creates database keys and remembers them, so data tools work immediately
💾 Backups and restores On-demand backups, cron schedules with retention, restore in place or to a new cluster
🗂️ Collections and indexes Single, named and sparse vectors; keyword, integer, text, geo and other payload indexes
🔎 Search Dense, sparse and hybrid search (RRF or DBSF fusion), filters, scroll, counts
🧠 Plain-text memory store_text / find_text with local FastEmbed embeddings, compatible with the official server
💻 No server needed to start QDRANT_LOCAL_PATH runs Qdrant inside the MCP server; switch to Cloud by changing one setting
🛡️ Safe by default Every change is a dry run until confirmed; deletes need the exact name; read-only mode
🌐 Runs anywhere stdio, SSE and streamable HTTP transports, Docker image, Claude Code plugin

Quick start

1. Get a key. In the Qdrant Cloud console: Access Management → Cloud Management Keys → create one. That is the only setting you need; the account is detected automatically.

2. Download once. Requires uv. The first run fetches dependencies (about 40 seconds, then cached), which is longer than some clients wait for a server to start:

uvx qdrant-full-mcp --help

On a slow connection: UV_HTTP_TIMEOUT=180 uvx qdrant-full-mcp --help (PowerShell: $env:UV_HTTP_TIMEOUT=180; uvx qdrant-full-mcp --help).

3. Add it to your AI client.

Claude Code

claude mcp add qdrant -e QDRANT_CLOUD_API_KEY=your-management-key -- uvx qdrant-full-mcp

Check with claude mcp list or /mcp, then ask: "List my Qdrant Cloud clusters."

Install as a Claude Code plugin (adds a skill with the safe workflows)
/plugin marketplace add Jeevav62/qdrant-full-mcp
/plugin install qdrant@qdrant-full-mcp

Set QDRANT_CLOUD_API_KEY in your environment before starting Claude Code. To keep the key out of Claude's config with the plain install, use -e 'QDRANT_CLOUD_API_KEY=${QDRANT_CLOUD_API_KEY}'.

OpenAI Codex

codex mcp add qdrant --env QDRANT_CLOUD_API_KEY=your-management-key -- uvx qdrant-full-mcp
Or edit ~/.codex/config.toml
[mcp_servers.qdrant]
command = "uvx"
args = ["qdrant-full-mcp"]
startup_timeout_sec = 60

[mcp_servers.qdrant.env]
QDRANT_CLOUD_API_KEY = "your-management-key"

Verify with codex mcp list.

Cursor, Claude Desktop, Windsurf and other JSON-config clients
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": ["qdrant-full-mcp"],
      "env": { "QDRANT_CLOUD_API_KEY": "your-management-key" }
    }
  }
}

Cursor: ~/.cursor/mcp.json. Claude Desktop: claude_desktop_config.json.

VS Code (.vscode/mcp.json)
{
  "servers": {
    "qdrant": {
      "type": "stdio",
      "command": "uvx",
      "args": ["qdrant-full-mcp"],
      "env": { "QDRANT_CLOUD_API_KEY": "your-management-key" }
    }
  }
}
From a local clone
git clone https://github.com/Jeevav62/qdrant-full-mcp
claude mcp add qdrant -e QDRANT_CLOUD_API_KEY=your-management-key -- uv run --project ./qdrant-full-mcp qdrant-full-mcp

How it works

flowchart LR
    A["Claude Code, Codex, Cursor, VS Code"] -->|"MCP: stdio or HTTP"| B["qdrant-full-mcp"]
    B -->|"Cloud management key"| C["Qdrant Cloud API<br/>clusters, backups, keys"]
    B -->|"database key, created and remembered"| D["Qdrant cluster<br/>collections, search"]
    B -->|"QDRANT_LOCAL_PATH"| E["Local Qdrant<br/>no server needed"]
    B -.->|"FastEmbed"| F["Local embeddings<br/>store_text, find_text"]
  • Two credentials, handled for you. The Cloud management key runs infrastructure; Qdrant does not let it read data. When the agent creates a database key with create_database_api_key, the server remembers it for that cluster, so data tools work at once. The agent asks whether to save it on this machine; if you agree, every later session in any MCP client uses it (%APPDATA%\qdrant-full-mcp\keys.json on Windows, ~/.config/qdrant-full-mcp/keys.json elsewhere, file mode 600, never printed). Keys you set yourself (QDRANT_API_KEY_<CLUSTER_ID>, QDRANT_API_KEY) always take priority.
  • Endpoints are looked up for you. Pass cluster_id to any data tool. For self-hosted Qdrant, set QDRANT_URL and QDRANT_API_KEY instead.

Use cases

  • Build a RAG backend from chat: create a cluster, a collection with dense and sparse vectors, a payload index, and run hybrid search to test retrieval quality.
  • Give your agent long-term memory: set COLLECTION_NAME=memory and say "remember that…" / "what do we know about…".
  • Operate production safely: scale clusters, schedule backups, rotate keys, and inspect collections with dry runs and exact-name confirmations.
  • Learn vector search locally: QDRANT_LOCAL_PATH=./qdrant-data, no account and no server.

Plain-text memory (store and find)

store_text and find_text embed text on your machine with FastEmbed, the same approach as the official server, so you never handle vectors. For an agent memory with one default collection:

claude mcp add qdrant -e QDRANT_URL=https://your-cluster:6333 -e QDRANT_API_KEY=db-key -e COLLECTION_NAME=memory -- uvx qdrant-full-mcp
  • Stores into COLLECTION_NAME happen in one step and create the collection on first use; other collections keep the dry-run-then-confirm flow.
  • Default model sentence-transformers/all-MiniLM-L6-v2 (384 dimensions, about 90 MB on first use); change it with EMBEDDING_MODEL.
  • Same layout as the official server (named vector fast-<model>, payload {"document", "metadata"}), so both servers can share a collection.
  • TOOL_STORE_DESCRIPTION / TOOL_FIND_DESCRIPTION customize the tools (for example, a code-snippet library); QDRANT_SEARCH_LIMIT sets the default result count.
  • On Qdrant Cloud, a field you filter on needs a payload index; if it is missing, the error tells the agent the exact create_payload_index call that fixes it.

Run as an HTTP server or in Docker

qdrant-full-mcp --transport streamable-http --port 8000   # http://127.0.0.1:8000/mcp
qdrant-full-mcp --transport sse                           # older SSE clients
docker build -t qdrant-full-mcp .
docker run -p 127.0.0.1:8000:8000 -e QDRANT_URL=https://your-cluster:6333 -e QDRANT_API_KEY=db-key -e COLLECTION_NAME=memory qdrant-full-mcp

The server binds to 127.0.0.1 by default and has no built-in authentication while holding your Qdrant keys. If you expose it (--host 0.0.0.0), put an authenticating proxy in front. The Docker image includes the default embedding model and runs as a non-root user.

Example prompts

  • "List my Qdrant Cloud clusters." · "Show the available AWS regions and prices."
  • "Create a Qdrant cluster in AWS London with the smallest paid package." (shows the price, waits for approval)
  • "Scale cluster X to 3 nodes." · "Suspend cluster X."
  • "Back up cluster X every day at 3am and keep backups for 14 days."
  • "Restore backup Y into a new cluster called restored-1."
  • "Make a database key for cluster X and save it on this machine."
  • "Create a collection docs with a 768-dim dense vector and a sparse vector for hybrid search."
  • "Add a keyword index on tenant_id in docs." · "How many points are in docs?"
  • "Store these three FAQ answers in faq." · "Search faq for how refunds work."
  • "Delete cluster old-test." (you confirm the exact name)

Compared with the official Qdrant MCP server

Capability official mcp-server-qdrant qdrant-full-mcp
Store and find text with built-in embeddings ✅ ✅
Default collection (COLLECTION_NAME), one-step store ✅ ✅
Local mode without a server (QDRANT_LOCAL_PATH) ✅ store/find ✅ all data and text tools
Custom tool descriptions, default search limit ✅ ✅ same variable names
stdio, SSE, streamable HTTP, Docker ✅ ✅
Qdrant Cloud cluster management ✅
Backups, schedules and restores ✅
Database API keys created and remembered by the agent ✅
Named and sparse vectors, payload indexes ✅
Dense, sparse and hybrid (RRF, DBSF) search with your own vectors ✅
Dry run and exact-name confirmation on changes read-only flag ✅

Both servers use the same collection layout for text, so you can switch or run them side by side.

Tools

All 43 tools

Cloud, read-only: list_accounts, list_clusters, get_cluster, list_cloud_providers, list_regions, list_packages, list_releases, list_backups, list_backup_schedules, list_database_api_keys, list_members, list_remembered_keys

Cloud, changes things: create_cluster, update_cluster, delete_cluster, restart_cluster, suspend_cluster, unsuspend_cluster, create_backup, delete_backup, restore_backup_to_new_cluster, restore_backup (in place, overwrites), create_backup_schedule, delete_backup_schedule, create_database_api_key, delete_database_api_key, forget_database_api_key

Data, read-only: list_collections, get_collection, list_payload_indexes, count_points, get_points, scroll_points, query_points (dense or sparse), hybrid_query_points (dense + sparse, RRF or DBSF)

Data, changes things: create_collection (single, named and sparse vectors), delete_collection, create_payload_index, delete_payload_index, upsert_points, delete_points

Text: store_text, find_text

Safety and security

  • Every mutating tool is a dry run unless confirm=true, and tool descriptions tell the agent to get your approval.
  • Irreversible actions need the exact name: delete_cluster and restore_backup (confirm_cluster_name), delete_collection (confirm_collection_name).
  • QDRANT_MCP_READ_ONLY=1 (or QDRANT_READ_ONLY=1) blocks every write; QDRANT_MCP_MODULES loads only the modules you list (cloud, data, text).
  • Keys come from your environment or the opt-in key file, are never logged or echoed, and saved keys are removed when the key or cluster is deleted. QDRANT_MCP_KEY_FILE=off never writes keys to disk.
  • Ids and paths are validated before any request. Prefer least-privilege keys.

Configuration

All environment variables
Variable Used by Notes
QDRANT_CLOUD_API_KEY cloud tools the only required variable
QDRANT_CLOUD_ACCOUNT_ID cloud tools auto-detected when the key has one account
QDRANT_API_KEY data tools database key fallback (optional for unauthenticated local Qdrant)
QDRANT_API_KEY_<CLUSTER_ID> data tools per-cluster key; wins over remembered keys and QDRANT_API_KEY
QDRANT_MCP_KEY_FILE data tools where saved database keys go; off disables the key file
QDRANT_URL data tools self-hosted or direct endpoint, e.g. http://localhost:6333
QDRANT_LOCAL_PATH data tools run without a server: a folder or :memory: (instead of QDRANT_URL)
COLLECTION_NAME text tools default collection; stores into it skip the dry run
EMBEDDING_MODEL text tools FastEmbed model, default sentence-transformers/all-MiniLM-L6-v2
QDRANT_SEARCH_LIMIT text tools default find_text result count, 1..100 (default 5)
TOOL_STORE_DESCRIPTION, TOOL_FIND_DESCRIPTION text tools replace the tool descriptions
QDRANT_MCP_MODULES server cloud,data,text (default)
QDRANT_MCP_READ_ONLY server 1 blocks writes (QDRANT_READ_ONLY also works)
QDRANT_MCP_TRANSPORT server stdio (default), sse or streamable-http; same as --transport
FASTMCP_SERVER_HOST, FASTMCP_SERVER_PORT server HTTP bind address and port (FASTMCP_HOST/FASTMCP_PORT also work)
QDRANT_CLOUD_API_URL cloud tools default https://api.cloud.qdrant.io

See .env.example. Never commit real values.

FAQ

What is qdrant-full-mcp? An open-source MCP server that lets AI agents such as Claude Code and OpenAI Codex manage Qdrant Cloud (clusters, backups, API keys) and work with Qdrant data (collections, vector and hybrid search, text memory) through natural language.

How do I connect Claude Code to Qdrant? Run claude mcp add qdrant -e QDRANT_CLOUD_API_KEY=your-key -- uvx qdrant-full-mcp, then ask Claude to list your clusters. For Codex, use codex mcp add qdrant --env QDRANT_CLOUD_API_KEY=your-key -- uvx qdrant-full-mcp.

How is it different from the official mcp-server-qdrant? The official server is a semantic memory with two tools (store and find). qdrant-full-mcp includes the same store and find behaviour and collection layout, and adds Qdrant Cloud management, backups, database keys, named and sparse vectors, payload indexes, hybrid search and confirmation-based safety. See the comparison.

Can it create a free Qdrant Cloud cluster? Yes. Ask "create a free cluster in <region>". Qdrant allows one free cluster per account; a second request returns a clear quota error.

Do I need to generate embeddings myself? No for text: store_text and find_text embed locally with FastEmbed. Yes for the vector tools (upsert_points, query_points, hybrid_query_points), which take your own dense or sparse vectors.

Does it support hybrid search? Yes. hybrid_query_points combines a dense and a sparse query with reciprocal rank fusion (RRF) or distribution-based score fusion (DBSF).

Can I use it without Qdrant Cloud? Yes. Point QDRANT_URL at a self-hosted Qdrant, or set QDRANT_LOCAL_PATH to run Qdrant inside the server with no installation.

Is it safe to let an AI agent manage my database? Changes are dry runs until confirmed, deletes and in-place restores require the exact resource name, and QDRANT_MCP_READ_ONLY=1 blocks all writes. Your MCP client also asks before running tools.

Is this an official Qdrant product? No. It is an independent, MIT-licensed community project and is not affiliated with or endorsed by Qdrant.

Status

Verified live on Qdrant Cloud: cluster create, update, restart, suspend and unsuspend; database API keys including the remembered-key flow across server restarts; collections, named and sparse vectors, payload indexes, upserts, dense, sparse and hybrid search, deletes; store_text / find_text and filters. Also verified through the MCP protocol over stdio and streamable HTTP, in local mode, and in Docker.

Not yet verified live: backups, backup schedules, restores and cluster delete (free-tier clusters do not support backups). Reports from paid-cluster users are welcome.

Roadmap: snapshots, collection aliases, quantization and HNSW options, payload updates without re-upserting, a copy_collection tool. Out of scope: members, roles and billing; hybrid-cloud environments.

Contributing

Issues and pull requests are welcome.

git clone https://github.com/Jeevav62/qdrant-full-mcp && cd qdrant-full-mcp
pip install -e ".[dev]"
pytest

The Cloud REST gateway expects snake_case query parameters (for example page_size) and accepts camelCase JSON bodies; schemas live in qdrant-cloud-public-api.

License

MIT. Unofficial community project, not affiliated with or endorsed by Qdrant. "Qdrant" is a trademark of its owner.

Metadata

Release files for qdrant-full-mcp 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qdrant-full-mcp 0.4.1
File Size Uploaded
qdrant_full_mcp-0.4.1.tar.gz 39.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qdrant-full-mcp 0.4.1
File Interpreter ABI Platform
qdrant_full_mcp-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 73.2 kB

Release files / qdrant_full_mcp-0.4.1.tar.gz

Download URL qdrant_full_mcp-0.4.1.tar.gz
Size 39.0 kB
Tags Source
SHA-256 checksum
How to use checksums
13ce96899207d7a67d051ca9b65ea781ad53896868e1e4bb8b995c25582764be
BLAKE2b-256 checksum
How to use checksums
61ebc8968d06db52caf2cbd50a0245f9f194000da3509dca42a85b2f013044f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / qdrant_full_mcp-0.4.1-py3-none-any.whl

Download URL qdrant_full_mcp-0.4.1-py3-none-any.whl
Size 34.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe1a463f4da18babee4f7ce4481862939026293246e3478b82f06976092fd0a7
BLAKE2b-256 checksum
How to use checksums
fe26bc4b12616e74e12335b22770bb1acc61bf50e5df837640cf334744a9506e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page