π MCP Server - Vector Search
@omarguzmanm
MCP Server to improve LLM context through vector search.
Overview
What is π MCP Server - Vector Search?
A Model Context Protocol server built with FastMCP that combines Neo4jβs graph database with vector search using embeddings. It enables intelligent semantic search across a knowledge graph through natural language queries, designed for MCP clients such as Claude AI.
How to use π MCP Server - Vector Search?
After cloning the repository, create a virtual environment with uv, install dependencies (fastmcp, neo4j, openai, python-dotenv, sentence-transformers, pydantic), configure a .env file with Neo4j credentials and an optional OpenAI API key, and create a vector index in Neo4j. Launch the server with python main.py. The server exposes one tool: vector_search_neo4j(prompt), which converts a natural language query into an embedding and searches the vector index for semantically similar nodes.
Key features of π MCP Server - Vector Search
- Converts natural language queries into 1536βdimensional embeddings via OpenAI.
- Searches a Neo4j vector index for semantically similar nodes.
- Returns ranked results with similarity scores.
- Built on FastMCP for minimal overhead and MCP protocol compliance.
- Uses uv for 10β100x faster dependency resolution.
- Supports fallback to a local
all-MiniLM-L6-v2embedding model.
Use cases of π MCP Server - Vector Search
- Semantic document retrieval from a Neo4j knowledge graph.
- Finding contextually relevant graph-connected information using plain language.
- Integrating intelligent search into MCPβcompatible AI assistants (e.g., Claude Desktop).
- Building RAGβstyle applications that combine graph traversal with vector similarity.
FAQ from π MCP Server - Vector Search
What are the runtime requirements?
Python 3.8+, Neo4j 5.0+ with the APOC plugin, and either an OpenAI API key (for the default 1536βdimension embeddings) or the sentence-transformers library for a local fallback model.
Where does the data live?
All data β nodes, their embedding properties, and the vector index β is stored inside a Neo4j database. The server only reads from and writes to that database.
Is an OpenAI API key required?
No. If OPENAI_API_KEY is not set in .env, the server falls back to the local all-MiniLM-L6-v2 model from sentence-transformers.
What vector index must exist in Neo4j?
A vector index named embeddableIndex on nodes labeled Document with property embedding, dimension 1536, and cosine similarity. If using the local fallback model, adjust the dimension accordingly.
How do I troubleshoot a missing vector index?
Use Cypher SHOW INDEXES to verify existence, and reβcreate it with the CREATE VECTOR INDEX command shown in the Quick Start.