MCP servers that can add to a vector database
4 verified servers expose a tool that can add documents to a vector database
Querying a vector store only works if something put the vectors there first. Adding to a vector database is the write side: embed a chunk of text or an object and index it, so a later semantic search can find it. It is the indexing step behind every retrieval-augmented setup.
These verified servers let an agent add documents or vectors to a vector database.
Pinecone
Pinecone
Pinecone's official developer MCP server: search indexes, manage records, rerank results, and look up Pinecone docs from your agent.
upsert-records
Pinecone's upsert-records inserts or updates records using integrated inference, so an agent can hand it text and let the platform embed and index in one step.
Weaviate
Weaviate
Weaviate's built-in MCP server: hybrid vector and keyword search, schema inspection, and object upserts against a Weaviate vector database.
weaviate-objects-upsert
weaviate-objects-upsert creates or updates objects in a collection, folding insert and update together so re-adding by id replaces rather than duplicates.
Chroma
Chroma
Chroma's official MCP server: manage collections and run semantic, metadata, and full-text search over a Chroma vector database.
chroma_add_documents
Chroma's chroma_add_documents adds documents with optional metadata and custom ids, a direct write for a local or lightweight vector store.
Milvus
Zilliz
Zilliz's official Milvus MCP server: vector, full-text, and hybrid search plus collection management over a Milvus vector database.
milvus_insert_data
milvus_insert_data inserts records into a collection as a list of objects, the bulk write for teams running Milvus at scale.
What to know
The add and the query are two halves of one loop: index now, retrieve later. What the write takes differs by server. Some accept raw text and embed it for you; others expect the vectors and metadata ready. Most fold insert and update into one upsert, so re-adding a document by the same id replaces it rather than duplicating, which is what you want when content changes. The point is to get a chunk into the index with an id and metadata you can filter on at query time.
Indexing is where consistency across runs matters. An agent that re-adds the same documents every session because it forgot it already indexed them inflates the store and skews results with duplicates. Knowing what is already indexed, and at which version, keeps the write idempotent and the index clean.
Questions
- Does it embed the text for me?
- Depends on the server. Pinecone's upsert-records uses integrated inference, so you can pass text and it embeds and indexes for you. Others expect the vectors ready, or accept documents and embed with the collection's configured model. Check whether the server embeds or wants vectors before you wire it up.
- What is the difference between add and upsert?
- Add inserts a new record; upsert inserts or updates by id. Most of these are upserts, which matters for an agent: re-adding a document by the same id replaces it instead of creating a duplicate. That keeps the index from filling with stale copies when content changes.