Qdrant Migrate Collection Embedding
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
write - Catalog version:
qdrant-2026.07.12.2 - Descriptor hash:
79b361374154d8d38ffb5a0952eb93521f0e523d02c11e8e1c58f30c71815151
Use this when you need to add and populate the active named vector on a legacy collection. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.
Request Body
{
"jsonrpc": "2.0",
"id": "qdrant-qdrant-migrate-collection-embedding-example",
"method": "tools/call",
"params": {
"name": "qdrant.qdrant-migrate-collection-embedding",
"arguments": {
"offset": "",
"confirm": false,
"dry_run": false,
"batch_size": 1,
"max_points": "",
"collection_name": "collection_name_example"
}
}
}
Arguments Schema
{
"type": "object",
"title": "Qdrant Migrate Collection Embedding input",
"properties": {
"offset": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Offset",
"default": null,
"description": "Optional Qdrant scroll offset returned by a previous migration call."
},
"confirm": {
"type": "boolean",
"title": "Confirm",
"default": false,
"description": "Confirm writes when dry_run is false."
},
"dry_run": {
"type": "boolean",
"title": "Dry Run",
"default": true,
"description": "Report required migration without writing."
},
"batch_size": {
"type": "integer",
"title": "Batch Size",
"default": 32,
"description": "Batch size for scanning and vector updates."
},
"max_points": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Max Points",
"default": null,
"description": "Max points to scan in this call."
},
"collection_name": {
"type": "string",
"title": "Collection Name",
"default": "",
"description": "Collection to migrate to the active embedding."
}
},
"description": "Validated input contract for the qdrant-migrate-collection-embedding native Qdrant MCP tool."
}
Output Schema
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "object",
"description": "Normalized result data for qdrant-migrate-collection-embedding: add and populate the active named vector on a legacy collection.",
"additionalProperties": true
},
"meta": {
"type": "object",
"properties": {
"bytes_in": {
"type": "integer",
"description": "Approximate serialized input byte count."
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Safe recovery warnings."
},
"bytes_out": {
"type": "integer",
"description": "Approximate serialized output byte count."
},
"elapsed_ms": {
"type": "integer",
"description": "Tool execution time in milliseconds."
},
"request_id": {
"type": "string",
"description": "Stable request trace identifier."
},
"server_version": {
"type": "string",
"description": "Deployed source revision when available."
},
"serialization_ms": {
"type": "integer",
"description": "Response serialization time in milliseconds."
},
"server_uptime_ms": {
"type": "integer",
"description": "Server process uptime in milliseconds."
},
"server_instance_id": {
"type": "string",
"description": "Ephemeral server-process identifier."
}
},
"description": "Secret-safe request, trace, size, timing, and warning metadata.",
"additionalProperties": true
}
},
"description": "Qdrant MCP normalized response envelope.",
"additionalProperties": false
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "qdrant-qdrant-migrate-collection-embedding-example",
"method": "tools/call",
"params": {
"name": "qdrant.qdrant-migrate-collection-embedding",
"arguments": {
"offset": "",
"confirm": false,
"dry_run": false,
"batch_size": 1,
"max_points": "",
"collection_name": "collection_name_example"
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "qdrant-qdrant-migrate-collection-embedding-example",
"method": "tools/call",
"params": {
"name": "qdrant.qdrant-migrate-collection-embedding",
"arguments": {
"offset": "",
"confirm": false,
"dry_run": false,
"batch_size": 1,
"max_points": "",
"collection_name": "collection_name_example"
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "qdrant-qdrant-migrate-collection-embedding-example",
"method": "tools/call",
"params": {
"name": "qdrant.qdrant-migrate-collection-embedding",
"arguments": {
"offset": "",
"confirm": false,
"dry_run": false,
"batch_size": 1,
"max_points": "",
"collection_name": "collection_name_example"
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool qdrant.qdrant-migrate-collection-embedding executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}