An MCP (Model Context Protocol) server that provides semantic code search over a local codebase using Qdrant vector embeddings and OpenAI embeddings. Point it at a directory and query it with natural language from any MCP-compatible client (e.g., Claude Desktop).
- Watches a local directory for file changes and auto-indexes them
- Embeds code using OpenAI's embedding API
- Stores vectors in a Qdrant cloud collection
- Serves semantic search results via the MCP protocol
File Watcher → Embedding Service → Qdrant Manager
↑
MCP Client (Claude) ←── MCP Server ────┘
(code_search)
pip install -r requirements.txtcp .env.example .env
# Edit .env with your Qdrant URL, Qdrant API key, OpenAI API key, and watch directorypython run_mcp_server.pyAdd the following to your claude_desktop_config.json:
{
"mcpServers": {
"code-vector-search": {
"command": "python",
"args": ["/path/to/code-vector-sync/run_mcp_server.py"],
"env": {
"QDRANT_URL": "your-qdrant-url",
"QDRANT_API_KEY": "your-api-key",
"OPENAI_API_KEY": "your-openai-key"
}
}
}
}code-vector-sync/
├── src/
│ ├── mcp_server.py # MCP server entry point and tool definitions
│ ├── code_search.py # Search query handling
│ ├── code_sync_service.py # Orchestrates watching, embedding, and indexing
│ ├── embedding_service.py # OpenAI embedding calls
│ ├── file_watcher.py # Watchdog-based directory monitoring
│ └── qdrant_manager.py # Qdrant client and collection management
├── run_mcp_server.py # Launcher script
├── requirements.txt
├── .env.example # Template — copy to .env and fill in values
└── .gitignore
- Python 3.10+
- Qdrant Cloud account (free tier works)
- OpenAI API key
- agent-dev — Containerized AI agent dev environment that this server is designed to complement