Migrate vectors from any major vector database to MVS (Mixpeek Vector Store).
| Source | Install Extra | Status |
|---|---|---|
| Pinecone | pip install mvs-migrate[pinecone] |
Full |
| Qdrant | pip install mvs-migrate[qdrant] |
Full |
| Weaviate | pip install mvs-migrate[weaviate] |
Full |
| Milvus / Zilliz | pip install mvs-migrate[milvus] |
Full |
| Elasticsearch | pip install mvs-migrate[elasticsearch] |
Full |
| OpenSearch | pip install mvs-migrate[opensearch] |
Full |
| ChromaDB | pip install mvs-migrate[chromadb] |
Full |
| pgvector | pip install mvs-migrate[pgvector] |
Full |
| LanceDB | pip install mvs-migrate[lancedb] |
Full |
| Turbopuffer | pip install mvs-migrate[turbopuffer] |
Full |
| MongoDB Atlas | pip install mvs-migrate[mongodb] |
Full |
| Redis | pip install mvs-migrate[redis] |
Full |
| Apache Solr | pip install mvs-migrate[solr] |
Full |
pip install mvs-migrate[pinecone]
mvs-migrate transfer \
--source pinecone \
--source-config '{"api_key": "...", "index": "my-index"}' \
--mvs-api-key "mxp_..." \
--mvs-namespace "my-namespace"- Batch transfer with progress bar, checkpointing, and resume
- Pre-migration confidence report — schema discovery, count, dimensions
- Post-migration validation — count parity, vector parity, search parity
- Cost comparison — source vs MVS monthly pricing estimate
- Dry-run mode — preview what would be migrated without writing
- All vector types — dense, sparse, multi-vector, named vectors
mvs-migrate sources # List available source connectors
mvs-migrate transfer --help # Full migration with validation
mvs-migrate port --help # Code refactoring (BYOC Claude)Run the offline evaluation suite to verify migration correctness:
python -m evaluation.run_eval --allThis tests serialization and field mapping against 13 sources using a golden dataset with edge cases (unicode, nulls, zero vectors, deeply nested metadata).
Each adapter has three test layers inside evaluation/:
| Layer | Directory | What it tests | Needs API key? |
|---|---|---|---|
| Unit tests | crewai-tests/ |
Patched code with mocked httpx — verifies correct MVS API calls | No |
| E2E tests | test_port_crewai_e2e.py |
All 9 ChromaDB operations against real MVS API | Yes |
| Port tests | test_port_crewai.py |
Scanner/patcher/verifier pipeline against real crewAI repo | No |
Run the ChromaDB adapter unit tests (62 tests, no network):
# Requires crewAI installed: pip install crewai (from a crewAI checkout)
cd evaluation/crewai-tests
pytest test_client.py test_utils.py test_knowledge_storage.py -vRun the E2E tests against real MVS:
export MIXPEEK_API_KEY="mxp_..."
pytest evaluation/test_port_crewai_e2e.py -vSee packages/connectors/vector-stores/ for the unified VectorStore interface that wraps both source DBs and MVS behind the same API. Users bring their own keys:
from mixpeek_vector_stores import create_vector_store
# Same interface for any backend
source = create_vector_store("pinecone", api_key="...", index="my-index")
target = create_vector_store("mvs", api_key="mxp_...", namespace="my-ns")
# Read from source, write to target
records = source.get(["doc-1", "doc-2"])
target.upsert(records)pip install -e '.[dev]'
pytestApache-2.0