Qdrant Knowledge Graph
STDIOKnowledge graph implementation with semantic search capabilities powered by Qdrant vector database.
Knowledge graph implementation with semantic search capabilities powered by Qdrant vector database.
This MCP server provides a knowledge graph implementation with semantic search capabilities powered by Qdrant vector database.
The following environment variables are required:
# OpenAI API key for generating embeddings OPENAI_API_KEY=your-openai-api-key # Qdrant server URL (supports both HTTP and HTTPS) QDRANT_URL=https://your-qdrant-server # Qdrant API key (if authentication is enabled) QDRANT_API_KEY=your-qdrant-api-key # Name of the Qdrant collection to use QDRANT_COLLECTION_NAME=your-collection-name
npm install
npm run build
docker build -t mcp-qdrant-memory .
docker run -d \ -e OPENAI_API_KEY=your-openai-api-key \ -e QDRANT_URL=http://your-qdrant-server:6333 \ -e QDRANT_COLLECTION_NAME=your-collection-name \ -e QDRANT_API_KEY=your-qdrant-api-key \ --name mcp-qdrant-memory \ mcp-qdrant-memory
{ "mcpServers": { "memory": { "command": "/bin/zsh", "args": ["-c", "cd /path/to/server && node dist/index.js"], "env": { "OPENAI_API_KEY": "your-openai-api-key", "QDRANT_API_KEY": "your-qdrant-api-key", "QDRANT_URL": "http://your-qdrant-server:6333", "QDRANT_COLLECTION_NAME": "your-collection-name" }, "alwaysAllow": [ "create_entities", "create_relations", "add_observations", "delete_entities", "delete_observations", "delete_relations", "read_graph", "search_similar" ] } } }
create_entities
: Create multiple new entitiescreate_relations
: Create relations between entitiesadd_observations
: Add observations to entitiesdelete_entities
: Delete entities and their relationsdelete_observations
: Delete specific observationsdelete_relations
: Delete specific relationsread_graph
: Get the full knowledge graphsearch_similar
: Search for semantically similar entities and relations
interface SearchParams { query: string; // Search query text limit?: number; // Max results (default: 10) }
The server maintains two forms of persistence:
File-based (memory.json):
Qdrant Vector DB:
When entities or relations are modified:
When searching:
// Create entities await client.callTool("create_entities", { entities: [{ name: "Project", entityType: "Task", observations: ["A new development project"] }] }); // Search similar concepts const results = await client.callTool("search_similar", { query: "development tasks", limit: 5 });
The server supports connecting to Qdrant through HTTPS and reverse proxies. This is particularly useful when:
server { listen 443 ssl; server_name qdrant.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:6333; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
QDRANT_URL=https://qdrant.yourdomain.com
The server implements robust HTTPS handling with:
If you experience connection issues:
openssl s_client -connect qdrant.yourdomain.com:443
curl -v https://qdrant.yourdomain.com/collections
env | grep -i proxy
MIT