MCP server providing a 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 relationsinterface 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
A beginner-friendly guide server that helps users understand MCP concepts, provides interactive examples, and demonstrates best practices for building MCP integrations. Features tools for exploring MCP capabilities, resources for learning core concepts, and prompts for guided tutorials.
MCP Server to run python code locally
Salesforce MCP Server
A simple MCP Server for Taskwarrior