vectra-mcp-server
Vectra MCP Server is a TypeScript-based server allowing for the management and querying of a Vectra knowledge base. It integrates with MCP clients and interacts with a backend Vectra API, providing tools for collection management and hybrid search capabilities.
Vectra MCP Server
A Model Context Protocol (MCP) server for interacting with a Vectra knowledge base.
This TypeScript-based MCP server provides tools to manage and query a Vectra instance, enabling integration with MCP-compatible clients. It interacts with a backend Vectra API (presumably running separately).
Features
Tools
This server exposes the following tools for interacting with Vectra:
create_collection
: Create a new Vectra collection.- Input:
name
(string, required),description
(string, optional)
- Input:
list_collections
: List existing Vectra collections.- Input: None
embed_texts
: Embeds multiple text items in batch into Vectra.- Input:
items
(array of objects withtext
(required) and optionalmetadata
),collectionId
(string, optional)
- Input:
embed_files
: Reads multiple local files and embeds their content into Vectra.- Input:
sources
(array of local file paths, required),collectionId
(string, optional),metadata
(object, optional - applies to all items)
- Input:
add_file_to_collection
: Add an already embedded file (referenced by its ID) to a specific Vectra collection.- Input:
collectionId
(string, required),fileId
(string, required)
- Input:
list_files_in_collection
: List files within a specific Vectra collection.- Input:
collectionId
(string, required)
- Input:
query_collection
: Query the knowledge base within a specific Vectra collection.- Note: This tool always uses hybrid search (vector + keyword) and enables graph search enhancement by default.
- Input:
collectionId
(string, required),queryText
(string, required),limit
(number, optional),maxDistance
(number, optional),graphDepth
(number, optional),graphRelationshipTypes
(array of strings, optional),includeMetadataFilters
(array of objects, optional),excludeMetadataFilters
(array of objects, optional)
delete_file
: Delete a file and its associated embeddings from Vectra.- Input:
fileId
(string, required)
- Input:
get_arangodb_node
: Fetch a specific node directly from the underlying ArangoDB database by its key.- Input:
nodeKey
(string, required - e.g.,chunk_xyz
ordoc_abc
)
- Input:
(Refer to src/tools.ts
for detailed input schemas)
Development
Install dependencies:
npm install
Build the server:
npm run build
Run the server (listens on stdio):
node build/index.js
For development with auto-rebuild:
npm run watch