Skip to main content
Glama
avaazquezz

io.github.avaazquezz/mcp-qdrant

by avaazquezz

qdrant_collection_create

Create a Qdrant collection with dense, named, or sparse vectors and initial index, quantization, and payload settings, so you can store and search embeddings under a new collection name.

Instructions

Create a collection: either a single unnamed vector (vector_size + distance), or one or more named vectors (vectors, each a full VectorParams — size, distance, and optionally its own multivector_config for ColBERT-style multi-vectors or quantization_config) — exactly one of the two. sparse_vectors defines sparse (keyword-style) vectors at creation time. quantization_config (scalar/product/binary) and strict_mode_config apply to the whole collection.

    `hnsw_config` and `optimizers_config` set the index and optimizer
    parameters from the start (they can also be changed later with
    `qdrant_collection_update`); `on_disk_payload=true` keeps payloads
    on disk instead of in RAM, which can only be chosen here.

    Fails with a clear error if a collection with this name already exists.

    Example (simple): {"collection_name": "docs", "vector_size": 4, "distance": "Cosine"}
    Example (hybrid): {"collection_name": "docs", "vectors": {
        "dense": {"size": 4, "distance": "Cosine"}
    }, "sparse_vectors": {"sparse": {}}}
    Example (multitenant index, payload on disk): {"collection_name": "docs",
        "vector_size": 4, "hnsw_config": {"m": 0, "payload_m": 16},
        "on_disk_payload": true}
    

Input Schema

NameRequiredDescriptionDefault
vectorsNo
distanceNoCosine
metadataNo
hnsw_configNo
vector_sizeNo
sparse_vectorsNo
collection_nameYes
on_disk_payloadNo
optimizers_configNo
strict_mode_configNo
quantization_configNo

Output Schema

NameRequiredDescriptionDefault
configYesCurrent statistics and configuration of the collection
statusYesCurrent statistics and configuration of the collection
warningsNoWarnings related to the collection
points_countNoApproximate number of points (vectors + payloads) in collection. Each point could be accessed by unique id.
update_queueNoUpdate queue info
payload_schemaYesTypes of stored payload
segments_countYesNumber of segments in collection. Each segment has independent vector as payload indexes
optimizer_statusYesCurrent statistics and configuration of the collection
indexed_vectors_countNoApproximate number of indexed vectors in the collection. Indexed vectors in large segments are faster to query, as it is stored in a specialized vector index.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv2.6.0
    • removedInput schema / $defs
      Removed value: -{
      -  "BinaryQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "binary": {
      -        "$ref": "#/$defs/BinaryQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "binary"
      -    ],
      -    "title": "BinaryQuantization",
      -    "type": "object"
      -  },
      -  "BinaryQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead.",
      -        "title": "Always Ram"
      -      },
      -      "encoding": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/BinaryQuantizationEncoding"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": ""
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      },
      -      "query_encoding": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/BinaryQuantizationQueryEncoding"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance."
      -      }
      -    },
      -    "title": "BinaryQuantizationConfig",
      -    "type": "object"
      -  },
      -  "BinaryQuantizationEncoding": {
      -    "enum": [
      -      "one_bit",
      -      "two_bits",
      -      "one_and_half_bits"
      -    ],
      -    "title": "BinaryQuantizationEncoding",
      -    "type": "string"
      -  },
      -  "BinaryQuantizationQueryEncoding": {
      -    "enum": [
      -      "default",
      -      "binary",
      -      "scalar4bits",
      -      "scalar8bits"
      -    ],
      -    "title": "BinaryQuantizationQueryEncoding",
      -    "type": "string"
      -  },
      -  "CompressionRatio": {
      -    "enum": [
      -      "x4",
      -      "x8",
      -      "x16",
      -      "x32",
      -      "x64"
      -    ],
      -    "title": "CompressionRatio",
      -    "type": "string"
      -  },
      -  "Datatype": {
      -    "enum": [
      -      "float32",
      -      "uint8",
      -      "float16",
      -      "turbo4"
      -    ],
      -    "title": "Datatype",
      -    "type": "string"
      -  },
      -  "Distance": {
      -    "description": "Type of internal tags, build from payload Distance function types used to compare vectors",
      -    "enum": [
      -      "Cosine",
      -      "Euclid",
      -      "Dot",
      -      "Manhattan"
      -    ],
      -    "title": "Distance",
      -    "type": "string"
      -  },
      -  "HnswConfigDiff": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ef_construct": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build the index.",
      -        "title": "Ef Construct"
      -      },
      -      "full_scan_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than `full_scan_threshold_kb`, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256",
      -        "title": "Full Scan Threshold"
      -      },
      -      "inline_storage": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.",
      -        "title": "Inline Storage"
      -      },
      -      "m": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.",
      -        "title": "M"
      -      },
      -      "max_indexing_threads": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs. On small CPUs, less threads are used.",
      -        "title": "Max Indexing Threads"
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the HNSW graph. Overrides the deprecated `on_disk` flag if both are set. Default: `cached` (`cold` if `on_disk` is set to true)."
      -      },
      -      "on_disk": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. Store HNSW index on disk. If set to false, the index will be stored in RAM. Default: false",
      -        "title": "On Disk"
      -      },
      -      "payload_m": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Custom M param for additional payload-aware HNSW links. If not set, default M will be used.",
      -        "title": "Payload M"
      -      }
      -    },
      -    "title": "HnswConfigDiff",
      -    "type": "object"
      -  },
      -  "Memory": {
      -    "description": "Memory placement of a component's data.  Data is always persisted on disk regardless of this setting; it only controls how the data is held in RAM.  Options:  * `Cold` - Data is not pre-loaded from disk to RAM. Preferred for rarely queried components or components larger than RAM size. First request might be slow, but data is cached with usage.  * `Cached` - Data is pre-loaded into disk-cache RAM on start. First request is fast, but data may be evicted if there is not enough memory and some other component's data is used more frequently.  * `Pinned` - Data is loaded in RAM and never evicted. First request is fast, but the component must fit in RAM at all times. Recommended for frequently queried small components like quantized vectors or primary indexes.",
      -    "enum": [
      -      "cold",
      -      "cached",
      -      "pinned"
      -    ],
      -    "title": "Memory",
      -    "type": "string"
      -  },
      -  "Modifier": {
      -    "description": "If used, include weight modification, which will be applied to sparse vectors at query time: None - no modification (default) Idf - inverse document frequency, based on statistics of the collection",
      -    "enum": [
      -      "none",
      -      "idf"
      -    ],
      -    "title": "Modifier",
      -    "type": "string"
      -  },
      -  "MultiVectorComparator": {
      -    "enum": [
      -      "max_sim"
      -    ],
      -    "title": "MultiVectorComparator",
      -    "type": "string"
      -  },
      -  "MultiVectorConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "comparator": {
      -        "$ref": "#/$defs/MultiVectorComparator",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "comparator"
      -    ],
      -    "title": "MultiVectorConfig",
      -    "type": "object"
      -  },
      -  "ProductQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "product": {
      -        "$ref": "#/$defs/ProductQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "product"
      -    ],
      -    "title": "ProductQuantization",
      -    "type": "object"
      -  },
      -  "ProductQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead.",
      -        "title": "Always Ram"
      -      },
      -      "compression": {
      -        "$ref": "#/$defs/CompressionRatio",
      -        "description": ""
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      }
      -    },
      -    "required": [
      -      "compression"
      -    ],
      -    "title": "ProductQuantizationConfig",
      -    "type": "object"
      -  },
      -  "ScalarQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "scalar": {
      -        "$ref": "#/$defs/ScalarQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "scalar"
      -    ],
      -    "title": "ScalarQuantization",
      -    "type": "object"
      -  },
      -  "ScalarQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage",
      -        "title": "Always Ram"
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      },
      -      "quantile": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values",
      -        "title": "Quantile"
      -      },
      -      "type": {
      -        "$ref": "#/$defs/ScalarType",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "ScalarQuantizationConfig",
      -    "type": "object"
      -  },
      -  "ScalarType": {
      -    "enum": [
      -      "int8"
      -    ],
      -    "title": "ScalarType",
      -    "type": "string"
      -  },
      -  "SparseIndexParams": {
      -    "additionalProperties": false,
      -    "description": "Configuration for sparse inverted index.",
      -    "properties": {
      -      "datatype": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Datatype"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Defines which datatype should be used for the index. Choosing different datatypes allows to optimize memory usage and performance vs accuracy.  - For `float32` datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For `float16` datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For `uint8` datatype - vectors are quantized to unsigned 8-bit integers, 1 byte. Quantization to fit byte range `[0, 255]` happens during indexing automatically, so the actual vector data does not need to conform to this range."
      -      },
      -      "full_scan_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "We prefer a full scan search upto (excluding) this number of vectors.  Note: this is number of vectors, not KiloBytes.",
      -        "title": "Full Scan Threshold"
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the index. Overrides the deprecated `on_disk` flag if both are set. Default: `pinned` (`cold` if `on_disk` is set to true)."
      -      },
      -      "on_disk": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. Store index on disk. If set to false, the index will be stored in RAM. Default: false",
      -        "title": "On Disk"
      -      }
      -    },
      -    "title": "SparseIndexParams",
      -    "type": "object"
      -  },
      -  "SparseVectorParams": {
      -    "additionalProperties": false,
      -    "description": "Params of single sparse vector data storage",
      -    "properties": {
      -      "index": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/SparseIndexParams"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Custom params for index. If none - values from collection configuration are used."
      -      },
      -      "modifier": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Modifier"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Configures addition value modifications for sparse vectors. Default: none"
      -      }
      -    },
      -    "title": "SparseVectorParams",
      -    "type": "object"
      -  },
      -  "StrictModeConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "condition_max_size": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max size of a condition, eg. items in `MatchAny`.",
      -        "title": "Condition Max Size"
      -      },
      -      "enabled": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Whether strict mode is enabled for a collection or not.",
      -        "title": "Enabled"
      -      },
      -      "filter_max_conditions": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max conditions a filter can have.",
      -        "title": "Filter Max Conditions"
      -      },
      -      "max_collection_payload_size_bytes": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max size of a collections payload storage in bytes",
      -        "title": "Max Collection Payload Size Bytes"
      -      },
      -      "max_collection_vector_size_bytes": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max size of a collections vector storage in bytes, ignoring replicas.",
      -        "title": "Max Collection Vector Size Bytes"
      -      },
      -      "max_payload_index_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of payload indexes in a collection",
      -        "title": "Max Payload Index Count"
      -      },
      -      "max_points_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of points estimated in a collection",
      -        "title": "Max Points Count"
      -      },
      -      "max_query_limit": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max allowed `limit` parameter for all APIs that don't have their own max limit.",
      -        "title": "Max Query Limit"
      -      },
      -      "max_resident_memory_percent": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use the node-wide quota config (`PUT /quotas`) instead, which caps the same resource for every collection. Scheduled for removal in 1.21.  Reject memory-consuming update operations (e.g. upsert, set payload) when the process resident memory exceeds this percentage of total system memory (or cgroup limit). Value in [1, 100]. Memory is a node-wide resource, so this only tightens the quota for one collection; it cannot lift it. Delete operations are not affected, so callers can still free memory.",
      -        "title": "Max Resident Memory Percent"
      -      },
      -      "max_timeout": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max allowed `timeout` parameter.",
      -        "title": "Max Timeout"
      -      },
      -      "multivector_config": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": {
      -              "$ref": "#/$defs/StrictModeMultivector"
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Multivector strict mode configuration",
      -        "title": "Multivector Config"
      -      },
      -      "read_rate_limit": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of read operations per minute per replica",
      -        "title": "Read Rate Limit"
      -      },
      -      "search_allow_exact": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Whether exact search is allowed.",
      -        "title": "Search Allow Exact"
      -      },
      -      "search_max_batchsize": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max batchsize when searching",
      -        "title": "Search Max Batchsize"
      -      },
      -      "search_max_hnsw_ef": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max HNSW ef value allowed in search parameters.",
      -        "title": "Search Max Hnsw Ef"
      -      },
      -      "search_max_oversampling": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max oversampling value allowed in search.",
      -        "title": "Search Max Oversampling"
      -      },
      -      "sparse_config": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": {
      -              "$ref": "#/$defs/StrictModeSparse"
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Sparse vector strict mode configuration",
      -        "title": "Sparse Config"
      -      },
      -      "unindexed_filtering_retrieve": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Allow usage of unindexed fields in retrieval based (e.g. search) filters.",
      -        "title": "Unindexed Filtering Retrieve"
      -      },
      -      "unindexed_filtering_update": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Allow usage of unindexed fields in filtered updates (e.g. delete by payload).",
      -        "title": "Unindexed Filtering Update"
      -      },
      -      "upsert_max_batchsize": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max batchsize when upserting",
      -        "title": "Upsert Max Batchsize"
      -      },
      -      "write_rate_limit": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of write operations per minute per replica",
      -        "title": "Write Rate Limit"
      -      }
      -    },
      -    "title": "StrictModeConfig",
      -    "type": "object"
      -  },
      -  "StrictModeMultivector": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "max_vectors": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of vectors in a multivector",
      -        "title": "Max Vectors"
      -      }
      -    },
      -    "title": "StrictModeMultivector",
      -    "type": "object"
      -  },
      -  "StrictModeSparse": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "max_length": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max length of sparse vector",
      -        "title": "Max Length"
      -      }
      -    },
      -    "title": "StrictModeSparse",
      -    "type": "object"
      -  },
      -  "TurboQuantBitSize": {
      -    "enum": [
      -      "bits1",
      -      "bits1_5",
      -      "bits2",
      -      "bits4"
      -    ],
      -    "title": "TurboQuantBitSize",
      -    "type": "string"
      -  },
      -  "TurboQuantQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead.",
      -        "title": "Always Ram"
      -      },
      -      "bits": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/TurboQuantBitSize"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": ""
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      }
      -    },
      -    "title": "TurboQuantQuantizationConfig",
      -    "type": "object"
      -  },
      -  "TurboQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "turbo": {
      -        "$ref": "#/$defs/TurboQuantQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "turbo"
      -    ],
      -    "title": "TurboQuantization",
      -    "type": "object"
      -  },
      -  "VectorParams": {
      -    "additionalProperties": false,
      -    "description": "Params of single vector data storage",
      -    "properties": {
      -      "datatype": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Datatype"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Defines which datatype should be used to represent vectors in the storage. Choosing different datatypes allows to optimize memory usage and performance vs accuracy.  - For `float32` datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For `float16` datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For `uint8` datatype - vectors are stored as unsigned 8-bit integers, 1 byte. It expects vector elements to be in range `[0, 255]`. - For `turbo4` datatype - vectors are quantized to 4 bits per element using the TurboQuant algorithm."
      -      },
      -      "distance": {
      -        "$ref": "#/$defs/Distance",
      -        "description": "Params of single vector data storage"
      -      },
      -      "hnsw_config": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/HnswConfigDiff"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Custom params for HNSW index. If none - values from collection configuration are used."
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the original vector storage. Overrides the deprecated `on_disk` flag if both are set. `pinned` is not supported for dense vector storage. Default: `cached` (`cold` if `on_disk` is set to true)."
      -      },
      -      "multivector_config": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/MultiVectorConfig"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Params of single vector data storage"
      -      },
      -      "on_disk": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. If true, vectors are served from disk, improving RAM usage at the cost of latency Default: false",
      -        "title": "On Disk"
      -      },
      -      "quantization_config": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/ScalarQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/ProductQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/BinaryQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/TurboQuantization"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Custom params for quantization. If none - values from collection configuration are used.",
      -        "title": "Quantization Config"
      -      },
      -      "size": {
      -        "description": "Size of a vectors used",
      -        "title": "Size",
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "size",
      -      "distance"
      -    ],
      -    "title": "VectorParams",
      -    "type": "object"
      -  }
      -}
    • addedInput schema / properties / hnsw_config
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "ef_construct": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "full_scan_threshold": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "inline_storage": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "m": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "max_indexing_threads": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "memory": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "cold",
      +                "cached",
      +                "pinned"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "on_disk": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "payload_m": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / on_disk_payload
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "On Disk Payload"
      +}
    • addedInput schema / properties / optimizers_config
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "default_segment_number": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "deleted_threshold": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "flush_interval_sec": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "indexing_threshold": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "max_optimization_threads": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "enum": [
      +                "auto"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "max_segment_size": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "memmap_threshold": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "prevent_unoptimized": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "vacuum_min_vector_number": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • changedInput schema / properties / quantization_config / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/ScalarQuantization"
      -  },
      -  {
      -    "$ref": "#/$defs/ProductQuantization"
      -  },
      -  {
      -    "$ref": "#/$defs/BinaryQuantization"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "scalar": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "always_ram": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "memory": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "cold",
      +                  "cached",
      +                  "pinned"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "quantile": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "type": {
      +            "enum": [
      +              "int8"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "scalar"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "product": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "always_ram": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "compression": {
      +            "enum": [
      +              "x4",
      +              "x8",
      +              "x16",
      +              "x32",
      +              "x64"
      +            ],
      +            "type": "string"
      +          },
      +          "memory": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "cold",
      +                  "cached",
      +                  "pinned"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "compression"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "product"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "binary": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "always_ram": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "encoding": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "one_bit",
      +                  "two_bits",
      +                  "one_and_half_bits"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "memory": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "cold",
      +                  "cached",
      +                  "pinned"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "query_encoding": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "default",
      +                  "binary",
      +                  "scalar4bits",
      +                  "scalar8bits"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "binary"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / sparse_vectors / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "$ref": "#/$defs/SparseVectorParams"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "index": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "datatype": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "float32",
      +                        "uint8",
      +                        "float16",
      +                        "turbo4"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "full_scan_threshold": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "memory": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "cold",
      +                        "cached",
      +                        "pinned"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "on_disk": {
      +                  "anyOf": [
      +                    {
      +                      "type": "boolean"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "modifier": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "none",
      +                "idf"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / strict_mode_config / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/StrictModeConfig"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "condition_max_size": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "filter_max_conditions": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_collection_payload_size_bytes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_collection_vector_size_bytes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_payload_index_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_points_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_query_limit": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_resident_memory_percent": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_timeout": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "multivector_config": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "max_vectors": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "read_rate_limit": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_allow_exact": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_max_batchsize": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_max_hnsw_ef": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_max_oversampling": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sparse_config": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "max_length": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "unindexed_filtering_retrieve": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "unindexed_filtering_update": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "upsert_max_batchsize": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "write_rate_limit": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / vectors / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "$ref": "#/$defs/VectorParams"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "datatype": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "float32",
      +                "uint8",
      +                "float16",
      +                "turbo4"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "distance": {
      +          "enum": [
      +            "Cosine",
      +            "Euclid",
      +            "Dot",
      +            "Manhattan"
      +          ],
      +          "type": "string"
      +        },
      +        "hnsw_config": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "ef_construct": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "full_scan_threshold": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "inline_storage": {
      +                  "anyOf": [
      +                    {
      +                      "type": "boolean"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "m": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "max_indexing_threads": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "memory": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "cold",
      +                        "cached",
      +                        "pinned"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "on_disk": {
      +                  "anyOf": [
      +                    {
      +                      "type": "boolean"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "payload_m": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "memory": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "cold",
      +                "cached",
      +                "pinned"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "multivector_config": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "comparator": {
      +                  "enum": [
      +                    "max_sim"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "comparator"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "on_disk": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "quantization_config": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "scalar": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "quantile": {
      +                      "anyOf": [
      +                        {
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "type": {
      +                      "enum": [
      +                        "int8"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "type"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "scalar"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "product": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "compression": {
      +                      "enum": [
      +                        "x4",
      +                        "x8",
      +                        "x16",
      +                        "x32",
      +                        "x64"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "compression"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "product"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "binary": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "encoding": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "one_bit",
      +                            "two_bits",
      +                            "one_and_half_bits"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "query_encoding": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "default",
      +                            "binary",
      +                            "scalar4bits",
      +                            "scalar8bits"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "binary"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "turbo": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "bits": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "bits1",
      +                            "bits1_5",
      +                            "bits2",
      +                            "bits4"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "turbo"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "size": {
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "size",
      +        "distance"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observedv1.1.1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-idempotent, non-destructive write. The description goes beyond them with genuinely useful facts: the name-collision failure mode, and the key immutability constraint that `on_disk_payload` can only be chosen at creation while `hnsw_config`/`optimizers_config` are mutable later. It stops short of stating permissions/auth needs or what a successful response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core decision before the optional configuration detail, and every paragraph addresses a distinct concern. The three worked examples earn their space by disambiguating the alternatives concretely, though the description is on the long side for a create call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose. For a high-parameter create tool the description covers the shape selection, immutability boundaries, mutability of other configs, error behavior, and worked examples. The only residual gap is the undocumented `metadata` parameter, which is minor against the whole.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage across 11 parameters, the description carries the full burden and largely meets it: it explains the roles of `vector_size`, `distance`, `vectors`, `sparse_vectors`, `quantization_config`, `strict_mode_config`, `hnsw_config`, `optimizers_config`, and `on_disk_payload`, including the ColBERT-style multivector case. However, `metadata` is never mentioned and the fields inside `optimizers_config`/`strict_mode_config` get no semantic explanation beyond their group names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a collection') and immediately enumerates the two mutually exclusive configuration shapes (single unnamed vector vs. named `vectors`). This clearly separates it from `qdrant_collection_update`, `qdrant_collection_delete`, and `qdrant_collection_list`, which are named outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the 'exactly one of the two' constraint for `vector_size`+`distance` vs `vectors`, which is the main branching decision an agent faces. It also routes future changes to `qdrant_collection_update` and warns that creation fails if the name already exists. It does not point to the `qdrant_collection_exists` sibling as a pre-check, leaving that inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.