npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@devpuccino/mcp-qdrant

v1.0.0

Published

MCP Server for Qdrant Vector Database - Search, manage collections, and points

Downloads

22

Readme

MCP Qdrant Server

npm version npm downloads license

MCP (Model Context Protocol) server for Qdrant Vector Database.

Features

Collection Management - Create, list, update, and delete collections • Point Operations - CRUD operations for vector points • Search & Discovery - Vector similarity search and scroll/pagination • Payload Management - Set, update, and delete payload data • Full TypeScript - Type-safe implementation with Zod validation

Installation

Global Install

npm install -g @devpuccino/mcp-qdrant

Local Install

npm install @devpuccino/mcp-qdrant

MCP Configuration

Claude Desktop (macOS/Linux)

Add to ~/.claude/mcp.json:

{
  "mcpServers": {
    "qdrant": {
      "command": "npx",
      "args": ["-y", "@devpuccino/mcp-qdrant"],
      "env": {
        "QDRANT_URL": "http://localhost:6333",
        "QDRANT_API_KEY": "your-api-key-optional"
      }
    }
  }
}

Claude Desktop (Windows)

{
  "mcpServers": {
    "qdrant": {
      "command": "npx",
      "args": ["-y", "@devpuccino/mcp-qdrant"],
      "env": {
        "QDRANT_URL": "http://localhost:6333"
      }
    }
  }
}

Environment Variables

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | QDRANT_URL | No | http://localhost:6333 | Qdrant server URL | | QDRANT_API_KEY | No | - | API key for authentication |

Selective Tool Loading

The MCP Qdrant Server supports selective tool loading to reduce token usage and improve startup performance.

Command-Line Options

# Load only specific tools
npx @devpuccino/mcp-qdrant --tools=get_collection,search_points

# Load tools by category
npx @devpuccino/mcp-qdrant --categories=collections
npx @devpuccino/mcp-qdrant --categories=points

# Exclude specific tools (e.g., read-only mode)
npx @devpuccino/mcp-qdrant --exclude=delete_collection,delete_points

# List available tools
npx @devpuccino/mcp-qdrant --list-tools

# List available categories
npx @devpuccino/mcp-qdrant --list-categories

# Show help
npx @devpuccino/mcp-qdrant --help

Environment Variables

# Load specific tools
export MCP_TOOLS="get_collection,search_points,count_points"

# Load by categories
export MCP_CATEGORIES="collections"

# Exclude tools
export MCP_EXCLUDE="delete_collection,delete_points,clear_payload"

Available Categories

  • collections (7 tools): get_collection, create_collection, delete_collection, update_collection, list_collections, collection_exists, get_optimizations
  • points (10 tools): upsert_points, get_point, get_points, delete_points, search_points, scroll_points, count_points, set_payload, delete_payload, clear_payload

Token Savings

| Configuration | Tools | Token Savings | Use Case | |---------------|-------|---------------|----------| | All tools | 17 | 0% | Full access | | Single category | 7-10 | ~40-60% | Focused task | | Exclude destructive | 14-15 | ~10-15% | Read-only mode | | Minimal (2-3 tools) | 2-3 | ~80-85% | Specific task |

MCP Config Examples

Minimal Production Setup:

{
  "mcpServers": {
    "qdrant": {
      "command": "npx",
      "args": ["-y", "@devpuccino/mcp-qdrant"],
      "env": {
        "QDRANT_URL": "http://localhost:6333",
        "MCP_TOOLS": "search_points,get_point,create_collection"
      }
    }
  }
}

Read-Only Access:

{
  "mcpServers": {
    "qdrant": {
      "command": "npx",
      "args": ["-y", "@devpuccino/mcp-qdrant"],
      "env": {
        "QDRANT_URL": "http://localhost:6333",
        "MCP_EXCLUDE": "delete_collection,delete_points,clear_payload"
      }
    }
  }
}

Authentication

Qdrant supports API Key authentication for securing your vector database.

Getting Your API Key

If your Qdrant instance requires authentication:

  1. Qdrant Cloud: Get your API key from the Qdrant Cloud Dashboard
  2. Self-Hosted: Set QDRANT__SERVICE__API_KEY environment variable when starting Qdrant
    export QDRANT__SERVICE__API_KEY="your-secret-key"
    qdrant

Using API Key with MCP-Qdrant

Claude Desktop with Authentication:

{
  "mcpServers": {
    "qdrant": {
      "command": "npx",
      "args": ["-y", "@devpuccino/mcp-qdrant"],
      "env": {
        "QDRANT_URL": "https://your-cluster.cloud.qdrant.io:6333",
        "QDRANT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Environment Variables:

export QDRANT_URL="https://your-cluster.cloud.qdrant.io:6333"
export QDRANT_API_KEY="your-api-key-here"
npx @devpuccino/mcp-qdrant

Security Notes:

  • ✅ API key is passed via api-key HTTP header
  • ✅ Never commit API keys to version control
  • ✅ Use environment variables or secret managers
  • ✅ Rotate keys periodically

Available Tools

Collection Tools (7 tools)

create_collection

Create a new collection with vector configuration.

{
  "collection_name": "my-collection",
  "vector_size": 384,
  "distance": "Cosine",
  "shard_number": 1,
  "replication_factor": 1,
  "on_disk_payload": true
}

list_collections

List all collections in the Qdrant instance.

{}

get_collection

Get detailed information about a specific collection.

{
  "collection_name": "my-collection"
}

delete_collection

Delete a collection and all its data.

{
  "collection_name": "my-collection"
}

update_collection

Update collection settings (vectors, shards, replication).

{
  "collection_name": "my-collection",
  "vector_size": 768,
  "distance": "Dot"
}

collection_exists

Check if a collection exists.

{
  "collection_name": "my-collection"
}

get_optimizations

Get optimization status of a collection (green = healthy).

{
  "collection_name": "my-collection"
}

Point Tools (10 tools)

upsert_points

Insert or update points in a collection.

{
  "collection_name": "my-collection",
  "points": [
    {
      "id": 1,
      "vector": [0.1, 0.2, 0.3],
      "payload": { "title": "Document 1" }
    }
  ]
}

get_point

Get a single point by ID.

{
  "collection_name": "my-collection",
  "point_id": 1,
  "with_payload": true
}

get_points

Get multiple points by IDs.

{
  "collection_name": "my-collection",
  "point_ids": [1, 2, 3],
  "with_payload": true
}

delete_points

Delete points by IDs or filter.

{
  "collection_name": "my-collection",
  "point_ids": [1, 2],
  "filter": { "must": [{ "key": "category", "match": { "value": "old" } }] }
}

search_points

Search for similar points using vector similarity.

{
  "collection_name": "my-collection",
  "vector": [0.1, 0.2, 0.3],
  "limit": 10,
  "with_payload": true,
  "filter": { "must": [{ "key": "category", "match": { "value": "tech" } }] }
}

scroll_points

Scroll through points with pagination.

{
  "collection_name": "my-collection",
  "limit": 10,
  "offset": 0,
  "with_payload": true,
  "with_vector": false
}

count_points

Count points in a collection (optionally with filter).

{
  "collection_name": "my-collection",
  "filter": { "must": [{ "key": "category", "match": { "value": "tech" } }] },
  "exact": true
}

set_payload

Set or update payload for points.

{
  "collection_name": "my-collection",
  "payload": { "tags": ["AI", "ML"] },
  "point_ids": [1],
  "filter": { "must": [{ "key": "category", "match": { "value": "tech" } }] }
}

delete_payload

Delete specific payload keys from points.

{
  "collection_name": "my-collection",
  "payload_keys": ["old_field"],
  "point_ids": [1]
}

clear_payload

Remove all payload from points.

{
  "collection_name": "my-collection",
  "point_ids": [1, 2]
}

Usage Examples

Create a Collection and Add Points

// Create collection
await create_collection({
  collection_name: "documents",
  vector_size: 768,
  distance: "Cosine"
});

// Add points
await upsert_points({
  collection_name: "documents",
  points: [
    { id: 1, vector: [...], payload: { title: "Doc 1", content: "..." } },
    { id: 2, vector: [...], payload: { title: "Doc 2", content: "..." } }
  ]
});

Search for Similar Documents

const results = await search_points({
  collection_name: "documents",
  vector: queryEmbedding,
  limit: 5,
  with_payload: true,
  filter: {
    must: [{ key: "category", match: { value: "technical" } }]
  }
});

Paginate Through Points

const response = await scroll_points({
  collection_name: "documents",
  limit: 20,
  with_payload: true
});
// response.nextPageOffset for next page

License

MIT License - see LICENSE file for details.