# Typesense Vector Search MCP

> Typesense Vector Search lets your AI agent perform complex semantic searches and manage vector data entirely through conversation. Index documents, create new collections with specific schemas, and run combined text-filtering queries without writing a single line of API code.

## Overview
- **Category:** loved-by-devs
- **Price:** Free
- **Tags:** vector-search, semantic-search, rag, embedding-management, document-indexing

## Description

Connect this MCP to any compatible client to take autonomous control over your vector database. Instead of constructing CURL payloads or writing custom Python scripts for every query, you talk to your agent about what data you need. You can ask it to list all existing collections, create a new schema dataset with specific embedding structures, and immediately begin indexing documents by simply providing the JSON payload. The system handles the complex API calls in the background. This ability to manage vector storage—from creating schemas via `create_collection` to running advanced queries using `search_vectors`—means your agent becomes a full-time data engineer for your knowledge base. When you connect this through Vinkius, you get access to a robust set of tools that lets your AI client do all the heavy lifting on indexing and retrieval.

## Tools

### search_vectors
Runs a combined search that uses both text filters and numerical vector similarity queries.

### create_collection
Builds a new search dataset by defining its specific required schema using JSON details.

### delete_document
Removes a document from any collection, and this action cannot be reversed.

### get_collection_details
Retrieves the full schema definition and metadata for a specific data collection.

### index_document
Adds or updates an existing document in a collection by providing its name and JSON payload.

### list_vector_collections
Fetches a list of every available vector collection within the current Typesense instance.

## Prompt Examples

**Prompt:** 
```
List all active collections on this vector cluster. Do I have any collections initialized yet?
```

**Response:** 
```
I've listed 2 active collections: 'customer_kb_index' (configured with a 1536-dimensional embedding schema) and 'products_inventory'. Need me to execute a vector search on either limit?
```

**Prompt:** 
```
I have an embedding snippet: [0.34, 0.42, 0.99...]. Delete the document carrying ID 'test-123' and re-index it using this JSON data on collection 'faqs'.
```

**Response:** 
```
Document 'test-123' has been successfully wiped. I've seamlessly pushed the new JSON package into 'faqs', updating the embedding vectors as instructed.
```

**Prompt:** 
```
Explain the schema definitions used inside the 'products_inventory' collection.
```

**Response:** 
```
The collection 'products_inventory' uses 4 strict fields: `product_id` (string), `name` (string), `popularity` (int32), and critically `embeddings` formulated as a `float[]` of 768 dimensions representing product semantics.
```

## Capabilities

### Perform Semantic Search
Run vector similarity searches combined with text filters using `search_vectors`.

### Manage Collections
List all existing collections or retrieve the detailed schema for a specific collection using `list_vector_collections` and `get_collection_details`.

### Build New Data Schemas
Instantly provision new vector search datasets with custom schemas via `create_collection`.

### Index Documents
Add or update JSON documents in a collection using `index_document`, bypassing manual REST calls.

### Remove Data
Permanently delete specific records from a collection by ID using `delete_document`.

## Use Cases

### Updating Product Catalogs
A product manager wants to update pricing and descriptions across 50 old records in the inventory collection. Instead of writing a batch script, they prompt their agent: 'Update all products matching category X with the new JSON payload.' The agent executes `index_document` for each record automatically.

### Debugging Retrieval Failures
A developer notices some search results are poor. They use `get_collection_details` to check the schema geometry, ensuring that their new field is mapped correctly and doesn't break the existing vector structure.

### Building a New Knowledge Domain
A team needs a separate index for legal documents. They use `create_collection` to build the specialized schema, then run `list_vector_collections` to confirm the new dataset is ready before they start indexing.

### Complex Research Queries
A researcher needs results about 'AI ethics' that were written specifically in 2023. They use `search_vectors`, combining a text filter ('year: 2023') with the vector query, getting highly relevant and narrow answers immediately.

## Benefits

- You skip complex REST calls. Instead of writing code to `index_document`, you just ask your agent to update the data, and it handles the payload transfer automatically.
- Advanced querying is simple. With `search_vectors`, you can combine natural language text filters with vector similarity results in a single chat command.
- Schema management becomes conversational. Use `get_collection_details` to verify field geometries or `create_collection` to deploy a new, structured knowledge base instantly.
- You maintain full control over your data lifecycle. Easily run `list_vector_collections` to map out every dataset you have, and use `delete_document` when a record is stale.
- The entire process runs through your agent's chat window. You don't need dedicated terminal access or manual script execution for basic document mutations.

## How It Works

The bottom line is that you talk naturally to your agent, and it handles the entire back-end process of querying and managing your vector database for you.

1. Subscribe to this MCP and provide your Typesense Host URL along with an Admin API Key.
2. Instruct your AI agent to perform the desired data operation, like listing available collections or running a search query.
3. The agent executes the necessary tool calls through the connection, returning the requested data or confirmation status.

## Frequently Asked Questions

**How do I check what collections are available using Typesense Vector Search MCP?**
You ask your agent to list all vector collections. The tool `list_vector_collections` will immediately provide a roster of every dataset configured on your instance.

**Can I create a new schema with the Typesense Vector Search MCP?**
Yes, you can use `create_collection`. You just need to supply the desired field structure as a JSON object, and the tool provisions the entirely new semantic dataset.

**What is the difference between using search_vectors and indexing documents?**
`search_vectors` reads data; it executes complex queries combining text filters with vector similarity. `index_document`, conversely, writes data by adding or updating a record in a collection.

**Is the action of deleting documents permanent using Typesense Vector Search MCP?**
Yes, the `delete_document` function permanently removes records by their ID. Treat this tool with care, as there is no undo feature for this operation.

**Does the Typesense Vector Search MCP support combined search queries?**
Absolutely. The `search_vectors` tool lets you combine traditional text filtering with vector similarity searches in one single request.

**Can the agent perform vector plus text-filtering search combined natively?**
Yes. Provide the agent with the collection name alongside the text payload and tell it the exact vector structure. It leverages internal filters querying natively and returns the nearest neighbors with exact accuracy scores.

**How do I make the AI create a semantic collection ready for embeddings (OpenAI 1536 dims)?**
Ask the agent to use 'create_collection'. Provide standard JSON declaring the name, the field structure, and explicitly define the `float[]` field tracking the 1536 dims length. The cluster will spin the framework up instantly.

**Can it delete problematic vectors holding bad geometry data manually?**
Absolutely. Supplying the explicit collection target and the item 'id' to the delete_document prompt securely wipes out all traces from the dataset. Use this sparingly as it can't be undone easily.