Skip to content

feat: apply multiple PR enhancements to mcp-server-qdrant#2

Closed
mahmoudimus wants to merge 2 commits intomasterfrom
claude/apply-qdrant-pr-diffs-01AhiVoNjjJLech41534GUwW
Closed

feat: apply multiple PR enhancements to mcp-server-qdrant#2
mahmoudimus wants to merge 2 commits intomasterfrom
claude/apply-qdrant-pr-diffs-01AhiVoNjjJLech41534GUwW

Conversation

@mahmoudimus
Copy link
Copy Markdown
Owner

This commit consolidates changes from PRs qdrant#92, qdrant#75, qdrant#77, qdrant#90, qdrant#20, qdrant#89, qdrant#78, qdrant#76, and qdrant#68:

Infrastructure & Configuration (PR qdrant#75, qdrant#77):

  • Upgrade Dockerfile to Python 3.13-slim
  • Use UV 0.8.3 from official image
  • Add FASTMCP_HOST="0.0.0.0" for container networking
  • Add SettingsConfigDict for proper None value parsing

New Embedding Providers (PR qdrant#76, qdrant#92):

  • Add Model2Vec support for fast, lightweight embeddings
  • Add OpenAI-compatible API support (oai_compat)
  • New settings: OAI_COMPAT_ENDPOINT, OAI_COMPAT_API_KEY, OAI_COMPAT_VEC_SIZE

Unnamed Vectors & Multiple Collections (PR qdrant#78):

  • Add support for Qdrant unnamed vectors
  • Create UnnamedVectorProvider wrapper
  • Add USE_UNNAMED_VECTORS and COLLECTION_NAMES settings
  • Update qdrant.py to handle both named and unnamed vectors
  • Add main.py for python -m execution

Hybrid Search (PR qdrant#90):

  • Implement hybrid search combining dense and sparse vectors
  • Add find_hybrid() method with RRF and DBSF fusion methods
  • New tool: qdrant-hybrid-find
  • Add SPARSE_EMBEDDING_MODEL setting
  • Support configurable limits for dense, sparse, and final results

Optional Collection Names (PR qdrant#89):

  • Make collection_name parameter optional in store() and find()
  • Use default collection when not specified
  • Simplify tool usage with fallback to COLLECTION_NAME env var

Additional Tools (PR qdrant#68):

  • Add qdrant-get-point: Retrieve point by ID
  • Add qdrant-delete-point: Delete point by ID
  • Add qdrant-update-point-payload: Update point metadata
  • Add qdrant-get-collections: List all collections
  • Add qdrant-get-collection-details: Get collection info
  • Implement corresponding methods in QdrantConnector

Documentation:

  • Update README with all new features
  • Document new embedding providers
  • Add examples for unnamed vectors and multiple collections
  • Update environment variables table
  • Document hybrid search functionality
  • Expand tools documentation

Dependencies:

Infrastructure & Configuration (PR qdrant#75, qdrant#77):

  • Upgrade Dockerfile to Python 3.13-slim
  • Use UV 0.8.3 from official image
  • Add FASTMCP_HOST="0.0.0.0" for container networking
  • Add SettingsConfigDict for proper None value parsing

New Embedding Providers (PR qdrant#76, qdrant#92):

  • Add Model2Vec support for fast, lightweight embeddings
  • Add OpenAI-compatible API support (oai_compat)
  • New settings: OAI_COMPAT_ENDPOINT, OAI_COMPAT_API_KEY, OAI_COMPAT_VEC_SIZE

Unnamed Vectors & Multiple Collections (PR qdrant#78):

  • Add support for Qdrant unnamed vectors
  • Create UnnamedVectorProvider wrapper
  • Add USE_UNNAMED_VECTORS and COLLECTION_NAMES settings
  • Update qdrant.py to handle both named and unnamed vectors
  • Add main.py for python -m execution

Hybrid Search (PR qdrant#90):

  • Implement hybrid search combining dense and sparse vectors
  • Add find_hybrid() method with RRF and DBSF fusion methods
  • New tool: qdrant-hybrid-find
  • Add SPARSE_EMBEDDING_MODEL setting
  • Support configurable limits for dense, sparse, and final results

Optional Collection Names (PR qdrant#89):

  • Make collection_name parameter optional in store() and find()
  • Use default collection when not specified
  • Simplify tool usage with fallback to COLLECTION_NAME env var

Additional Tools (PR qdrant#68):

  • Add qdrant-get-point: Retrieve point by ID
  • Add qdrant-delete-point: Delete point by ID
  • Add qdrant-update-point-payload: Update point metadata
  • Add qdrant-get-collections: List all collections
  • Add qdrant-get-collection-details: Get collection info
  • Implement corresponding methods in QdrantConnector

Documentation:

  • Update README with all new features
  • Document new embedding providers
  • Add examples for unnamed vectors and multiple collections
  • Update environment variables table
  • Document hybrid search functionality
  • Expand tools documentation

Dependencies:

  • Add model2vec==0.6.0
  • Add openai>=1.109.1

This commit consolidates changes from PRs qdrant#92, qdrant#75, qdrant#77, qdrant#90, qdrant#20, qdrant#89, qdrant#78, qdrant#76, and qdrant#68:

Infrastructure & Configuration (PR qdrant#75, qdrant#77):
- Upgrade Dockerfile to Python 3.13-slim
- Use UV 0.8.3 from official image
- Add FASTMCP_HOST="0.0.0.0" for container networking
- Add SettingsConfigDict for proper None value parsing

New Embedding Providers (PR qdrant#76, qdrant#92):
- Add Model2Vec support for fast, lightweight embeddings
- Add OpenAI-compatible API support (oai_compat)
- New settings: OAI_COMPAT_ENDPOINT, OAI_COMPAT_API_KEY, OAI_COMPAT_VEC_SIZE

Unnamed Vectors & Multiple Collections (PR qdrant#78):
- Add support for Qdrant unnamed vectors
- Create UnnamedVectorProvider wrapper
- Add USE_UNNAMED_VECTORS and COLLECTION_NAMES settings
- Update qdrant.py to handle both named and unnamed vectors
- Add __main__.py for python -m execution

Hybrid Search (PR qdrant#90):
- Implement hybrid search combining dense and sparse vectors
- Add find_hybrid() method with RRF and DBSF fusion methods
- New tool: qdrant-hybrid-find
- Add SPARSE_EMBEDDING_MODEL setting
- Support configurable limits for dense, sparse, and final results

Optional Collection Names (PR qdrant#89):
- Make collection_name parameter optional in store() and find()
- Use default collection when not specified
- Simplify tool usage with fallback to COLLECTION_NAME env var

Additional Tools (PR qdrant#68):
- Add qdrant-get-point: Retrieve point by ID
- Add qdrant-delete-point: Delete point by ID
- Add qdrant-update-point-payload: Update point metadata
- Add qdrant-get-collections: List all collections
- Add qdrant-get-collection-details: Get collection info
- Implement corresponding methods in QdrantConnector

Documentation:
- Update README with all new features
- Document new embedding providers
- Add examples for unnamed vectors and multiple collections
- Update environment variables table
- Document hybrid search functionality
- Expand tools documentation

Dependencies:
- Add model2vec==0.6.0
- Add openai>=1.109.1
… tools

This commit consolidates changes from multiple community forks:

New Embedding Provider (deduble fork):
- Add Google Gemini embedding provider support
- Supports text-embedding-004 (768 dimensions)
- New setting: GEMINI_API_KEY
- Compatible with all Gemini embedding models

Enhanced Point Management (cielhaidir fork):
- Add qdrant-list-points tool for paginated listing
- Supports limit and offset parameters
- Returns point IDs along with content and metadata
- Complements existing get/delete/update point tools

Docker Development Tools (saifamrkhail fork):
- Add docker-compose.yml for easy development setup
- Includes Makefile with convenient commands
- Commands: make up/down/logs/ps/rebuild/clean
- Connects to external qdrantnet network
- Streamable HTTP transport configured

Documentation Updates:
- Document all 9 available MCP tools
- Add Gemini provider setup examples
- Add Docker development workflow section
- Update environment variables table
- Add Makefile commands documentation

Dependencies:
- Add google-generativeai>=0.8.3

Architecture Notes:
- Gemini provider uses ThreadPoolExecutor for async compatibility
- List tool uses Qdrant's scroll API for efficient pagination
- Docker setup optimized for development workflows

Note: RAG features from avidspartan1 fork (document chunking, ingest CLI)
require significant architectural changes and will be considered for future
implementation as they add substantial complexity.
@mahmoudimus mahmoudimus deleted the claude/apply-qdrant-pr-diffs-01AhiVoNjjJLech41534GUwW branch November 17, 2025 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants